정보이론의 기초3 -KL divergence란?-

1. KL divergence에 대하여

 

The KullbackLeibler divergence (or information divergence, information gain, or relative entropy)은 두 확률분포를 비교하기 위한 방법이다.

 

데이터의 진짜 확률분포(true distribution)P라 하고 데이터가 따를 것 같다고 생각하는 우리가 예측한 확률분포 모형이 Q라한다면

 

Q에 대한 PThe KullbackLeibler divergence

 

$$D  _{KL} (P||Q)=E(log \frac{P}{Q} )  _{P} = \sum _{x \subset P} ^{} P(x)log \frac{P(x)}{Q(x)}= \sum _{x \subset P} ^{} P(x)logP(x)- \sum _{x \subset P} ^{} P(x)logQ(x)=E(logP(X))  _{P} -E(logQ(X))  _{p}$$

 

여기서 $-E(logP(X)) _{P} =H(P)$true distributionentropy이다.

 

$-E(logQ(X)) _{P} =H(P,Q)$true distributionprediction distributioncross entropy이다.

 

그러므로 다음과 같다. $$D _{KL} (P||Q)=-H(P)+H(P,Q)$$

 

1-1) 머신러닝에서 $D _{KL} (P||Q)=-H(P)+H(P,Q)$은 예측한 Q분포 대신에 정답인 P분포를 사용할 때 정보획득량이다.

 

그래서 Q에 대한 P의 상대적인 entropyrelative entropy라고도 부른다

 

1-2) 반대로 말하면 정답인 P에 근사한 Q분포를 사용할 때 손실된 정보량이다.

 

1-3) 그러므로 $D _{KL} (P||Q)$이 최소가 되는 Q분포를 사용하는 것이 머신러닝에서 가장 좋은 모형 선택이 아니겠는가?

 

1-4) 베이지안 추론에서는 사전확률분포 Q에서 적절한 정보를 얻으면 사후확률분포 P로 갱신된다고 생각하는데 $D _{KL} (P||Q)$는 우리가 예측한 사전확률분포 Q에서 사후확률분포 P로 변할 때 발생한 정보량의 차이일 것이다.

 

 

2. KL divergenceCross entropy 무엇이 다를까

 

The KullbackLeibler divergencePQ사이의 차이라하고

 

Cross entropyPQ를 구분짓기 위한 필요 정보량이라해서 마치 PQ사이의 차이라고 하는데

 

도대체 두 개념은 무슨 차이지?

 

$D _{KL} (P||Q)$는 우리가 예측한 사전확률분포 Q에서 사후확률분포 P로 갱신하기 위해 필요한 정보량

 

$H(P)$는 P의 정보량

 

Cross entropy $H(P,Q)$는 앞에서 예시로 들었던 기계p,q를 생각해보면 P의 원래 EntropyQ의 질문 전략을 첨가해서 증가했다는 것이 기억난다

 

cross entropy $$H(P,Q)=D _{KL} (P||Q)+H(P)$$를 보면

 

$H(P,Q),D _{KL} (P||Q)$ 둘 다 PQ사이의 차이를 나타내는 무언가 측도 정도인데 $D _{KL} (P||Q)$CROSS ENTROPY인 $H(P,Q)$P의 모든 정보량인 $H(P)$를 빼서 얻어진 값으로 우리가 생각하는 PQ사이의 차이 개념에 더욱 가깝다???

 

아니 근데 수식으로는 일단 분명히 차이가 있지 직관적으로 느낌에도 무언가 차이가 있긴한데 뭐라 말로 설명이 안된다 도저히 둘 다 P,Qdifference를 나타내긴하는데 좀 약간 느낌이 다른 difference이긴한데 아무튼 그래

 

뭔가 cross entropy가 좀 더 불순한 느낌 불순물이 많이 섞인 느낌이고

$D _{KL} (P||Q)$ 얘는 좀 더 순수한 느낌이라해야할까

 

3. KL divergence에서 조심해야할 점은 무엇인가

 

$D _{KL} (P||Q)$은 우리가 예측한 $Q$가 정답인 $P$와 얼마나 차이가 있는지 알려주는 측도이다.

 

단순하게 생각해서 $D _{KL} (P||Q)$가 두 확률분포 $P$ 와 $Q$의 차이라고 생각해서 두 확률분포 $P$ 와 $Q$의 거리이다 하면서 대칭적인 측도 $D _{KL} (P||Q)=D _{KL} (Q||P)$라고 생각하기 쉬운데 절대 그렇지 않다.

 

일단 가장 쉽게는 기준점이 바뀐다는 것이다

 

