Processing math: 100%
 

정보이론의 기초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

 

DKL(P||Q)=E(logPQ)P=xPP(x)logP(x)Q(x)=xPP(x)logP(x)xPP(x)logQ(x)=E(logP(X))PE(logQ(X))p

 

여기서 E(logP(X))P=H(P)true distributionentropy이다.

 

E(logQ(X))P=H(P,Q)true distributionprediction distributioncross entropy이다.

 

그러므로 다음과 같다. DKL(P||Q)=H(P)+H(P,Q)

 

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

 

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

 

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

 

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

 

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

 

 

2. KL divergenceCross entropy 무엇이 다를까

 

The KullbackLeibler divergencePQ사이의 차이라하고

 

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

 

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

 

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

 

H(P)P의 정보량

 

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

 

cross entropy H(P,Q)=DKL(P||Q)+H(P)를 보면

 

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

 

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

 

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

DKL(P||Q) 얘는 좀 더 순수한 느낌이라해야할까

 

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

 

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

 

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

 

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

 

DKL(P||Q)=H(P)+H(P,Q)=E(log(P(X))PE(log(Q(X))P

 

DKL(Q||P)=H(Q)+H(Q,P)=E(log(Q(X))QE(log(P(X))Q 로 그냥 식 자체부터 다르다.

 

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

 

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

 

M=P+Q2라고 하면 JSD(P||Q)=DKL(P||M)+DKL(Q||M)2을 정의하면 이것은 두 확률분포 PQ사이의 거리라고 생각할 수 있다..

 

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

 

4. 딥러닝에서의 활용

 

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

 

“”“

- 머신러닝에서 DKL(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)$는 변하지 않는다.. 데이터가 진짜로 따를것이라고 생각하는 정답인 분포니까 고정된 값이니까

 

그러므로 DKL(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 functionyi,knlog(MLP(xi))k 이런 형태였는데

 

H(P,Q)=E(log(Q(X))P=P(X=x)log(Q(X=x))에서 $P(X=x)$가 바로 정답의 분포이고 yi,kn와 대응되는거고

 

log(Q(X=x))log(MLP(xi))k이 대응되는거임

 

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

 

따라서 yi,knlog(MLP(xi))k를 최대화하는 것은 P(X=x)log(Q(X=x))를 최대화하는거고 그러니까 H(P,Q)=P(X=x)log(Q(X=x))를 최소화하는 것이다.

 

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

 

 

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

 

 

요약?

 

 

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

 

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

 

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

 

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

 

etc-image-0

 

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

 

 

 

 

5. 참조

 

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

 

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

728x90

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

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