【徹底解説】VAE・EM・変分ベイズの関係

zuka

こんにちは。
zuka(@beginaid)です。

本記事は徹底解説シリーズの1つになります。記事一覧はこちらの目次ページからご覧ください。

目次

本記事の流れ

VAE(変分オートエンコーダ;variational autoencoder)をEMと変分ベイズという2つの観点から捉えて解説していきます。あえてVAEそのものを解説するだけではなく,少し俯瞰した視点から眺めることでより深くVAEを理解できるようになるはずです。

まず,VAEのお気持ちをお伝えします。その後,確率モデル一般の話から変分ベイズとEMについて確認します。最後に,VAEがEMと変分ベイズの亜種であることをお伝えします。目標としては,以下の図を理解していただくことです。

本記事で目指す理解
zuka

間違いや勘違いがたくさんあるかと思います。お手数ですが,心優しき有識者の方はバシバシご指摘いただけますと幸いです。

VAEがEMと変分ベイズの亜種であることはドクターの先輩との議論を通して得られた知見の1つです。もし間違い等ございましたら,お問い合わせページか本文下のコメント欄よりご指摘いただけますと幸いです。

原著

Kingmaの原著論文は以下です。arXivはこちらより飛べます。

[1] Kingma, D. P. and Welling, M. (2014). Auto-encoding variational Bayes. In Proceedings of the International Conference on Learning Representations (ICLR).

VAEのお気持ち

VAE(変分オートエンコーダ)とは,簡単にまとめると以下のような手法です。

VAEは事後分布の近似方法の1つ。結果としてオートエンコーダ型になっているだけで,オートエンコーダの応用手法として発表された訳ではない。名前の通り変分ベイズのアイディアの一部を用いるが,従来のように近似分布に平均近似場の仮定を置かないことに加え,事後分布の近似にDNN(深層ニューラルネットワーク)を導入した。同時に,誤差逆伝播を可能にする微分可能な定式化も行なった。

よく勘違いされるのは,VAEがAEの応用手法であるということです。名前にもAE(オートエンコーダ)と入っているので,そう思ってしまうのは当然のことのように思えます。しかし,Kingmaの原著論文[1]を読めば,VAEがAEのアイディアを元に出発している訳ではないことが分かります。VAEはあくまでも,事後分布を近似するために変分ベイズのアイディアの一部を用いているという認識を持つことが大切だと思います。

確率モデルの問題設定

少しずつ数式を導入していきます。観測データを$X$としたときに,その観測データが得られるメカニズムを構成する確率分布の形を求めることが,我々の究極的な目標です。背後に潜む確率分布の形を定める値を,パラメータ$\theta$と呼びます。また,このような問題設定を行うタスクのことを確率モデルと呼びます。

確率モデルの問題を解くためには,1つの大きな方針と2つの主な手法があります。

  • 潜在変数$Z$を導入してシンプルな定式化を行う(方針)
  • 設定した尤度関数$\sum_Z p(X, Z|\theta)$をよく表すようなパラメータ$\theta$を点推定する(手法1:最尤推定)
  • パラメータ$\theta$も含めた確率変数$Z$の事後分布$p(Z|X)$の形を求めてしまう(手法2:変分ベイズ)

確率モデルの問題を考えるときには,まず最初に確率モデルに潜在変数を導入します。そうすることで,複雑な分布をより単純な分布を使って表すことが可能になります。潜在変数を導入することは,同時分布$p(X, Z)$を設計することに相当します。ここが全ての始まりです。観測データ$X$と潜在変数$Z$にどのような依存関係があるのかを同時分布として設定してしまうわけです。

その際には,副次的に尤度関数$p(X|Z)$や事前分布$p(Z)$を仮定することになります。例えば,同時分布$p(X, Z)$を尤度関数と事前分布の積に分解して,それぞれにガウス分布を仮定する,などです。

潜在変数を導入したあとは,大きく2つの手法が用いられます。最尤推定を行うEMアルゴリズムと,事後分布の近似を行う変分ベイズです。

最尤推定(EMアルゴリズム)