$$D _{KL} (P||Q)=-H(P)+H(P,Q)=E(log(P(X)) _{P} -E(log(Q(X)) _{P}$$

 

$$D _{KL} (Q||P)=-H(Q)+H(Q,P)=E(log(Q(X)) _{Q} -E(log(P(X)) _{Q}$$ 로 그냥 식 자체부터 다르다.

 

$D _{KL} (Q||P)$는 우리가 예측한 $P$ 분포가 정답인 $Q$ 분포와 얼마나 차이가 있는지 알려주는 값인데 정답과 예측이 바뀌는데 어떻게 같을까?

 

참고로 거리라는 개념으로 생각하기 위해 Jessen-Shannon Divergence(JSD)라는 개념을 도입할 수 있다.

 

$M= \frac{P+Q}{2}$라고 하면 $$JSD(P||Q)= \frac{D _{KL} (P||M)+D _{KL} (Q||M)}{2}$$을 정의하면 이것은 두 확률분포 PQ사이의 거리라고 생각할 수 있다..

 

왜냐하면 $$JSD(P||Q)=JSD(Q||P)$$로 대칭적이기 때문이다.

 

4. 딥러닝에서의 활용

 

cross entropy는 머신러닝 등에서 loss function으로 자주 쓰는데

 

“”“

- 머신러닝에서 $D _{KL} (P||Q)=-H(P)+H(P,Q)$는 예측한 Q분포 대신에 정답인 P분포를 사용할 때 정보획득량이다. 그래서 Q에 대한 P의 상대적인 entropyrelative entropy라고도 부른다

 

-반대로 말하면 정답인 P에 근사한 Q분포를 사용할 때 손실된 정보량이다.

“”“

 

보니까 왜 loss인지 알겠다

 

말 그대로 정답인 P분포 대신에 Q분포 사용하면서 생기는 LOSS를 측정하는거니까

 

그리고 이것을 최소화시키면 Q분포가 P분포에 가까워지는거지.

 

true distributionentropy $-E(logP(X)) _{P} =H(P)$$는 변하지 않는다.. 데이터가 진짜로 따를것이라고 생각하는 정답인 분포니까 고정된 값이니까

 

그러므로 $$D _{KL} (P||Q)=-H(P)+H(P,Q)$$에서 The KullbackLeibler divergence을 최소화하는것과 Cross entropy $$H(P,Q)$$를 최소화하는 것은 동일한 문제이다.

 

마지막으로 Cross entropy $$H(P,Q)$$를 최소화하는 것은 Multinomial distributionlog likelihood function을 최대화하는 것과 동일하다 (근데 다른 분포에서도 성립하는지는 모르겠다 도저히)

 

Multinomial distributionlog likelihood function이 $$\sum _{} ^{} \frac{y _{i,k}}{n} log(MLP(x _{i} )) _{k}$$ 이런 형태였는데

 

$$H(P,Q)=-E(log(Q(X)) _{P} =- \sum _{} ^{} P(X=x)log(Q(X=x))$$에서 $P(X=x)$가 바로 정답의 분포이고 $\frac{y _{i,k}}{n}$와 대응되는거고

 

$log(Q(X=x))$와 $log(MLP(x _{i} )) _{k}$이 대응되는거임

 

$MLP(x _{i} ) _{k}$는 예측한 모형 $Q$가 다중 퍼셉트론이고 INPUT $x _{i}$를 넣었을 때 K번째 CLASS에 대한 확률값이니 $Q(X=x)$와 완벽하게 대응되죠??

 

따라서 $$\sum _{} ^{} \frac{y _{i,k}}{n} log(MLP(x _{i} )) _{k}$$를 최대화하는 것은 $$\sum _{} ^{} P(X=x)log(Q(X=x))$$를 최대화하는거고 그러니까 $$H(P,Q)=- \sum _{} ^{} P(X=x)log(Q(X=x))$$를 최소화하는 것이다.

 

실제로 cross entropynegative log likelihood function 이라고도 부른다고한다.

 

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

요약?

 

 

데이터의 정답인 분포가 P이고 예측한 모형의 분포가 Q이면 P대신에 Q를 사용할때 생기는 손실 정보량

 

딥러닝에서 손실함수의 일종으로 사용할 수 있다.

 

정답인 확률분포와 우리가 세운 모형의 확률분포의 차이를 측정해주는 지표

 

단순한 거리 개념이 아님, 비대칭적인 지표

 

 

다항분포의 최대가능도추정법은 쿨백 라이블러 발산을 최소화하는 문제와 동일하다

 

 

 

 

5. 참조

 

https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence

 

https://en.wikipedia.org/wiki/Quantities_of_information

'정보이론' 카테고리의 다른 글

정보이론의 기초2 -entropy란?-  (0) 2021.10.09
정보이론의 기초1 -정보량이란?-  (0) 2021.10.08
TAGS.

Comments