정보이론의 기초3 -KL divergence란?-
1. KL divergence에 대하여
The Kullback–Leibler divergence (or information divergence, information gain, or relative entropy)은 두 확률분포를 비교하기 위한 방법이다.
데이터의 진짜 확률분포(true distribution)을 P라 하고 데이터가 따를 것 같다고 생각하는 우리가 예측한 확률분포 모형이 Q라한다면
Q에 대한 P의 The Kullback–Leibler 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 distribution의 entropy이다.
$-E(logQ(X)) _{P} =H(P,Q)$로 true distribution과 prediction distribution의 cross 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의 상대적인 entropy인 relative entropy라고도 부른다
1-2) 반대로 말하면 정답인 P에 근사한 Q분포를 사용할 때 손실된 정보량이다.
1-3) 그러므로 $D _{KL} (P||Q)$이 최소가 되는 Q분포를 사용하는 것이 머신러닝에서 가장 좋은 모형 선택이 아니겠는가?
1-4) 베이지안 추론에서는 사전확률분포 Q에서 적절한 정보를 얻으면 사후확률분포 P로 갱신된다고 생각하는데 $D _{KL} (P||Q)$는 우리가 예측한 사전확률분포 Q에서 사후확률분포 P로 변할 때 발생한 정보량의 차이일 것이다.
2. KL divergence와 Cross entropy 무엇이 다를까
The Kullback–Leibler divergence은 P와 Q사이의 차이라하고
Cross entropy도 P와 Q를 구분짓기 위한 필요 정보량이라해서 마치 P와 Q사이의 차이라고 하는데
도대체 두 개념은 무슨 차이지?
$D _{KL} (P||Q)$는 우리가 예측한 사전확률분포 Q에서 사후확률분포 P로 갱신하기 위해 필요한 정보량
$H(P)$는 P의 정보량
Cross entropy $H(P,Q)$는 앞에서 예시로 들었던 기계p,q를 생각해보면 P의 원래 Entropy에 Q의 질문 전략을 첨가해서 증가했다는 것이 기억난다
cross entropy $$H(P,Q)=D _{KL} (P||Q)+H(P)$$를 보면
$H(P,Q),D _{KL} (P||Q)$ 둘 다 P와 Q사이의 차이를 나타내는 무언가 측도 정도인데 $D _{KL} (P||Q)$는 CROSS ENTROPY인 $H(P,Q)$에 P의 모든 정보량인 $H(P)$를 빼서 얻어진 값으로 우리가 생각하는 P와 Q사이의 차이 개념에 더욱 가깝다???
아니 근데 수식으로는 일단 분명히 차이가 있지 직관적으로 느낌에도 무언가 차이가 있긴한데 뭐라 말로 설명이 안된다 도저히 둘 다 P,Q의 difference를 나타내긴하는데 좀 약간 느낌이 다른 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}$$을 정의하면 이것은 두 확률분포 P와 Q사이의 거리라고 생각할 수 있다..
왜냐하면 $$JSD(P||Q)=JSD(Q||P)$$로 대칭적이기 때문이다.
4. 딥러닝에서의 활용
cross entropy는 머신러닝 등에서 loss function으로 자주 쓰는데
“”“
- 머신러닝에서 $D _{KL} (P||Q)=-H(P)+H(P,Q)$는 예측한 Q분포 대신에 정답인 P분포를 사용할 때 ‘정보획득량’이다. 그래서 Q에 대한 P의 상대적인 entropy인 relative entropy라고도 부른다
-반대로 말하면 정답인 P에 근사한 Q분포를 사용할 때 손실된 정보량이다.
“”“
보니까 왜 loss인지 알겠다
말 그대로 정답인 P분포 대신에 Q분포 사용하면서 생기는 LOSS를 측정하는거니까
그리고 이것을 최소화시키면 Q분포가 P분포에 가까워지는거지.
true distribution의 entropy $-E(logP(X)) _{P} =H(P)$$는 변하지 않는다.. 데이터가 진짜로 따를것이라고 생각하는 정답인 분포니까 고정된 값이니까
그러므로 $$D _{KL} (P||Q)=-H(P)+H(P,Q)$$에서 The Kullback–Leibler divergence을 최소화하는것과 Cross entropy $$H(P,Q)$$를 최소화하는 것은 동일한 문제이다.
마지막으로 Cross entropy $$H(P,Q)$$를 최소화하는 것은 Multinomial distribution의 log likelihood function을 최대화하는 것과 동일하다 (근데 다른 분포에서도 성립하는지는 모르겠다 도저히)
Multinomial distribution의 log 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 entropy는 negative log likelihood function 이라고도 부른다고한다.
--------------------------------------------------------------------------------------------------------------------------------------------------------------
요약?
데이터의 정답인 분포가 P이고 예측한 모형의 분포가 Q이면 P대신에 Q를 사용할때 생기는 손실 정보량
딥러닝에서 손실함수의 일종으로 사용할 수 있다.
정답인 확률분포와 우리가 세운 모형의 확률분포의 차이를 측정해주는 지표
단순한 거리 개념이 아님, 비대칭적인 지표
다항분포의 최대가능도추정법은 쿨백 라이블러 발산을 최소화하는 문제와 동일하다
5. 참조
https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence
'정보이론' 카테고리의 다른 글
정보이론의 기초2 -entropy란?- (0) | 2021.10.09 |
---|---|
정보이론의 기초1 -정보량이란?- (0) | 2021.10.08 |