観測データをよく説明するようなパラメータ$\theta$を求めるのが最尤推定です。EMアルゴリズムは,最尤推定を実現するための代表的な手法です。つまり,EMアルゴリズムは,対数尤度$\ln p(X|\theta)$の最大化を目的とした手法です。

EMアルゴリズムは変分ベイズと様々な共通点があります。ですので,EMアルゴリズムについての理解は変分ベイズの理解を助け,さらにはVAEの理解も深めます。

繰り返しますが,EMアルゴリズムの目的は対数尤度を最大化するパラメータを点推定することです。ここで,潜在変数は離散型変数とします。連続型変数にしても,シグマをインテグラルに対応させるだけで同様の議論が可能です。

\begin{align}
\hat{\theta} &= \mathop{\rm arg~max}\limits_{\theta} \ln p(X | \theta) \\
&= \mathop{\rm arg~max}\limits_{\theta} \ln \sum_{Z} p(X, Z | \theta)
\end{align}

しかし,ここで困ったことがあります。右辺に「$\ln \sum$」という項が出てきてしまいました。一般に,$\ln \sum$の計算は困難とされているため,何かしらの策を講じなければなりません。そこで,イェンゼンの不等式を持ち出します。不等式を利用して下から対数尤度を評価することで,その下限値を最大化していくことで間接的に対数尤度を最大化していくアイディアがEMアルゴリズムです。

EMアルゴリズムの基本アイディア

イェンゼンの不等式は,上に凸な関数$f$に対して定義される不等式です。「2点を結ぶ内分点」よりも「2点を結んだ内分点の関数を通した値」の方が大きくなるという主張を一般化したものが,イェンゼンの不等式です。

イェンゼンの不等式

この不等式を用いるため,先ほどの対数尤度の式に対して,足して$1$になる係数を準備します。後に変分ベイズとの対応を図るため,ここではその係数として$q(Z)$という確率分布を持ち出します。確率分布は確率変数に対する総和や積分が1になりますので,足して1になる係数として丁度良いのです。

\begin{align}
\ln \sum_{Z} p(X, Z | \theta) &= \ln \sum_{Z} q(Z)\cdot \frac{p(X, Z | \theta)}{q(Z)} \\
&\geq \sum_{Z} q(Z) \ln \frac{p(X, Z | \theta)}{q(Z)} \\
&\equiv \mathcal{L}[q, \theta]
\end{align}

この$q(Z)$の持ち出し方がポイントです。多くの説明では天下り的に$q(Z)$が降ってくると思うのですが,EMアルゴリズムの文脈における$q(Z)$はあくまでも「足して1になる何か」という意味合いで持ち出されることに注意してください。

さて,下限$\mathcal{L}[q, \theta]$を最大化する$q$と$\theta$を見つければ良いわけですが,その前に対数尤度と下限のギャップについて少し考察しておきましょう。対数尤度を下限で下からおさえるとは言っても,それらの差を把握していないと,どのように対数尤度が最大化されるのかが分かりにくいからです。

実際に引き算を行ってみます。$q(Z)$が足して1になることを利用して$\ln p(X | \theta)$の項に$q(Z)$を無理やり付け加えることがポイントです。

\begin{align}
\ln p(X | \theta) – \mathcal{L}[q, \theta] &= \sum_{Z}q(Z)\cdot p(X|\theta) – \sum_{Z} q(Z) \ln \frac{p(X, Z | \theta)}{q(Z)} \\
&= \sum_{Z} q(Z) \left\{ \ln p(X|\theta) – \ln p(X, Z|\theta) + \ln q(Z) \right\} \label{eq1}
\end{align}

ここで,同時条件付き確率に関する以下の分解式を利用します。

\begin{align}
p(X, Z|\theta) &= p(Z|X, \theta)p(X|\theta)
\end{align}

すると,先ほどの式($\ref{eq1}$)は以下のように表されます。

\begin{align}
\ln p(X | \theta) – \mathcal{L}[q, \theta]
&= – \sum_{Z}q(Z) \ln \frac{p(Z|X, \theta)}{q(Z)} \\
&= KL[q(Z)|p(Z|X, \theta)] \label{KL}
\end{align}

つまり,対数尤度とその下限の差は$p$の事後分布と係数で持ち出した分布$q(Z)$のKLダイバージェンスになっているということです。この事実が,EMアルゴリズムでは非常に肝要になります。

