からっぽのしょこ

読んだら書く!書いたら読む!同じ事は二度調べ(たく)ない

4.2.2:変分推論【緑ベイズ入門のノート】

はじめに

 『ベイズ推論による機械学習入門』の学習時のノートです。基本的な内容は「数式の行間を読んでみた」とそれを「RとPythonで組んでみた」になります。「数式」と「プログラム」から理解するのが目標です。

 この記事は、4.2.2項の内容です。混合モデルの変分推論で利用する近似公式を導出します。

 省略してある内容等ありますので、本とあわせて読んでください。初学者な自分が理解できるレベルまで落として書き下していますので、分かる人にはかなりくどくなっています。同じような立場の人のお役に立てれば幸いです。

【他の節一覧】

www.anarchive-beta.com

【この節の内容】

4.2.2 変分推論

 変分推論では、最適化問題を解くことで未知の確率分布の近似分布を求める。

 ある複雑な確率分布$p(z_1, z_2, z_3)$を、より簡単な近似分布$q(z_1, z_2, z_3)$で表現することを考える。

 $q(z_1, z_2, z_3)$の各確率変数に独立性の仮定

$$ p(z_1, z_2, z_3) \approx q(z_1, z_2, z_3) = q(z_1) q(z_2) q(z_3) \tag{4.15} $$

をおき、$q(z_2), q(z_3)$が与えられた(を固定した)下でのKLダイバージェンスを最小にする$q(z_1)$を求める(最適化問題を解く)。

$$ q_{\mathrm{opt.}}(z_1) = \mathop{\mathrm{argmin}}\limits_{q(z_1)} \mathrm{KL}[ q(z_1) q(z_2) q(z_3) \| p(z_1, z_2, z_3) ] \tag{4.16} $$

 この最適化問題を解く前に、KLダイバージェンスについて確認する。

・KLダイバージェンス

 KLダイバージェンス(KL情報量)について情報量の観点から確認する場合は、こちらの記事を参照してください。

www.anarchive-beta.com


 2つの確率分布$p(\mathbf{x})$と$q(\mathbf{x})$のKLダイバージェンスは次の式で定義される。

$$ \mathrm{KL}[q(\mathbf{x}) \| p(\mathbf{x})] = - \int q(\mathbf{x}) \ln \frac{p(\mathbf{x})}{q(\mathbf{x})} d\mathbf{x} \tag{2.13} $$

 この式は、(連続値の)期待値の定義式$\mathbb{E}_{p(\mathbf{x})}[f(\mathbf{x})] = \int p(\mathbf{x}) f(\mathbf{x}) d\mathbf{x}$より、期待値の形式でも表現できる。

$$ \mathrm{KL}[q(\mathbf{x}) \| p(\mathbf{x})] = - \mathbb{E}_{q(\mathbf{x})} \left[ \ln \frac{p(\mathbf{x})}{q(\mathbf{x})} \right] $$

 さらに、括弧の中の対数をとると、対数の性質$\ln \frac{x}{y} = \ln x - \ln y$より

$$ \begin{aligned} \mathrm{KL}[q(\mathbf{x}) \| p(\mathbf{x})] &= - \mathbb{E}_{q(\mathbf{x})} \Bigl[ \ln p(\mathbf{x}) - \ln q(\mathbf{x}) \Bigr] \\ &= \mathbb{E}_{q(\mathbf{x})} \Bigl[ \ln q(\mathbf{x}) - \ln p(\mathbf{x}) \Bigr] \\ &= \mathbb{E}_{q(\mathbf{x})} \Bigl[ \ln q(\mathbf{x}) \Bigr] - \mathbb{E}_{q(\mathbf{x})} \Bigl[ \ln p(\mathbf{x}) \Bigr] \end{aligned} $$

と変形できる。期待値の性質$a \mathbb{E}[x] = \mathbb{E}[a x]$、$\mathbb{E}[x + y] = \mathbb{E}[x] + \mathbb{E}[y]$を用いている。
 この式変形は式(2.13)から次のようにも行える。

