> For the complete documentation index, see [llms.txt](https://ykkim.gitbook.io/wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ykkim.gitbook.io/wiki/machine-learning/lecture-notes/entropy-cross-entropy-kl-divergence.md).

# 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>" %}