\begin{align}
\ln p(X|\theta) &= \mathcal{L}[q(Z), \theta] + KL[q(Z) | p(Z | X, \theta)] \label{分解}
\end{align}

EMアルゴリズムにおける分解

多くの場合,$q(Z)$を$q$,$p(Z|X, \theta)$を$p$や$p(Z|X)$などと省略することがあります。本記事もそれに倣います。

さて,ここからは実際に下限を最大化することで,対数尤度をどのように最大化されるのかをみていきます。まず最初に,$\theta$を適当なパラメータ$\theta^{\mathrm{old}}$で初期化します。EMアルゴリズムで対数尤度を最大化するアルゴリズムは,EステップとMステップに分けられます。Eステップでは,KLダイバージェンスを最小化する$q$を選びます。これは,先ほど示した式($\ref{KL}$)に従えば,

\begin{align}
q(Z) &= p(Z|X, \theta^{\mathrm{old}})
\end{align}

となるように$q(Z)$を選べば良いことが分かります。ここで重要な考察が得られます。EMアルゴリズムでは,$p(Z|X, \theta^{\mathrm{old}})$が計算できるという前提が必要になるということです。このような前提のもと,Eステップでは潜在変数に関する事後分布を計算しています。

zuka

変分ベイズでは$p(Z|X, \theta^{\mathrm{old}})$が計算できないという前提に立つよ。

続くMステップでは,分布$q(Z)$は固定して対数尤度$\ln p(X|\theta)$を$\theta$に関して最大化します。言い換えれば,$\ln p(X|\theta)$を$\theta$を最大にする$\theta^{\mathrm{new}}$ を点推定します。単純には,$q(Z)=p(Z|X, \theta^{\mathrm{old}})$を代入した目的関数に対して,偏微分を用いて最大化問題を解けばOKです。

「$q(Z)=p(Z|X, \theta^{\mathrm{old}})$を代入した目的関数」のことを$Q$関数と呼びます。もし,設定した確率モデルに制約条件があれば,その条件を考慮するためにラグランジュの未定乗数法を利用します。

このとき,下界も$\mathcal{L}[q, \theta^{\mathrm{new}}]$にアップデートされますので,対数尤度と同時に増加します。ちなみに,下界の増加量は対数尤度の増加量よりも小さいです。なぜなら,$q(Z)$を固定した状況で$\theta$をアップデートして$p$の形が変わることにより,$KL[q|p]$が出現するからです。

以下がEMアルゴリズムの簡略化した図解です。

EMアルゴリズムの図解。上限は増加します。

変分ベイズ

変分ベイズは,事後分布を別の新しい分布で近似してしまおうという大胆かつ汎用性の高い手法です。

\begin{align}
p(Z | X) &\sim q(Z)
\end{align}

変分の目的は,事後分布を求めることでした。ここは少し天下り的にはなってしまうのですが,先ほどEMアルゴリズムで導出した分解式($\ref{分解}$)に注目します。KLダイバージェンスの左辺を周辺尤度に置き換えてみます。すると,都合が良いことに「近似分布$q(Z)$と真の事後分布$p(Z|X)$のKL」の項を含む分解式が得られます。

\begin{align}
\ln p(X) &= \mathcal{L}[q(Z)] + KL[q(Z) | p(Z | X)]
\end{align}

このとき,パラメータ$\theta$は$Z$に含めてしまうのがポイントです。EMでは明示的に潜在変数$Z$から確率分布$p$を定めるパラメータ$\theta$を分離しましたが,変分ベイズでは$Z$に確率変数として内包させてしまいます。ただし,変分ベイズにおける$Z$は文脈によってモデルパラメータ$\theta$を確率変数として含む場合と含まない場合があるので注意が必要です。しかし,どちらの場合においても,変分ベイズではパラメータ$\theta$を確率変数とみなすことには変わりありません。

変分ベイズにおける分解式

この分解式において大切な事実は,左辺が一定値をとるということです。左辺は「周辺」対数尤度です。様々なパラメータと潜在変数を表す$Z$を積分消去して得られる値であり,観測データ$X$にのみ依存します。この事実は変分ベイズ法の解説でよく誤解されている点ですので,おさえておくと良いと思います。