$$ \begin{aligned} \mathrm{KL}[q(\mathbf{x}) \| p(\mathbf{x})] &= - \int q(\mathbf{x}) \Bigl( \ln p(\mathbf{x}) - \ln q(\mathbf{x}) \Bigr) d\mathbf{x} \\ &= \int q(\mathbf{x}) \Bigl( \ln q(\mathbf{x}) - \ln p(\mathbf{x}) \Bigr) d\mathbf{x} \\ &= \int q(\mathbf{x}) \ln q(\mathbf{x}) d\mathbf{x} - \int q(\mathbf{x}) \ln p(\mathbf{x}) d\mathbf{x} \\ &= \mathbb{E}_{q(\mathbf{x})} \Bigl[ \ln q(\mathbf{x}) \Bigr] - \mathbb{E}_{q(\mathbf{x})} \Bigl[ \ln p(\mathbf{x}) \Bigr] \end{aligned} $$

 また、2つの式変形の2行目の式から分母分子を入れ替えられる。

$$ \begin{align} \mathrm{KL}[q(\mathbf{x}) \| p(\mathbf{x})] &= - \int q(\mathbf{x}) \ln \frac{p(\mathbf{x})}{q(\mathbf{x})} d\mathbf{x} \tag{2.13}\\ &= \int q(\mathbf{x}) \ln \frac{q(\mathbf{x})}{p(\mathbf{x})} d\mathbf{x} = \mathbb{E}_{q(\mathbf{x})} \left[ \ln \frac{q(\mathbf{x})}{p(\mathbf{x})} \right] \end{align} $$


・各変数の近似分布の導出

 1つの変数$z_1$に関する近似分布$q(z_1)$を求めていく。

 真の分布$p(z_1, z_2, z_3)$と近似分布$q(z_1) q(z_2) q(z_3)$のKLダイバージェンスは、定義式(2.13)より

$$ \begin{align} \mathrm{KL}[q(z_1) q(z_2) q(z_3) \| p(z_1, z_2, z_3)] &= - \iiint q(z_1) q(z_2) q(z_3) \ln \frac{ p(z_1, z_2, z_3) }{ q(z_1) q(z_2) q(z_3) } dz_1 dz_2 dz_3 \\ &= - \mathbb{E}_{q(z_1) q(z_2) q(z_3)} \left[ \ln \frac{ p(z_1, z_2, z_3) }{ q(z_1) q(z_2) q(z_3) } \right] \tag{4.18} \end{align} $$

である。ここでは$q(z_1)$に注目しているため、(1行目の式から)$q(z_1)$の期待値に変形する。

$$ \begin{align} \mathrm{KL}[q(z_1) q(z_2) q(z_3) \| p(z_1, z_2, z_3)] &= - \int q(z_1) \iint q(z_2) q(z_3) \ln \frac{ p(z_1, z_2, z_3) }{ q(z_1) q(z_2) q(z_3) } dz_2 dz_3 dz_1 \\ &= - \int q(z_1) \mathbb{E}_{q(z_2) q(z_3)} \Bigl[ \ln \frac{ p(z_1, z_2, z_3) }{ q(z_1) q(z_2) q(z_3) } \Bigr] dz_1 \\ &= - \mathbb{E}_{q(z_1)} \left[ \mathbb{E}_{q(z_2) q(z_3)} \Bigl[ \ln \frac{ p(z_1, z_2, z_3) }{ q(z_1) q(z_2) q(z_3) } \Bigr] \right] \tag{4.19} \end{align} $$

 括弧内の対数をとり、$q(z_2) q(z_3)$による期待値の項を分解する。

$$ \begin{align} \mathrm{KL}[q(z_1) q(z_2) q(z_3) \| p(z_1, z_2, z_3)] &= - \mathbb{E}_{q(z_1)} \Bigl[ \mathbb{E}_{q(z_2) q(z_3)} \Bigl[ \ln p(z_1, z_2, z_3) - \ln q(z_1) - \ln q(z_2) - \ln q(z_3) \Bigr] \Bigr] \\ &= - \mathbb{E}_{q(z_1)} \Bigl[ \mathbb{E}_{q(z_2) q(z_3)} [ \ln p(z_1, z_2, z_3) ] - \mathbb{E}_{q(z_2) q(z_3)} [\ln q(z_1)] \Bigr. \\ &\qquad \Bigl. - \mathbb{E}_{q(z_2) q(z_3)} [\ln q(z_2)] - \mathbb{E}_{q(z_2) q(z_3)} [\ln q(z_3)] \Bigr] \tag{4.20} \end{align} $$

 さらに、$q(z_1)$による期待値の項も分割する。

