KL Divergence
개념
KL Divergence는 두 확률분포 간의 정보량의 차이를 측정하는데 사용되는 개념
동전을 던지는 실제 확률분포가 다음과 같다고 보자.
\[P = [0.8,\ 0.2]\]- 앞면: 80%
- 뒷면: 20%
모델의 예측값은 아래와 같다.
\[Q = [0.6,\ 0.4]\]KL 발산은 간단히 말해서
“모델의 분포 $Q$가 실제 분포 $P$와 얼마나 다른가?”
를 숫자로 나타낸다. 만약 두 분포가 같으면
\[D_{KL}(P||Q)=0\]이다.
수식
\[D_{KL}(P||Q) = \sum_x P(x)\log\frac{P(x)}{Q(x)}\]| 기호 | 의미 |
|---|---|
| $P(x)$ | 기준이 되는 확률분포 |
| $Q(x)$ | 비교할 확률분포 |
| $\frac{P(x)}{Q(x)}$ | 두 확률의 비율 |
| $log$ | 확률 차이를 정보량 관점으로 변환 |
| $\sum$ | 모든 경우의 차이를 합산 |
실제 계산
\[P=[0.8,0.2], Q=[0.6,0.4]\] \[D_{KL}(P||Q) = 0.8\log\frac{0.8}{0.6} + 0.2\log\frac{0.2}{0.4}\] \[\log(1.333)\approx0.288 , \log(0.5)\approx-0.693\] \[0.8(0.288)+0.2(-0.693) =0.2304-0.1386 \boxed{\approx0.092}\]따라서 두 확률분포 사이의 KL 발산은 약 0.092이다..
결과 해석
KL 발산에서는 절대적인 숫자 자체보다 0에 가까운지가 중요하다.
\[P=Q\]이면
\[D_{KL}(P||Q)=0\]이다.
반대로 두 분포가 달라질수록 일반적으로 KL 발산이 커진다.
그래서 KL Divergence를 줄이는 방향으로
\[Q \rightarrow P\]가 되도록 모델을 학습시키는 것이다.
Leave a comment