この分解式を用いて「事後分布$p(Z | X)$をよく近似する$q(Z)$を探すのは,対数周辺尤度の下限$\mathcal{L}[q(Z)]$を最大化することに相当する」という言い換えをします。KLの項が「事後分布$p(Z | X)$の近似としての$q(Z)$の近さ」を表しているため,左辺の対数周辺尤度が一定の値を取ることを考えると,KLの最小化は下限の最大化に相当するからです。

すると,下限$\mathcal{L}[q(Z)]$についてもう少し式変形を施したいお気持ちになります。実際に,下限は以下のように「対数尤度の期待値-事前分布と近似分布のKL」のように分解できます。

\begin{align}
\mathcal{L}[q(Z)] &= \int q(Z) \ln p(X | Z) dZ – KL[q(Z) | p(Z)]\label{さらに分解}
\end{align}

この計算は比較的簡単ですが,本記事では割愛します。

この式の見方は,以下のとおりです。

\begin{align}
\text{下限} &= \text{対数尤度の期待値} + \text{事前分布と近似分布の負のキョリ} \\
&= \text{対数尤度の期待値} + \text{正則化項}
\end{align}

変分ベイズでは,この下限を最大化していきます。

よく勘違いされやすいのは,変分ベイズの目的関数が対数尤度だということです。対数尤度の最大化を目的とするのはEMアルゴリズムであり,すなわちそれは最尤法です。上の式の見方をすれば,変分ベイズが対数尤度に加えて正則化項(近似分布と事前分布のキョリ)を考慮していることが分かります。いわば点推定ではなく,少しゆらぎをもたせたベイズ推論を行なっている訳です。これこそ変分「ベイズ」と呼ばれている所以だと私は捉えています。つまり,変分ベイズは最尤法のベイズ拡張だと捉えることができるのです。

変分ベイズがEMアルゴリズムと異なるのは,近似分布が真の事後分布と厳密に等しくなることはないと仮定することです。言い換えれば,真の事後分布は計算できないという仮定を置くことに相当します(EMアルゴリズムでは近似分布が真の事後分布と厳密に等しくなりましたね)。

しかし,近似分布に何も制限がなければ「KLを最小化する近似分布」に関する解が見つからないという状況になってしまいます。そこで,最もベーシックな変分ベイズでは,近似分布に平均近似場という条件を仮定します。これは,近似分布を構成する要素が独立に別々の分布に従っているという比較的強い条件のことを指します。

\begin{align}
q(Z) &= \prod_{m=1}^M q_m(Z)
\end{align}

ただし,必ずしも全ての要素が独立だという仮定ではないことに注意してください。あくまでも,どのような要素に分解するかの「グループ分け」が平均近似場の仮定だという認識でOKです。

変分ベイズにおいて平均近似場を仮定した上でKLを最小化する近似分布の解を求めると,以下のような形になります。

\begin{align}
\ln q_{i}^{*}\left(Z_i \right) &= \mathrm{E}_{j \neq i}\left[\ln p(X, Z)\right] + \mathrm{const} \label{VB}
\end{align}

zuka

この式を導出する過程は一見難しそうだけど,見掛け倒しだよ。一度は手を動かして計算してみるといいかも。

計算過程は本記事では割愛します。

この式は「自分以外のパラメータで仮定した確率モデルの期待値をとる」という操作を表しています。ここで,仮定した確率モデルというのは$p(X, Z)$のことを指します。冒頭にもお伝えした通り,我々の目標は得られたデータ$X$の背後に潜む事後分布$p(X|Z)$の形を求めることですが,一般的なアプローチでは,事後分布を求めるために確率変数同士の依存関係を同時分布$p(X, Z)$としてこちら側で定めてしまうのでした。ですので,式($\ref{VB}$)の右辺を計算することができます。

変分ベイズは,式($\ref{VB}$)を計算するだけです。以下では,$Z$を構成する確率変数を$Z_0,\ldots,Z_k$と表すことにします。$Z_0,\ldots,Z_k$の中に,EMアルゴリズムにおける$\theta$が確率変数として含まれていることに注意してください。

