今回は生成モデルで登場する、KL情報量と最尤法について自分用にまとめます。
Kullback–Leibler 情報量
KL情報量は、確率分布$p(\mathbf{x})$と$q(\mathbf{x})$に対して、次のように定義されます。
\begin{align*}
D_{KL}(p||q):= \int d{\bf{x}} \ p({\bf{x}}) \ {\rm{log}}\Big[\frac{p({\bf{x}})}{q({\bf{x}})}\Big]
\end{align*}
これは、確率分布間の距離のようなものです。実際この量は、$D_{KL} \geqq 0$を満たします。任意の正の実数$x$に対し、${\rm{log}}(x) \leqq x-1$より、これを両辺-1倍すると、${\rm{log}}(\frac{1}{x}) \geqq 1-x$なので、
\begin{align*}
D_{KL}(p||q) &= \int d{\bf{x}} \ p({\bf{x}}) \ {\rm{log}}\Big[\frac{p({\bf{x}})}{q({\bf{x}})}\Big] \\
&\geqq \int d\mathbf{x} \ p(\mathbf{x}) \ \Big[1-\frac{q(\mathbf{x})}{p(\mathbf{x})}\Big] \\
&= \int d\mathbf{x} \ \Big[p(\mathbf{x})-q(\mathbf{x})\Big] \\
&= 1 - 1 = 0 \\
\therefore \ D_{KL} \geqq 0
\end{align*}
と示されます(等号成立は分布が等しい時)。しかし、pとqの入れ替えに対し、非対称な形をしているので完全な距離と見ることはできません。また上記では$\bf{x}$を、連続確率変数として積分記号でKL情報量を定義しましたが、離散確率変数の場合は和記号となることに注意してください。
最尤法
生成モデルでは、データを生成する真の確率分布と、自分が好き勝手に決める確率分布をより近づけようとします。例えば今、N個のデータを${\bf{x}_1, \bf{x}_2, ..., \bf{x}_N}$としましょう。このデータを生成する確率分布はおそらく、
\begin{align*}
p_0({\bf{x}})=\frac{1}{N}\sum_{i=1}^{N}\delta\big({\bf{x}}-{\bf{x}}_i\big)
\end{align*}
に近いと考えられます。この分布のことを、経験分布(Empirical distribution)と言います。つまり、基本的な生成モデルの考え方は、自分達が決めることのできる$q_\theta({\bf{x}})$をできるだけ経験分布に近づけるということです($\theta$は調整可能なパラメータ)。これはKL情報量を最小化する問題として定式化できます。
\begin{align*}
{\rm{min}}_{\theta} \ D_{KL}(p_0||q_{\theta}) &= {\rm{min}}_{\theta}\int d{\bf{x}} \ p_0({\bf{x}}) \ {\rm{log}}\Big[\frac{p_0({\bf{x}})}{q_{\theta}({\bf{x}})}\Big] \\
&= {\rm{max}}_{\theta} \frac{1}{N} \sum_{i=1}^{N}\int d{\bf{x}} \ \delta\big({\bf{x}}-{\bf{x}}_i\big){\rm{log}}\big[q_{\theta}({\bf{x}})\big] \\
&= {\rm{max}}_{\theta} \frac{1}{N} \sum_{i=1}^{N}{\rm{log}}\big[q_{\theta}({\bf{x}}_i)\big]
\end{align*}
最終的に得られた、${\rm{log}}\big[q_{\theta}({\bf{x}}_i)\big]$は対数尤度関数と呼ばれます。そしてこのような尤度関数を最大化する方法のことを最尤法と言います。
Boltzmann Machine と Born Machine
ボルンマシンとボルツマンマシンは共に、物理学から着想を得ています。上で説明した自分達が決めることのできる確率分布を、次のような指数分布で書くことをボルツマンマシンと言います。
\begin{align*}
q_{\theta}({\bf{x}}) &= \frac{e^{-E_{\theta}({\bf{x}})}}{Z} \\
Z &= \sum_{{\bf{x}}}e^{-E_{\theta}({\bf{x}})}
\end{align*}
ここでZは規格化因子もしくは分配関数と呼ばれます。
そして、波動関数の絶対値2乗のように書く場合は、ボルンマシンと呼ばれます。
\begin{align*}
q_{\theta}({\bf{x}}) &= \frac{|\Psi_{\theta}({\bf{x}})|^2}{Z} \\
Z &= \sum_{{\bf{x}}}|\Psi_{\theta}({\bf{x}})|^2
\end{align*}
両者共にもう少し具体的な表式を与えないと、分かりにくいかもしれません。
[参考]
生成モデルの数理情報学!【2022年度・情報基礎科学としての数理情報学・東北大学大学院情報科学研究科】 (大関真之)