# Entropy, Cross-Entropy, KL Divergence

## 정보량

**정보이론에서는 자주 일어나지 않는 사건의 정보량은 자주 발생하는 사건보다 정보량이 많다고 간주함**

&#x20;**정보량을 확률에 대한 함수 (0\~1) 로 정의한다면**



&#x20;사건A이   일어날  확률 P(A)로    사건 A의  정보량 h(A)을 정의하면

h(A):=−logP(A)



![정보량 로그 함수 그래프: -log(x) X축: (0.0, 0.2, 0.4, 0.6, 0.8, 1.0) / y축: (0, 2, 4, 6, 8 ,10 ,12)](https://icim.nims.re.kr/file/c988b24f47514f59a2642455e608deeb.png)



Example

* P(A)=0.99     --> 정보량은  h(A)=−logP(A)=−log0.99=0.01
* P(B)=0.01     --> 정보량은  h(B)=−logP(B)=−log0.01= 4.61



#### 엔트로피(Entropy) <a href="#entropy" id="entropy"></a>

이산확률변수(discrete random variable)의 평균 정보량, 불확실성 정도를 나타냄



이산확률변수 X의 평균 정보량 H\[X]는&#x20;



$$H[X]= ∑p_i log p_i,  i=1 ~to~ N$$



Example

* P(X=0)=0.5,  P(X=1)=0.5 H\[X]=−(0.5log0.5+0.5log0.5)=0.69   (<-- max. entropty)
* P(X=0)=0.8, P(X=1)=0.2, H\[X]=−(0.8log0.8+0.2log0.2)=0.50
* P(X=0)=1, P(X=1)=0,  H\[X]=−(1log1+0log0)=0.

#### KL Divergence <a href="#kl-divergence" id="kl-divergence"></a>

두 확률분포의 다른 정도를 측정. Relative entropy 라고도 하며 정식 명칭은 [Kullback–Leibler divergence](https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence)이다.&#x20;

$$K L ( p | q ) := −  ∑  p_ i log q_ i − ( −  ∑  p_ i log p_ i )=−  ∑ p_ i log ( q_ i p _i )$$







#### Cross-entropy <a href="#cross-entropy" id="cross-entropy"></a>

주어진 확률변수 X 에 대해서 확률분포 p 를 찾는 문제에서  확률분포 p 의 정확한 형태를 모르기 때문에\
p 를 예측한 근사 분포 q 를 생각할 것이다.&#x20;

정확한 확률분포를 얻기 위해 q 의 parameter들을 update하면서 q 를 p 에 근사할 것이다

즉. 두 분포의 차이를 측정하는 KL(p|q)가 최소가 되는 q를 찾는 문제가 됨



KL(p|q) 의  두 번째항 ($−∑p\_i log p\_i$) 는 근사분포 q에 무관한 항이므로&#x20;

KL Divergence를 최소화 하는 것은 결국 첫 번째 항 cross-entropy를 최소화하는 q를 찾아야 한다.



$$K L ( p | q ) := −  ∑  p_ i log q_ i$$



여기서 p =( p i ) 는 실제 확률분포를 의미하고 q=( q i ) 는 p 를 근사한 분포다.

## Reference

{% embed url="https://icim.nims.re.kr/post/easyMath/550" %}