以下では,潜在変数とそれ以外を明示的に区別するため,$Z_0$を潜在変数,それ以外の$Z_1,\ldots,Z_k$をパラメータと設定することにします。

式(\ref{VB})より,ある$Z_k$に対する更新を行うときは,$Z_k$以外の現在の値を利用する必要があります。そのため,変分ベイズではEMアルゴリズムのような交互更新を行う必要があります。理論上は,$k$個の$Z$に対して交互更新を行うために$k$ステップ必要になります。

EMアルゴリズムと変分ベイズ

EMアルゴリズムと変分ベイズを比較する文脈では,変分Eステップと変分Mステップという用語が登場します。変分ベイズにおいては,Mステップは存在しないというのが私の考えです。なぜなら,EMにおけるMステップは対数尤度を最大化するパラメータを点推定するステップでした。一方,変分ベイズではパラメータを点推定するフェーズは存在しません。

zuka

変分ベイズはEMのベイズ拡張と捉えられたね。

ここでは,変分ベイズとEMアルゴリズムを対応づけたいと思います。EMアルゴリズムにおいて$k$種類の$n$次元パラメータがあるとします。すると,EMアルゴリズムは$k$種類のパラメータを固定して潜在変数$Z$に関する最適化を行うEステップと,潜在変数$Z$を固定して$k$種類のパラメータを点推定するMステップから構成されます。このような立場に立つと,EMアルゴリズムはEM…Mアルゴリズムと言うことができます。

同じ立場に立てば,変分ベイズは$k+1$種類の$n$次元確率変数$Z$がある状況では「EE…Eアルゴリズム」です。Eは$k+1$個連続しています。EMアルゴリズムにおけるMステップが全てEステップに置き換えられています。これは,変分ベイズが式(\ref{分解})を計算するだけだからです。言ってしまえば自分以外の期待値を取る操作を収束するまで繰り返すのが変分ベイズです。

特に「EM」アルゴリズムと比較する場合は,潜在変数$Z$とそれ以外のパラメータ$\theta$を別々に考えて,潜在変数以外の確率変数に関する式(\ref{VB})を計算して$Z$に関するKLを最小化する$E_Z$ステップと,$\theta$以外の確率変数に関する式(\ref{VB})を計算して$\theta$に関するKLを最小化する$E_{\theta}$ステップに無理矢理2分割します。

この$E_Z$ステップが巷では変分Eステップと呼ばれており,$E_{\theta}$ステップが変分Mステップと呼ばれているようです。しかし,私はこの呼び方が変分ベイズに対して誤解を生んでいる気がしてなりません。EMアルゴリズムとは違って,変分Mステップでは上限を最大化している訳ではないからです。あくまでも,両手法のMステップにおいては,潜在変数以外の確率変数(EMアルゴリズムで言えばパラメータという値)を最適化しているという対応関係しかありません。

変分ベイズの図解。上限は増加しません。

上の図においては,先ほど設定したように$Z_0$は潜在変数を表しています。$Z_0$以外のパラメータは先ほど説明した平均近似場の仮定をおくことで分離されているものとしています。変分Eステップでは,潜在変数$Z_0$に関して最適なパラメータ(負担率と呼ぶ)を求めておきます。

zuka

負担率という言葉だけが一人歩きしないようにね。負担率の本質はEステップで算出される値であり,Mステップのパラメータ更新で利用される値であるということだよ。

この時点では,実際に$Z_0$にとって最適なパラメータを探しただけであって,実際に更新はしていません。$Z_0$は他のパラメータとは異なり潜在変数です。パラメータの更新を行うのは変分Mステップであり,$Z_0$以外の因子についての最適化を行うことで変分下限を最大化します。このとき,変分Eステップで求めておいた負担率を利用することになるため,EMと同様の交互更新になります。

しかし,本質的には変分ベイズでは潜在変数もパラメータも確率変数とみなしていますので,潜在変数とパラメータの立場は対等なはずです。変部ベイズにおいて「潜在変数とそれ以外」を区別する必要性が,私はあまりないように感じています。というより,両者を同一視した概念が変分ベイズだと思っています。

