Post

KL divergence(쿨백-라이블러 발산)

KL divergence(쿨백-라이블러 발산)

Related Post

  1. Entropy
  2. KL Divergence
  3. Cross Entropy

이번에는 엔트로피에 이어 쿨백-라이블러 발산(Kullback-Leibler divergence)에 대해 알아보려 한다.


Kullback-Leibler divergence, KLD

쿨백-라이블러 발산은 어떤 두 확률분포의 차이를 계산하기 위한 함수로, 두 확률분포의 정보 엔트로피의 차이를 계산한다.

의미적으로는 확률분포 P가 있을 때 그 분포를 근사적으로 표현하는 QP 대신 이용하여 샘플링 할 경우 엔트로피의 변화를 의미한다.

시각적으로도 한번 확인해 보자. 여기 확률분포 P(파란색)와 Q(초록색)가 있다. 그리고 두 확률분포에 대한 엔트로피 차이를 계산하여 표현한 곡선(빨간색)을 볼 수 있다.

그래프에서 확인할 수 있듯이 (당연하게도) 분포간의 차이가 큰 곳에서는 엔트로피의 차이가 크고 차이가 적은 곳에서는 줄어든다. 심지어 두 확률분포의 교점(점선)에서는 값이 같기 때문에 엔트로피의 차이도 0이 되는 것을 확인할 수 있다.

이제 수식으로도 한번 표현해 보자. P의 엔트로피는 다음과 같고

H(P)=i=1np(xi)logp(xi)

P대신 Q를 사용하여 샘플링할 경우 엔트로피는 다음과 같이 정의된다. (Q의 정보량에 대한 기댓값)

H(P,Q)=i=1np(xi)logq(xi)

쿨백-라이블러는 이들의 차이라고 했으므로 다음과 같이 정의할 수 있다.

KL(P||Q)=H(P,Q)H(P) =(i=1np(xi)logq(xi))(i=1np(xi)logp(xi)) =i=1np(xi)logq(xi)p(xi)

이때 이산확률분포의 쿨백-라이블러 발산은 위에서 표현한 것과 같이 총 합으로 나타낼 수 있으며 다음과 같고

KL(P||Q)=iP(i)logP(i)Q(i)

연속확률분포의 쿨백-라이블러 발산은 적분 값으로 주어진다. (이때 p,q는 각 확률분포의 확률밀도 함수이다.)

KL(P||Q)=p(x)logp(x)q(x)dx

엔트로피와 쿨백라이블러 발산을 알아봤으니 이어서 다음 포스팅은 cross entropy 내용에 대해 알아보도록 하겠다.

This post is licensed under CC BY 4.0 by the author.