$$ \begin{aligned} \mathrm{KL}[q(z_1) q(z_2) q(z_3) \| p(z_1, z_2, z_3)] &= - \mathbb{E}_{q(z_1)} \Bigl[ \mathbb{E}_{q(z_2) q(z_3)} [ \ln p(z_1, z_2, z_3) ] - \mathbb{E}_{q(z_2) q(z_3)} [\ln q(z_1)] \Bigr] \\ &\qquad - \mathbb{E}_{q(z_1)} \Bigl[ - \mathbb{E}_{q(z_2) q(z_3)} [\ln q(z_2)] - \mathbb{E}_{q(z_2) q(z_3)} [\ln q(z_3)] \Bigr] \end{aligned} $$

 $\mathbb{E}_{q(z_2) q(z_3)} [\ln q(z_1)] = \iint q(z_2) q(z_3) \ln q(z_1) dz_2 dz_3$であり、さらに$\ln q(z_1) \iint q(z_2) q(z_3) dz_2 dz_3$とできる。(連続値の)確率分布の定義より$\int q(z_2) dz_2 = 1$、$\int q(z_3) dz_3 = 1$なので、$\mathbb{E}_{q(z_2) q(z_3)} [\ln q(z_1)] = \ln q(z_1)$となる。後の項についても同様に、期待値計算(積分計算)の中に$z_1$を含まないので、$\mathbb{E}_{q(z_1)}[\cdot]$を外せる。

$$ \begin{aligned} \mathrm{KL}[q(z_1) q(z_2) q(z_3) \| p(z_1, z_2, z_3)] &= - \mathbb{E}_{q(z_1)} \Bigl[ \mathbb{E}_{q(z_2) q(z_3)} [ \ln p(z_1, z_2, z_3) ] - \ln q(z_1) \Bigr] \\ &\qquad + \mathbb{E}_{q(z_2) q(z_3)} [\ln q(z_2)] + \mathbb{E}_{q(z_2) q(z_3)} [\ln q(z_3)] \end{aligned} $$

 $z_1$に影響しない項を$\mathrm{const.}$とおく。

$$ \mathrm{KL}[q(z_1) q(z_2) q(z_3) \| p(z_1, z_2, z_3)] = - \mathbb{E}_{q(z_1)} \Bigl[ \mathbb{E}_{q(z_2) q(z_3)} [ \ln p(z_1, z_2, z_3) ] - \ln q(z_1) \Bigr] + \mathrm{const.} \tag{4.21} $$

 $\ln \exp(x) = x$であることを用いて、$\ln$の項をまとめる。

$$ \begin{align} \mathrm{KL}[q(z_1) q(z_2) q(z_3) \| p(z_1, z_2, z_3)] &= - \mathbb{E}_{q(z_1)} \Bigl[ \ln \exp \Bigl\{ \mathbb{E}_{q(z_2) q(z_3)} [ \ln p(z_1, z_2, z_3) ] \Bigr\} - \ln q(z_1) \Bigr] + \mathrm{const.} \\ &= - \mathbb{E}_{q(z_1)} \left[ \ln \frac{ \exp \Bigl\{ \mathbb{E}_{q(z_2) q(z_3)} [ \ln p(z_1, z_2, z_3) ] \Bigr\} }{ q(z_1) } \right] + \mathrm{const.} \tag{4.22} \end{align} $$

 式の形から、$q(z_1)$と$\exp {\mathbb{E}_{q(z_2) q(z_3)}[\ln p(z_1, z_2, z_3)] }$のKLダイバージェンス

$$ \mathrm{KL}[q(z_1) q(z_2) q(z_3) \| p(z_1, z_2, z_3)] = \mathrm{KL} \left[ q(z_1) \middle\| \exp \Bigl\{\mathbb{E}_{q(z_2) q(z_3)}[\ln p(z_1, z_2, z_3)]\Bigr\} \right] + \mathrm{const.} \tag{4.23} $$