変分ベイズの上限は対数周辺尤度であり,潜在変数とパラメータを含んだ$Z_0,\ldots,Z_k$は積分消去されています。ですので,変分Mステップを経ても上限は増加しません。

VAEのアイディア

変分ベイズの着眼点は,事後分布の計算が難しいという問題でした。Kingmaらも同様に,一般的な確率モデルの問題設定に対して,以下のような課題を課題を挙げています。

  • Intractability:事後分布$p(Z|X)$の計算が大変
  • A large dataset:データセットが巨大なため計算量の多いサンプリングは使いにくい

一般的に事後分布は計算が難しいことの一般的な説明をしておきます。以下のようにベイズの定理を用いて事後分布を表現したとしても,分母の周辺尤度の計算に積分が含まれてしまい,計算が難しくなってしまうからです(Intractability)。

\begin{align}
p(Z | X) &= \frac{p(X | Z)p(Z)}{p(X)} \\
&= \frac{p(X | Z)p(Z)}{\int p(X, Z)dZ}
\end{align}

他にも,分子の尤度関数や事前分布に関しても,共役事前分布を設定しない一般的な状況を考えると,計算することが困難な場合がほとんどです。

このような背景から,計算が難しい事後分布を近似しようという手法が歴史上数多く提案されています。これらの手法は大きく「サンプリング」「変分ベイズ」に分けられます。一般に,サンプリングによる近似は計算量が多くなってしまいます(A large dataset)。一方で,変分ベイズは大規模な計算にも対応できるという利点があります。

そこで,VAEでは「変分ベイズ的に」事後分布を近似できるような近似分布$q(Z)$を持ち出すことで,事後分布を近似しようとします。ここで,VAEでは,変分ベイズとは異なって平均近似場を仮定せずに,近似分布を事後分布$q(Z|X)$としてDNNで学習させます。そうすることで,複雑な事後分布も近似分布として表現できるようになります。

数式で説明すれば,変分ベイズにおいて$q(Z)=q(Z|X)$と置き換えて導出される以下の分解式における下界を最大化しようとします。

\begin{align}
\ln p(X) &= \mathcal{L}[q(Z|X)] + KL[q(Z|X) | p(Z | X)]
\end{align}

VAEでは,DNNで近似事後分布$q(Z|X)$を学習するため,近似事後分布はDNNのパラメータ$\phi$に依存することになります。DNN界隈では,分布$q$がパラメータ$\phi$に依存することを$q_{\phi}$と書くことが多いため,本記事でもそれに倣うことにします。つまり,VAEにおける近似事後分布は$q_{\phi}(Z|X)$ということになります。

ここで,近似事後分布$q_{\phi}(Z|X)$と尤度関数$p(X|Z)$の関係性を図示してみましょう。

近似事後分布と尤度関数の関係性

勘の良い方であれば気づくと思うのですが,図がオートエンコーダ型になっているのです。$X$を入力として受け取り,$X$を出力として吐き出しています。ですので,入力から出力までのフローが微分可能な形で繋がっていれば,教師なし学習が可能になります。そのため,VAEでは$p$もDNNで学習可能な分布$p_{\theta}$であると設定します。ここがVAEにおけるEMアルゴリズム的な側面の1つです。尤度関数$p_{\theta}(X|Z)$のパラメータ$\theta$を点推定するという側面が共通しています。

尤度関数もDNNで学習されるパラメータ$\theta$によって定まるものとする

オートエンコーダの慣習に従って,以下ではVAEにおける近似事後分布をエンコーダ,尤度関数をデコーダと表記することにします。

デコーダとエンコーダをDNNによって学習可能な分布として設定したからと言って,全ての処理が微分可能になったわけではありません。ここで,少し考えてみたいことがあります。「分布をDNNで学習する」とはどのように実現すれば良いのでしょうか。

答えは,エンコーダがエンコーダのパラメータを出力すれば良いのです。例えば,エンコーダにガウス分布が設定されていれば,$\mu_{\phi}$と$\sigma_{\phi}$が出力されることになります。

エンコーダの出力は近似事後分布のパラメータ

