지난 포스팅 [PML intro] Ch6 Information Theory (Sec.6.1 Entropy - 3) 에서 저희는 연속 확률변수의 미분 엔트로피를 다루었습니다. 이산의 경우와 달리 음수가 될 수도 있으며 균등분포나 가우시안 분포와 같은 예시를 통해 간단한 계산 과정도 확인하였습니다. 특히, 가우시안은 분산이 커질수록 엔트로피가 증가하지만 혼합분포와 같은 복잡한 분포의 경우 분산이 커진다고 해서 엔트로피가 반드시 증가하는 것은 아니라는 사실을 확인하였습니다.
1. 상대 엔트로피(Relative entropy)
두 분포 $p$와 $q$가 주어졌을 때, 이들이 얼마나 더 가깝거나 혹은 유사한지를 측정하는 거리 척도를 정의하는 것은 딥 러닝이나 머신러닝에서 자주 사용됩니다. 실제로 저희는 더 일반적으로 $q$가 $p$로부터 얼마나 떨어져 있는지를 정량화하는 발산(divergence) 척도 $D(p, q)$를 고려해볼 것입니다. 다만, $D$가 반드시 거리(metric)일 필요는 없습니다. 좀 더 정확히 말하자면 $D(p, q) \ge 0$이고 $p = q$일 때만 등호가 성립하면 $D$를 발산이라고 부를 수 있습니다.
반면 거리는 이 조건에 더해 대칭성 $D(p, q) = D(q, p)$과 삼각부등식 $D(p, r) \le D(p, q) + D(q, r)$을 만족해야합니다. 사용할 수 있는 발산 척도를 여러가지가 있습니다. 오늘은 이 발산척도 중 가장 대표적인 Kullback-Leibler 발산(KL divergence)에 대해서 알아보도록 하겠습니다. 이는 다른 말로 정보이득(information gain) 또는 상대 엔트로피(relative entropy)라고도 불립니다. 이는 최근 다양한 분야에서 활용되는 확산 모델(Diffusion Model)의 핵심 요소 중 하나 입니다.
2. 정의와 해석(Definition and Interpretation)
2.1 정의(Definition)
이산 분포의 경우 KL 발산은 다음과 같이 정의됩니다.
$$D_{\text{KL}} (p || q) = \sum_{k = 1}^{K} p_{k} \log \frac{p_{k}}{q_{k}}$$
이는 연속 분포의 경우에서도 자연스럽게 KL 발산은 다음과 같이 확장하여 정의할 수 있습니다.
$$D_{\text{KL}} (p || q) = \int p(x) \log \frac{p(x)}{q(x)} \; dx$$
2.2 해석(Interpretation)
KL 발산은 다음과 같이 다시 써볼 수 있습니다.
$$\begin{align}
D_{\text{KL}}(p \parallel q)
&= \sum_{k=1}^K p_k \log \frac{p_k}{q_k} \\[6pt]
&= \underbrace{\sum_{k=1}^K p_k \log p_k}_{-\mathbb{H}(p)}
\;-\; \underbrace{\sum_{k=1}^K p_k \log q_k}_{\mathbb{H}_{\text{ce}}(p,q)}
\end{align}$$
첫번째 항은 음의 엔트로피 $\mathbb{H}(p)$이고 두 번째 항은 교차 엔트로피 $\mathbb{H}(p, q)$임을 알 수 있습니다. 교차 엔트로피 $\mathbb{H}(p, q)$는 분포 $q$를 기반으로 한 부호화 방식을 사용하여 분포 $p$에서 온 데이터를 압축할 때 필요한 비트 수의 하한임을 보일 수 있습니다. 따라서, KL 발산은 실제 분포 $p$ 대신 잘못된 분포 $q$를 부호화 기준으로 사용했을 때 데이터를 압축하는 데 추가로 들어가는 비트 수로 해석할 수 있습니다.
3. 예시(Example)
예를 들어 두 다변량 가우시안 분포 사이의 KL 발산은 다음과 같이 주어집니다.
$$\begin{align}
D_{KL}\!\big(\mathcal{N}(x \mid \mu_1, \Sigma_1) \;\|\; \mathcal{N}(x \mid \mu_2, \Sigma_2)\big)
&= \frac{1}{2} \Bigg[
\mathrm{tr}\!\left(\Sigma_2^{-1}\Sigma_1\right)
+ (\mu_2 - \mu_1)^{T}\Sigma_2^{-1}(\mu_2 - \mu_1) \\
&\qquad - D
+ \ln \frac{\det(\Sigma_2)}{\det(\Sigma_1)} \Bigg]
\end{align}$$
스칼라(1차원) 경우는 다음과 같습니다.
$$\begin{align}
D_{KL}\!\big(\mathcal{N}(x \mid \mu_1, \sigma_1^2) \;\|\; \mathcal{N}(x \mid \mu_2, \sigma_2^2)\big)
&= \ln \frac{\sigma_2}{\sigma_1}
+ \frac{\sigma_1^2 + (\mu_1 - \mu_2)^2}{2\sigma_2^2}
- \frac{1}{2}
\end{align}$$