What is Entropy? (2)
3 minute read

이제 엔트로피가 불확실성의 정도라는 것을 알았다. 그렇다면 Cross entropy는 무엇인가?

이 글에서 다루는 내용


1. Cross Entropy

지난 포스팅에서는 Entropy가 위의 식으로 표현된다는 것을 알게 되었다. 또 다음과 같은 네가지 경우로 날씨를 예측하고 싶을 때,

$$\mathrm{weather} \in \{\mathrm{sunny, rainy, cloudy, snowy}\}$$

sunny의 확률이 $\frac{1}{2}$, rainy의 확률이 $\frac{1}{4}$, cloudy의 확률이 $\frac{1}{8}$, snowy의 확률이 $\frac{1}{8}$라고 했을 때의 엔트로피가 어떻게 되는지도 살펴보았다.

하지만 여기서 간과한 점은, 여기서 계산된 엔트로피는 언제까지나 내가 날씨에 대해 세운 가정 (“Sunny의 확률이 $\frac{1}{2}$로 가장 높다”)이 완벽하게 맞는 경우를 가정하고 계산된 값이라는 것이다. 이 엔트로피는 날씨라는 확률변수가 가지는 본질적인 예측 불가능성만을 반영한 값이다.

실제로는, 나의 가정이 틀렸을 수도 있는 것이다. 만약 나의 예상과는 달리 비가 자주 온다면, 총 불확실성은 날씨가 갖는 본질적 엔트로피보다 더 큰 값을 가지게 된다.

결국 나는 데이터가 $q(x)$라는 분포를 따를 것으로 예상했지만, 실제로 데이터가 따르는 분포는 $p(x)$였던 것이다. 따라서 우리는 정보량은 $-\log{p(x)}$ 대신 $-\log{q(x)}$을 사용하고, 데이터가 실제로 따르는 분포는 어쨌거나 $p(x)$이기 때문에 $p(x)$에 대해 기댓값을 취해주는데, 이것이 곧 p와 q의 Cross Entropy를 구하는 식이 된다.

2. Kullback–Leibler divergence (쿨백 라이블러 발산)

이처럼 데이터의 실제 분포와 내가 예측한 분포가 다를 때, 엔트로피는 증가하게 된다. 이때 데이터가 실제로 따르는 분포 $p(x)$를 사용하지 않았기 때문에 추가적으로 증가한 엔트로피의 양을 살펴보자.

이 최종식을 통계학에서는 Kullback-Leibler divergence, 또는 KL divergence라고도 부른다.

결국 KL divergence는 예측한 분포와 실제 분포의 차이에서 발생한 값이기 때문에, 두 확률분포의 차이를 계산하는 척도로 사용된다는 점이 중요하다.

쿨백-라이블러 발산은 다음과 같은 몇가지 특징을 지닌다.

  1. Non-negative : $KL(p||q) \geq 0$
  2. $KL(p||q) = 0$ if and only if $p(x) = q(x)$
  3. Asymmetric : $KL(p||q) \neq KL(q||p)$

성질 1, 2는 쉽게 말해 $KL$ 값이 0인 경우에는 두 분포가 같고 다른 경우에는 양의 실수 값을 가지게 된다는 것이다. 그럼 결국 두 분포간의 거리라고도 볼 수 있지 않을까? 하지만 쿨백-라이블러 발산은 거리와는 다르다. 그 이유는 바로 세번째 성질 때문이다.

쿨백-라이블러 발산은 $KL(p||q)$ 값과 $KL(q||p)$ 값이 다르다는 비대칭성을 지닌다. 두 분포의 차이가 q의 입장에서 봤을 때와 p의 입장에서 봤을 때 다르게 계산된다는 것이다. 이 부분에 대한 설명은 Ian Goodfellow<Deep Learning Book>을 참고하였다.

title

위의 그래프에서 봉우리가 두개인 Gaussian Mixture Model이 p이고, 봉우리가 하나인 Single Gaussian이 q이다. 이때 우리는 $q(x)$를 $p(x)$에 근사시킬 것이다. 우리에게는 두 가지 선택권이 있다. 하나는 $KL(p||q)$를 최소화하는 방향으로 q를 근사시키는 것이고, 다른 하나는 $KL(q||p)$를 최소화하는 것이다. 어떤 선택을 하느냐에 따라 근사할 때 고려하는 것들의 우선순위가 조금씩 달라진다.


결국 KL Divergence는 비대칭적이긴 하지만, 그 값을 최대한 줄임으로써 $q(x)$를 타겟 확률분포 $p(x)$에 근사시키는 한 방법이 된다.

이 때 $x$를 $Y|X$로 바꾸고, $q$는 $p$를 예측한다는 점에서 $\hat{p}$로 표현할 수 있다.

여기서 $X$를 데이터라고 하고, $Y$를 우리가 예측하고자 하는 변수라고 하면, 결국 KL divergence를 이용한 근사 과정은 머신러닝에서 true $y$와 가까운 $\hat{y}$을 찾기 위해 $\hat{p}$을 추정하는 과정과 같다. 그리고 $p$와 $\hat{p}$의 차이인 KL divergence는 일종의 cost function으로 작용할 수 있게 된다.

Recent Posts

Content Preserving Text Generation with Attribute Controls
Matching Networks for One Shot Learning
Pointer Networks
Get To The Point: Summarization with Pointer-Generator Networks
Learning Discourse-level Diversity for Neural Dialog Models using Conditional Variational Autoencoders