쿨백-라이블러 발산

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

쿨백-라이블러 발산(Kullback–Leibler divergence, KLD)은 두 확률분포의 차이를 계산하는 데에 사용하는 함수로, 어떤 이상적인 분포에 대해, 그 분포를 근사하는 다른 분포를 사용해 샘플링을 한다면 발생할 수 있는 정보 엔트로피 차이를 계산한다. 상대 엔트로피(relative entropy), 정보 획득량(information gain), 인포메이션 다이버전스(information divergence)라고도 한다. 정보이론에서는 상대 엔트로피, 기계학습의 결정 트리에서는 정보 획득량을 주로 사용한다.

쿨백-라이블러 발산은 비대칭으로, 두 값의 위치를 바꾸면 함수값도 달라진다. 따라서 이 함수는 거리 함수는 아니다.

정의[편집]

두 확률변수에 대한 확률분포 P, Q가 있을 때, 두 분포의 쿨백-라이블러 발산은 다음과 같이 정의된다.

또는, 측도를 사용하여 더 일반적으로 표현할 수도 있다. 두 확률측도 P, Q가 있고 QP에 대해 절대수렴할 경우, 두 분포의 쿨백-라이블러 발산은 다음과 같이 정의된다.

D_{\mathrm{KL}}(P\|Q) = -\int_X \log \frac{d Q}{d P} dP

여기에서 \frac{d Q}{d P}라돈-니코딤 도함수(Radon–Nikodym derivative)이다.

의미[편집]

쿨백-라이블러 발산은 어떠한 확률분포 P가 있을 때, 샘플링 과정에서 그 분포를 근사적으로 표현하는 확률분포 QP 대신 사용할 경우 엔트로피 변화를 의미한다. 따라서, 원래의 분포가 가지는 엔트로피 H(P)P 대신 Q를 사용할 때의 교차 엔트로피(cross entropy) H(P, Q)의 차이를 구하면,

D_{\mathrm{KL}}(P\|Q) = H(P, Q) - H(P)
= (-\sum_x p(x) \log q(x)) - (-\sum_x p(x) \log p(x))

로, 원래 정의했던 식과 같은 결과가 나온다.