Cross Entropy란
두 probability distribution $p$, $q$ 사이의 dissimilarity(차이)를 정량화하는 지표 로 사용됨.
- 엄밀하게는 dissimilarity는 KL-Divergence로 구해야 하나, Cross entropy로 해도 큰 문제없기 때문임.
- 다음 참조 : 2022.05.12 - [.../Math] - Kullback-Leibler Divergence
정의식은 다음과 같음.
$$H(p,q)=-\sum^N_{i=1}p(x_i)\log{q(x_i)}$$
where
- $p$ : original probability distribution (or ideal probability distribution). 우리가 예측하거나 맞추고자 하는 대상 (label).
- $q$ : 우리가 학습 또는 측정 데이터로부터 예측한 probability distribution. 추정치
- $N$ : random variable $x$가 가질 수 있는 값의 종류.
- $p(x_i)$ : random variable $x$가 $x_i$를 값으로 가질 실제 확률.
- $q(x_i)$ : random variable $x$가 $x_i$를 값으로 가질 확률에 대한 추정치. 현재 우리가 측정 데이터 혹은 학습데이터로부터 예측해낸 추정치를 의미.
Cross entropy는 Entropy와 함께 Information Theory의 가장 중요한 개념 중의 하나임.
Entropy는 특정 확률분포를 따르는 random variable $x$의 "정보량"의 기댓값으로
통신정보공학 등에서는 해당 random variable $x$를 encoding하는 필요한 평균 code length (or 데이터크기, bit)를 의미하며,
이론적으로 random variable $x$를 encoding하는 데 필요한 데이터 크기(or code length)의 lower bound에 해당한다.
Cross entropy는 Entropy와 달리,
원래 $p(x)$의 확률분포를 따르는 $x$를 다른 확률분포 $q(x)$로 추정한 경우에 얻어지는 entropy로서,
해당 random variable $x$를 원래 확률분포와 차이가 있는 추정 확률분포 $q(x)$에 따라 encoding할 경우 요구되는 entropy이다.
Entropy는 random variable $x$를 encoding하는 필요한 bit량의 이론적 lower bound이므로
Cross entropy는 항상 Entropy이상의 값을 가지게 되며,
Cross entropy와 Entropy와의 차이는 추정치의 에러로 인해 information loss, 또는 추가적으로 요구되는 bit량으로 KL-Divergence라고 불린다.
요약
- entropy 정의와 달리, 학습된 모델에 해당하는 추정 확률분포 $q(x)$ 와 label에 해당하는 실제 분포인 $p(x)$가 모두 들어가 있기 때문에 Cross-entropy라고 불림.
- 이상적으로 예측한 경우, $q(x)=p(x)$이므로 cross-entropy가 실제 분포의 entropy와 같아짐.
- cross-entropy는 항상 $p(x)$의 entropy 이상의 값을 가짐.
Example
population에서 0.8/0.1/0.1 의 비율로, class A/B/C 가 구분된다고 가정하자.
이로부터 sampling한 학습데이터로부터 훈련된 우리의 모델에서 0.2/0.2/0.6의 비율로 class A/B/C를 추정했다고 가정하고 Entropy와 Cross Entropy를 구하면 다음과 같음.
$$\begin{aligned}\text{Entropy } H(p) &= -\left[0.8\log_2(0.8)+0.1\log_2(0.1)+0.1\log_2(0.1)\right]=0.92\\ \text{Cross Entropy} H(p,q) &= -\left[0.8\log_2(0.2)+0.1\log_2(0.2)+0.1\log_2(0.6)\right]=2.16 \end{aligned}$$
'... > Math' 카테고리의 다른 글
[Math] Distance between Point and Plane : 점과 직선의 거리 (0) | 2022.05.19 |
---|---|
[Math] Entropy 란 (평균정보량, 정보량의 기댓값) (0) | 2022.05.12 |
[Math] Kullback-Leibler Divergence (1) | 2022.05.12 |
[Math] Matrix Calculus : Numerator Layout (0) | 2022.05.08 |
[Math] Jacobian : Summary (0) | 2022.05.07 |