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