KL 발산(divergence)

Kiwoong Park·2024년 3월 8일

KL 발산

정의

이제 어떤 데이터의 확률밀도함수 p(x)\textit{p(x)}가 있다고 하자. 이 함수를 정확히 알 수 없어서 이 함수를 근사적으로 추정한 확률밀도함수 q(x)\textit{q(x)}를 사용한다고 가정하자. 그러면 당연히 실제분포인 p(x)p(x)로 얻을 수 있는 정보량과 근사적 분포인 q(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)logp(x)q(x)dxD_{KL}(p(x)||q(x)) = -\int_xp(x)logq(x)dx -(-\int_xp(x)logp(x)dx) \\ = \int_xp(x)log\frac{p(x)}{q(x)}dx

KL 발산의 첫 번째 항은 근사 분포인 q(x)q(x)의 정보량을 실제 분포를 사용해 기댓값을 계산한 것이고, 두 번째 항은 실제 분포 p(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))D_{KL}(p(x)||q(x)) \neq D_{KL}(q(x)||p(x))

또한 DKL(p(x)q(x))0D_{KL}(p(x)||q(x))\geq0를 만족하며, p(x)=q(x)p(x)=q(x)일 때만, DKL(p(x)q(x))=0D_{KL}(p(x)||q(x))=0이다.

DKL(p(x)q(x))0D_{KL}(p(x)||q(x))\geq0log-log함수가 컨벡스(convex, 볼록) 함수임을 이용해 증명할 수 있다.
컨벡스 함수 f(x)f(x)에 대해서는 다음과 같이 젠센 부등식(Jensen's inequality)이 성립한다. 즉,

E[f(g(x))]f(E[g(x)])E[f(g(x))]\geq f(E[g(x)])

이제 KL 발산 식에서 g(x)=q(x)p(x)g(x)=\frac{q(x)}{p(x)}를 사용해 f(x)=logxf(x)=-logx, f(g(x))=log(g(x))f(g(x)) = -log(g(x))로 놓으면,

DKL(p(x)q(x))=xp(x)logp(x)q(x)dx=xp(x)logq(x)p(x)dx=E[f(g(x))]f(E[g(x)])=logE[q(x)p(x)]=logxp(x)q(x)p(x)dx=logxq(x)dx=log1=0DKL(p(x)q(x))0D_{KL}(p(x)||q(x)) = \int_xp(x)log\frac{p(x)}{q(x)}dx \\ = - \int_xp(x)log\frac{q(x)}{p(x)}dx =E[f(g(x))] \geq f(E[g(x)]) \\= -logE[\frac{q(x)}{p(x)}]=-log\int_{x}p(x)\frac{q(x)}{p(x)}dx \\ = -log\int_xq(x)dx = -log1 =0 \\ \therefore D_{KL}(p(x)||q(x)) \geq 0

이 되는 것을 알 수 있다.
p(x)p(x)q(x)q(x)가 각각 평균이 μp\mu_p, μq\mu_q, 공분산이 PpP_p, PqP_qnn차원 가우신안 분포라면 KL 발산은 다음과 같이 계산된다.

DKL(p(x)q(x))=12(tr(Pq1Pp)+(μqμp)TPq1(μqμp)n+logdetPqdetPp)D_{KL}(p(x)||q(x))=\frac{1}{2}(tr(P_q^{-1}P_p)+(\mu_q-\mu_p)^T P_q^{-1}(\mu_q-\mu_p)-n + log\frac{detP_q}{detP_p})

실제 데이터의 분포가 p(x)p(x)로 주어지고 이를 q(x)q(x)로 추정하고자 할 때 해당 데이터 집합에서 p(xp(x)는 고정이므로(물론 알지는 못하지만) p(x)p(x)와 유사한 q(x)q(x)를 계산하는 것을 다음과 같이 생각할 수 있다.

argminqDKL(pq)=argminq{xp(x)logq(x)dx+xp(x)logp(x)dx}=argminq{xp(x)logq(x)dx}=argminqH(p,q)\underset{q}{argmin}D_{KL}(p||q) = \underset{q}{argmin} \left \{ -\int_xp(x)logq(x)dx + \int_x p(x)logp(x)dx \right \} \\ = \underset{q}{argmin} \left \{ -\int_xp(x)logq(x)dx \right \} \\ = \underset{q}{argmin} H(p, q)

즉, 데이터 집합이 주어졌을 때 미지의 p(x)p(x)와 유사한 q(x)q(x)는 교차 엔트로피 H(p,q)H(p,q)를 최소로 만드는 확률밀도함수다.

References
[1] 박성수. (2020). 수학으로 풀어보는 강화학습 원리와 알고리즘. 위키북스

profile
You matter, never give up

0개의 댓글