デコーダも同様です。例えば,デコーダにベルヌーイ分布を仮定すれば,デコーダはベルヌーイ分布の形を決定するパラメータ$\lambda_{\theta}$を出力すれば良いのです。

デコーダの出力は尤度関数のパラメータ

しかし,デコーダのの受け付ける入力は$Z$です。そこで,エンコーダの出力したパラメータに従う確率分布から,微分可能な形で潜在変数$Z$をサンプリングする必要が出てきます。一般には,サンプリングという処理は微分不可能です。

計算グラフが繋がっていないと微分不可能で誤差逆伝播できない

この問題を解決するため,KingmaらはReparametrization trickと呼ばれる決定的な式変形を提案しました。具体的には,潜在変数$Z$の事前分布に標準正規分布を仮定してあげると,以下のような決定的な式を用いて潜在変数$Z$を擬似的にサンプリングすることが可能になります。

\begin{align}
Z &=\sigma_{\phi} \odot \varepsilon + \mu_{\phi}
\end{align}

$\varepsilon \sim \mathcal{N}(0,1)$とすれば,正規分布の再生性から$Z$の平均は$\sigma_{\phi} \cdot 0 +\mu_{\phi}=\mu_{\phi}$であり,分散は$1 \cdot \sigma^2_{\phi}=\sigma^2_{\phi}$となるので,$Z \sim \mathcal{N}(\mu_{\phi}, \sigma^2_{\phi})$になります。

この決定的な処理を用いることで,エンコーダ(近似事後分布)とデコーダ(尤度関数)の処理が微分可能な形で繋がり,誤差逆伝播が可能になります。

決定的な処理で$Z$が生成されるため誤差逆伝播が可能になる

DNNで学習を行うということは,デコーダを定める$\phi$とエンコーダを定める$\theta$は点推定されるということを意味しています。また,$\phi$,$\theta$がイテレーションごとに更新されれば,上限$\ln_{\theta}(X)$も変化します。ここが,変分ベイズがEMアルゴリズム的な側面を含むという主張の根拠です。

EM vs VB vs VAE

さて,最初の表に戻ってみます。

本記事で目指す理解

それぞれの行について確認していきましょう。EMアルゴリズムは最尤推定を行うための手法であり,目的関数は対数尤度$\ln p(X|\theta)$でした。変数は潜在変数$Z$とパラメータ$\theta$を明示的に分離しました。上限は対数尤度$\ln p(X|\theta)$であり,更新する$\theta$に依存するため可変値でした。EステップではKLを最小にする$q(Z)$(足して1になる値)を求めておき,Mステップではラグランジュの未定乗数法などを用いて$\theta$を点推定しました。

VBの目的は真の事後分布$p(Z|X)$をよく近似する$q(Z)$を求めることですが,この目的を$KL[q(Z)|p(Z|X)]$の最小化と言い換えれば,目的関数は下限$\mathcal{L}[q(Z)]$に設定することができました。変数は$Z$のみであり,パラメータも確率変数として扱うために明示的に潜在変数とパラメータの区別はしないのでした。上限は周辺対数尤度$\ln p(X)$であり,更新する$\theta$に依存しないため一定値でした。VBでは本質的にはEステップしか存在しないと捉えられますが,あえて潜在変数とパラメータを区別すれば,変分Eステップでは$q(Z)$を求め,変分Mステップでは$q(Z\text{以外})$を求める操作を行うのでした。

VAEのアイディアは変分ベイズから出発していました。変分ベイズの目的関数は下限$\mathcal{L}[q(Z)]$でした。しかし,VAEでは近似事後分布を$q(Z)$ではなく$q(Z|X)$として考えるため,目的関数は$\mathcal{L}[q(Z|X)]$となりました。潜在変数$Z$とそれ以外のパラメータ$\theta$,$\phi$は明示的に区別します。上限は$\ln_{\theta}(X)$であり,更新する$\theta$に依存するため可変値でした。$\theta$,$\phi$はReparametrization trickによって誤差逆伝播に基づく最適化が行われるため,点推定されるのでした。

zuka

だいぶVAEの本質に迫れた気がするよ。

シェアはこちらからお願いします!
URLをコピーする
URLをコピーしました!

コメント

コメントする

目次
閉じる