二つの正規分布間の相対エントロピー(カルバック・ライブラー発散)
公式
二つの正規分布 $N(\mu, \sigma^{2})$と$N(\mu_{1}, \sigma_{1}^{2})$間の相対エントロピー(KLD) は次の通りだ。
$$ D_{\text{KL}}\big( N(\mu, \sigma^{2}) \| N(\mu_{1}, \sigma_{1}^{2}) \big) = \log \left( \dfrac{\sigma_{1}}{\sigma} \right) + \dfrac{\sigma^{2} + (\mu - \mu_{1})^{2}}{2\sigma_{1}^{2}} - \dfrac{1}{2} $$
二つの多変量正規分布 $N(\boldsymbol{\mu}, \Sigma)$と$N(\boldsymbol{\mu_{1}}, \Sigma_{1})$間の相対エントロピーは次の通りだ。
$$ \begin{array}{l} D_{\text{KL}}\big( N(\boldsymbol{\mu}, \Sigma) \| N(\boldsymbol{\mu_{1}}, \Sigma_{1}) \big) \\[1em] = \dfrac{1}{2} \left[ \log \left( \dfrac{|\Sigma|}{|\Sigma_{1}|} \right) + \Tr(\Sigma_{1}^{-1}\Sigma) + (\boldsymbol{\mu} - \boldsymbol{\mu_{1}})^{\mathsf{T}} \Sigma_{1}^{-1} (\boldsymbol{\mu} - \boldsymbol{\mu_{1}}) - k \right] \end{array} $$
説明
二つの正規分布間の相対エントロピーは上記の公式通りに閉じた形式で得ることができる。これはコンピュータシミュレーションで相対エントロピーを計算するためにサンプリングをする必要がないという意味なので非常に有用だ。特に機械学習、ディープラーニングなどの学習において大きな利点がある。サンプリングにより計算された値と比較して安定的で正確な値を提供し、計算時間やメモリに関しても効率的だ。
証明
一変量
正規分布: 平均が$\mu \in \mathbb{R}$、分散が$\sigma^{2} \gt 0$の正規分布 $N(\mu, \sigma^{2})$に従う確率密度関数は次の通りだ。 $$ p(x) = \frac{1}{\sqrt{2 \pi \sigma^{2}}} \exp \left(-\frac{(x - \mu)^{2}}{2\sigma^{2}}\right) $$
$p \sim N(\mu, \sigma^{2})$、$q \sim N(\mu_{1}, \sigma_{1}^{2})$としよう。ログ確率密度関数は次の通りだ。
$$ \log p = -\frac{1}{2} \log(2 \pi \sigma^{2}) - \frac{(x - \mu)^{2}}{2\sigma^{2}} $$
したがって、KLDは次のように計算される。
$$ \begin{align*} D_{\text{KL}}(p \| q) &= \mathbb{E}_{p} \left[ -\frac{1}{2} \log(2 \pi \sigma^{2}) - \frac{(x - \mu)^{2}}{2\sigma^{2}} + \frac{1}{2} \log(2 \pi \sigma_{1}^{2}) + \frac{(x - \mu_{1})^{2}}{2\sigma_{1}^{2}} \right] \\ &= \dfrac{1}{2}\log \left( \dfrac{2 \pi \sigma_{1}^{2}}{2 \pi \sigma^{2}} \right) + \mathbb{E}_{p} \left[ -\frac{(x - \mu)^{2}}{2\sigma^{2}} + \frac{(x - \mu_{1})^{2}}{2\sigma_{1}^{2}} \right] \\ &= \log \left( \dfrac{\sigma_{1}}{\sigma} \right) - \dfrac{1}{2\sigma^{2}}\mathbb{E}_{p} \left[ (x - \mu)^{2} \right] + \dfrac{1}{2\sigma_{1}^{2}}\mathbb{E}_{p} \left[ (x - \mu_{1})^{2} \right] \\ \end{align*} $$
ここで、第二項の期待値は分散の定義であるため、$\mathbb{E}_{p}[(x - \mu)^{2}] = \sigma^{2}$である。第三項は次のように計算される。
$$ \begin{align*} \mathbb{E}_{p}[(x - \mu_{1})^{2}] &= \mathbb{E}_{p}[((x - \mu) + (\mu - \mu_{1}))^{2}] \\ &= \mathbb{E}_{p}[(x - \mu)^{2} + 2(\mu - \mu_{1})(x - \mu) + (\mu - \mu_{1})^{2}] \\ &= \mathbb{E}_{p}[(x - \mu)^{2}] + 2(\mu - \mu_{1})\mathbb{E}_{p}[x - \mu] + (\mu - \mu_{1})^{2} \\ &= \sigma^{2} + 0 + (\mu - \mu_{1})^{2} \end{align*} $$
したがって、次のようになる。
$$ \begin{align*} D_{\text{KL}}(p \| q) &= \log \left( \dfrac{\sigma_{1}}{\sigma} \right) -\dfrac{1}{2\sigma^{2}} \sigma^{2} + \dfrac{1}{2\sigma_{1}^{2}} \left( \sigma^{2} + (\mu - \mu_{1})^{2} \right) \\ &= \log \left( \dfrac{\sigma_{1}}{\sigma} \right) + \dfrac{\sigma^{2} + (\mu - \mu_{1})^{2}}{2\sigma_{1}^{2}} - \dfrac{1}{2} \\ \end{align*} $$
■
多変量
多変量正規分布: 平均ベクトルが$\boldsymbol{\mu} \in \mathbb{R}^{k}$、共分散行列が$\Sigma \in \mathbb{R}^{k \times k}$の多変量正規分布 $N(\boldsymbol{\mu}, \Sigma)$に従う確率密度関数は次の通りだ。 $$ p(\mathbf{x}) = \frac{1}{\sqrt{(2 \pi)^{k} |\Sigma|}} \exp \left(-\frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^{\mathsf{T}} \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu})\right) $$
$p \sim N(\boldsymbol{\mu}, \Sigma)$、$q \sim N(\boldsymbol{\mu_{1}}, \Sigma_{1})$としよう。ログ確率密度関数は次の通りだ。
$$ \log p = -\frac{1}{2} \log((2 \pi)^{k} |\Sigma|) - \frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^{\mathsf{T}} \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu}) $$
したがって、KLDは次のように計算される。
$$ \begin{align*} D_{\text{KL}}(p \| q) &= \mathbb{E}_{p} \left[ -\frac{1}{2} \log((2 \pi)^{k} |\Sigma|) - \frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^{\mathsf{T}} \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu}) \right. \\ &\qquad\qquad + \left. \frac{1}{2} \log((2 \pi)^{k} |\Sigma_{1}|) + \frac{1}{2} (\mathbf{x} - \boldsymbol{\mu_{1}})^{\mathsf{T}} \Sigma_{1}^{-1} (\mathbf{x} - \boldsymbol{\mu_{1}}) \right] \\ &= \dfrac{1}{2} \log \left( \dfrac{|\Sigma_{1}|}{|\Sigma|} \right) + \mathbb{E}_{p} \left[ -\frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^{\mathsf{T}} \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu}) + \frac{1}{2} (\mathbf{x} - \boldsymbol{\mu_{1}})^{\mathsf{T}} \Sigma_{1}^{-1} (\mathbf{x} - \boldsymbol{\mu_{1}}) \right] \\ &= \dfrac{1}{2} \log \left( \dfrac{|\Sigma_{1}|}{|\Sigma|} \right) - \dfrac{1}{2} \mathbb{E}_{p} \left[ (\mathbf{x} - \boldsymbol{\mu})^{\mathsf{T}} \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu}) \right] + \dfrac{1}{2} \mathbb{E}_{p} \left[ (\mathbf{x} - \boldsymbol{\mu_{1}})^{\mathsf{T}} \Sigma_{1}^{-1} (\mathbf{x} - \boldsymbol{\mu_{1}}) \right] \end{align*} $$
$\mathbf{x} \sim N(\boldsymbol{\mu}, \Sigma)$であるランダムベクトル $\mathbf{x}$と対称行列 $A$について次が成り立つ。
$$ \begin{align*} \mathbb{E}\left[ (\mathbf{x} - \boldsymbol{\mu})^{\mathsf{T}}A (\mathbf{x} - \boldsymbol{\mu}) \right] &= \tr (A \Sigma) \\ \mathbb{E}\left[ (\mathbf{x} - \boldsymbol{\mu}_{1})^{\mathsf{T}}A (\mathbf{x} - \boldsymbol{\mu}_{1}) \right] &= \tr (A \Sigma) + (\boldsymbol{\mu} - \boldsymbol{\mu}_{1})^{\mathsf{T}} A (\boldsymbol{\mu} - \boldsymbol{\mu}_{1}) \end{align*} $$
上記の公式により、共分散行列は対称であるため、第二項の期待値は$\tr(\Sigma^{-1} \Sigma) = \Tr (I) = k$だ。第三項の期待値は$\Tr(\Sigma_{1}^{-1}\Sigma) + (\boldsymbol{\mu} - \boldsymbol{\mu_{1}})^{\mathsf{T}} \Sigma_{1}^{-1} (\boldsymbol{\mu} - \boldsymbol{\mu_{1}})$だ。したがって、次のようになる。
$$ \begin{align*} D_{\text{KL}}(p \| q) &= \dfrac{1}{2} \log \left( \dfrac{|\Sigma_{1}|}{|\Sigma|} \right) - \dfrac{1}{2}k + \dfrac{1}{2} \left( \Tr(\Sigma_{1}^{-1}\Sigma) + (\boldsymbol{\mu} - \boldsymbol{\mu_{1}})^{\mathsf{T}} \Sigma_{1}^{-1} (\boldsymbol{\mu} - \boldsymbol{\mu_{1}}) \right) \\ &= \dfrac{1}{2} \left[ \log \left( \dfrac{|\Sigma|}{|\Sigma_{1}|} \right) + \Tr(\Sigma_{1}^{-1}\Sigma) + (\boldsymbol{\mu} - \boldsymbol{\mu_{1}})^{\mathsf{T}} \Sigma_{1}^{-1} (\boldsymbol{\mu} - \boldsymbol{\mu_{1}}) - k \right] \end{align*} $$
■