Deep Learning/AI수학

Information Theory 이해하기 - Cross Entropy

미미수 2021. 7. 13. 13:46

이번 글에서는 지난번의 정보이론 소개에 이어 딥러닝에서 많이 등장하는 Cross Entropy를 다루겠다.

Cross-Entropy는 딥러닝에서 손실 함수로도 사용되고 KL, JSD, f-deivergence등에서도 많이 보이기 때문에 중요한 개념이다.

정보량과 Entropy의 개념이 확실히 이해되지 않는다면 이전글이나 다른 자료를 참고해서 공부한 후에 보는것을 추천한다!!

 

 


Entropy Reminder

먼저 Entropy를 다시 떠올려 보자.

$$ \sum_{x=1}^{N}-p(x)  log    p(x)$$

 

분포 p에 대한 entropy다. (위 식에서는 밑의 값에 2가 들어왔지만 다른 숫자도 올 수 있다. 가령, $e$)

$p(x) $ : x의 확률

$log_2  p_i$ : x의 정보량

 

여태까지 entropy와 정보량은 모두 한개의 분포에 대해 구할수 있었다. p분포면 p, q분포면 q에 대한 entropy, 이렇게 하나의 상황에 대해 entropy를 구했었다. 그리고 entropy는 불확실성의 정도, 정보량의 평균도 나타내면서 동시에 어떤 분포를 표현하는데 필요한 최소 평균 자원수였다. (= bit로 제일 짧게 나타내는 경우)

 

 

Cross Entropy

cross-entropy에서는 이제 두개의 분포를 비교한다.

두개의 분포 P,Q에 대한 cross entropy는 아래와 같다.

$$H(P,Q) =  \sum_{x=1}^{N}-p(x) log  q(x)$$

 

Cross Entropy는 두 개의 확률분포 p q에 대해 하나의 사건 X가 갖는 정보량으로 정의된다. 

= 서로 다른 두 확률분포에 대해 같은 사건이 가지는 정보량을 계산한 것이다.

이는 q에 대한 정보량p에 대해서 평균낸 것으로 볼 수 있다.

 

딥러닝 관점에서 보면,

P는 실제 데이터가 따르는 분포, Q는 내가 예측한 분포이다. 

한마디로, P는 실제 데이터가 따르는 최적의 엔트로피값이고,

Q는 내가 예측한 분포이기 때문에 틀릴수 있다.(비효율적일수도 있다.)

 

Cross Entropy란 틀릴수 있는 정보를 가지고 구한 최적의 엔트로피값이다.

 

딥러닝에서는 cross-entropy를 손실함수에 사용하는데, P가 우리가 되고자 하는 Ground Truth일때 Q는 P에 근사하도록 학습이 된다.

 

P==Q일때, 학습이 완벽히 되었을때 Cross entropy == Entropy이다.

 

$$ \sum_{x=1}^{N}-p(x)  log    p(x) = \sum_{x=1}^{N}-p(x) log  q(x)$$

 

그리고 P !=Q일때는 P가 최적의 엔트로피값이라는 가정하에 Q가 학습하는것이기 때문에,

$$ \sum_{x=1}^{N}-p(x)  log    p(x) < \sum_{x=1}^{N}-p(x) log  q(x)$$

 

 

따라서 $Cross Entropy \leqslant  Entropy$가 성립한다.