になるのが分かる。

 式(4.23)の右辺の2つの分布が等しいとき、$\mathrm{KL}[q(z_1) \| \exp{\mathbb{E}_{q(z_2) q(z_3)}[\ln p(z_1, z_2, z_3)]}]$が0になるので、左辺が最小となる。したがって、$\mathrm{KL}[q(z_1) q(z_2) q(z_3) \| p(z_1, z_2, z_3)]$を最小化する近似分布

$$ q(z_1) = \exp \Bigl\{ \mathbb{E}_{q(z_2) q(z_3)}[\ln p(z_1, z_2, z_3)] \Bigr\} $$

が得られる(等式ではなく比例関係$\propto$かも)。

 具体的な近似分布を求める際には、両辺の対数をとった

$$ \ln q(z_1) = \mathbb{E}_{q(z_2) q(z_3)}[\ln p(z_1, z_2, z_3)] + \mathrm{const.} \tag{4.24} $$

を用いる($\mathrm{const.}$は正規化項のことだと思う)。

 他の変数に関する近似分布$q(z_i)$についても同様に求められる。

・近似事後分布の導出

 式(4.24)を用いて、観測データ$\mathcal{D}$が与えられた下での未観測の変数$\mathbf{Z} = (z_1, z_2, \cdots, z_M)$の事後分布$p(z_1, z_2, \cdots, z_M | \mathcal{D})$の近似分布$q(\mathbf{Z})$を求めていく。

 $q(\mathbf{Z})$の各変数に独立性の仮定

$$ p(z_1, z_2, \cdots, z_M | \mathcal{D}) \approx q(\mathbf{Z}) = \prod_{i=1}^M q(z_i) $$

をおくと、近似分布$q(z_i)$は他の近似分布$q(\mathbf{z}_{\backslash i})$が固定された下で

$$ \begin{align} \ln q(z_i) &= \mathbb{E}_{q(\mathbf{z}_{\backslash i})} [ \ln p(z_1, z_2, \cdots, z_M | \mathcal{D}) ] + \mathrm{const.} \\ &= \mathbb{E}_{q(\mathbf{z}_{\backslash i})} \left[ \ln \frac{ p(\mathcal{D}, z_1, z_2, \cdots, z_M) }{ p(\mathcal{D}) } \right] + \mathrm{const.} \\ &= \mathbb{E}_{q(\mathbf{z}_{\backslash i})} \Bigl[ \ln p(\mathcal{D}, z_1, z_2, \cdots, z_M) - \ln p(\mathcal{D}) \Bigr] + \mathrm{const.} \\ &= \mathbb{E}_{q(\mathbf{z}_{\backslash i})} [ \ln p(\mathcal{D}, z_1, z_2, \cdots, z_M) ] - \mathbb{E}_{q(\mathbf{z}_{\backslash i})} [ \ln p(\mathcal{D}) ] + \mathrm{const.} \\ &= \mathbb{E}_{q(\mathbf{z}_{\backslash i})} [ \ln p(\mathcal{D}, z_1, z_2, \cdots, z_M) ] + \mathrm{const.} \tag{4.25} \end{align} $$

と求められる。$z_i$と無関係な$- \mathbb{E}_{q(\mathbf{z}_{\backslash i})} [\ln p(\mathcal{D})]$を$\mathrm{const.}$にまとめた。

 近似公式(4.25)を用いて、4.2.3項と4.3.3項にてパラメータの事後分布の近似分布を求める。

参考文献

  • 須山敦志『ベイズ推論による機械学習入門』(機械学習スタートアップシリーズ)杉山将監修,講談社,2017年.

おわりに

 ところでいつ変分したの?トピックモデルの変分推論のときには、ラグランジュの未定乗数法のところで変分法を使った記憶がある。

 2021年4月21日は、Juice=Juiceの元メンバー高木紗友希さんの24歳のお誕生日です。おめでとうございます!

 さゆべぇ早くステージに戻ってきてー。

【次節の内容】

www.anarchive-beta.com