KL 발산
정의
이제 어떤 데이터의 확률밀도함수 p(x)가 있다고 하자. 이 함수를 정확히 알 수 없어서 이 함수를 근사적으로 추정한 확률밀도함수 q(x)를 사용한다고 가정하자. 그러면 당연히 실제분포인 p(x)로 얻을 수 있는 정보량과 근사적 분포인 q(x)로 얻을 수 있는 정보량은 다를 것이다. 이때 둘 사이의 평균 정보량이 얼마나 차이가 나는지 계산한 것을 상대 엔트로피(relative entropy) 또는 KL 발산(Kullback-Leibler divergence)이라고 하며 다음과 같이 정의한다.
DKL(p(x)∣∣q(x))=−∫xp(x)logq(x)dx−(−∫xp(x)logp(x)dx)=∫xp(x)logq(x)p(x)dx
KL 발산의 첫 번째 항은 근사 분포인 q(x)의 정보량을 실제 분포를 사용해 기댓값을 계산한 것이고, 두 번째 항은 실제 분포 p(x)의 평균 정보량이다. KL 발산은 두 확률분포의 엔트로피 차이를 나타내지만 두 확률분포가 얼마나 유사한지 '거리'를 측정하는 도구로 쓰인다.
실제로 KL 발산은 거리의 척도(metric) 특성 4가지 중 3가지만을 만족하고 대칭성을 만족하지 못하기 때문에 준(semi) 거리 척도라고 한다.
📌In particular, it is not symmetric in the two distributions (in contrast to variation of information), and does not satisfy the triangle inequality.(feat. 위키백과) 즉, 거리를 측정한다고는 하지만 우리가 흔히 생각하는 거리의 대칭성과 삼각부등식(삼각형의 두 변의 길이의 합은 한 변의 길이보다 무조건 크다)을 만족하는 거리는 아니다.
특징
KL 발산은 비대칭 함수다. 즉,
DKL(p(x)∣∣q(x))=DKL(q(x)∣∣p(x))
또한 DKL(p(x)∣∣q(x))≥0를 만족하며, p(x)=q(x)일 때만, DKL(p(x)∣∣q(x))=0이다.
DKL(p(x)∣∣q(x))≥0은 −log함수가 컨벡스(convex, 볼록) 함수임을 이용해 증명할 수 있다.
컨벡스 함수 f(x)에 대해서는 다음과 같이 젠센 부등식(Jensen's inequality)이 성립한다. 즉,
E[f(g(x))]≥f(E[g(x)])
이제 KL 발산 식에서 g(x)=p(x)q(x)를 사용해 f(x)=−logx, f(g(x))=−log(g(x))로 놓으면,
DKL(p(x)∣∣q(x))=∫xp(x)logq(x)p(x)dx=−∫xp(x)logp(x)q(x)dx=E[f(g(x))]≥f(E[g(x)])=−logE[p(x)q(x)]=−log∫xp(x)p(x)q(x)dx=−log∫xq(x)dx=−log1=0∴DKL(p(x)∣∣q(x))≥0
이 되는 것을 알 수 있다.
p(x)와 q(x)가 각각 평균이 μp, μq, 공분산이 Pp, Pq인 n차원 가우신안 분포라면 KL 발산은 다음과 같이 계산된다.
DKL(p(x)∣∣q(x))=21(tr(Pq−1Pp)+(μq−μp)TPq−1(μq−μp)−n+logdetPpdetPq)
실제 데이터의 분포가 p(x)로 주어지고 이를 q(x)로 추정하고자 할 때 해당 데이터 집합에서 p(x)는 고정이므로(물론 알지는 못하지만) p(x)와 유사한 q(x)를 계산하는 것을 다음과 같이 생각할 수 있다.
qargminDKL(p∣∣q)=qargmin{−∫xp(x)logq(x)dx+∫xp(x)logp(x)dx}=qargmin{−∫xp(x)logq(x)dx}=qargminH(p,q)
즉, 데이터 집합이 주어졌을 때 미지의 p(x)와 유사한 q(x)는 교차 엔트로피 H(p,q)를 최소로 만드는 확률밀도함수다.
References
[1] 박성수. (2020). 수학으로 풀어보는 강화학습 원리와 알고리즘. 위키북스