変分オートエンコーダー

データサイエンス > 機械学習 > 教師なし学習 > 生成モデル > 変分オートエンコーダー 変分オートエンコーダー（英: Variational Auto-Encoder; VAE）はオートエンコーディング変分ベイズアルゴリズムに基づいて学習される確率項つきオートエンコーダ型ニューラルネットワークである。 ニューラルネットワークを用いた生成モデルの一種であり、深層潜在変数モデルの一種でもある。 オートエンコーディング変分ベイズアルゴリズム（英: Auto-Encoding Variational Bayes algorithm; AEVB）は勾配推定値を用いた有向潜在変数モデルと推論モデルの同時最適化アルゴリズムである。 AEVBでは有向潜在変数モデル p θ ( x , z ) = p θ ( x | z ) p θ ( z ) {\displaystyle p_{\theta }(\mathbf {x} ,\mathbf {z} )=p_{\theta }(\mathbf {x} |\mathbf {z} )p_{\theta }(\mathbf {z} )} を推論モデル q ϕ ( z | x ) {\displaystyle q_{\phi }(\mathbf {z} |\mathbf {x} )} の導入による変分下界 L θ , ϕ ( x ) {\displaystyle {\mathcal {L}}_{\theta ,\phi }(\mathbf {x} )} 最大化により最適化する。一般に変分下界の勾配 ∇ θ , ϕ L θ , ϕ ( x ) {\displaystyle \nabla _{\theta ,\phi }{\mathcal {L}}_{\theta ,\phi }(\mathbf {x} )} は intractable であるが、AEVBではこれをモンテカルロ法 ( z ∼ q ϕ ( z | x ) {\displaystyle z\sim q_{\phi }(\mathbf {z} |\mathbf {x} )} ) を用いた勾配の不偏推定量 ∇ ^ θ , ϕ L θ , ϕ ( x ) {\displaystyle {\hat {\nabla }}_{\theta ,\phi }{\mathcal {L}}_{\theta ,\phi }(\mathbf {x} )} で置き換え、確率的勾配降下法によりパラメータを最適化する。このとき q ϕ ( z | x ) {\displaystyle q_{\phi }(\mathbf {z} |\mathbf {x} )} の勾配推定・伝播に関する問題を reparameterization trick で解決する。 標本 X = { x ( 1 ) , … , x ( N ) } {\displaystyle X=\{\mathbf {x} ^{(1)},\ldots ,\mathbf {x} ^{(N)}\}} が各i=1,...,Nに対し、以下で生成されると仮定する#原論文： まず潜在変数z(i)が何らかの確率密度関数 p θ ( z ) {\displaystyle p_{\theta }(\mathbf {z} )} に従って選ばれ、 x(i)がz(i)に依存した何らかの確率密度関数 p θ ( x | z ) {\displaystyle p_{\theta }(\mathbf {x} |\mathbf {z} )} に従って選ばれる。 ここでθは何らかのパラメーターであり、θの真の値θ*は未知である。また p θ ( z ) {\displaystyle p_{\theta }(\mathbf {z} )} 、 p θ ( x | z ) {\displaystyle p_{\theta }(\mathbf {x} |\mathbf {z} )} に従って値を選ぶのは計算量的に容易であるものとする。 一方、潜在変数の事後分布 p θ ( z | x ) {\displaystyle p_{\theta }(\mathbf {z} |\mathbf {x} )} は容易には計算できず、（容易に計算できる）確率密度関数 q ϕ ( z | x ) {\displaystyle q_{\phi }(\mathbf {z} |\mathbf {x} )} により、近似する事を考える（近似事後分布）#原論文。ここで ϕ {\displaystyle \phi } はパラメーターである。 近似事後分布を用いると周辺対数尤度 log ⁡ p θ ( x ) {\displaystyle \log p_{\theta }(\mathbf {x} )} は次のように変形できる： log ⁡ p θ ( x ) = E q ϕ ( z | x ) [ log ⁡ p θ ( x , z ) q ϕ ( z | x ) ] + E q ϕ ( z | x ) [ log ⁡ q ϕ ( z | x ) p θ ( z | x ) ] {\displaystyle \log p_{\theta }(\mathbf {x} )=\mathbb {E} _{q_{\phi }(\mathbf {z} |\mathbf {x} )}\left[\log {\frac {p_{\theta }(\mathbf {x} ,\mathbf {z} )}{q_{\phi }(\mathbf {z} |\mathbf {x} )}}\right]+\mathbb {E} _{q_{\phi }(\mathbf {z} |\mathbf {x} )}\left[\log {\frac {q_{\phi }(\mathbf {z} |\mathbf {x} )}{p_{\theta }(\mathbf {z} |\mathbf {x} )}}\right]} 右辺の第1項は変分下界 L θ , ϕ ( x ) {\displaystyle {\mathcal {L}}_{\theta ,\phi }(\mathbf {x} )} あるいはELBOと呼ばれ、第2項は事後分布-近似事後分布間のカルバック・ライブラー情報量に相当する。すなわち次の式が成立している： L θ , ϕ ( x ) = log ⁡ p θ ( x ) − K L ( q ϕ ( z | x ) ‖ p θ ( z | x ) ) {\displaystyle {\mathcal {L}}_{\theta ,\phi }(\mathbf {x} )=\log p_{\theta }(\mathbf {x} )-\mathrm {KL} (q_{\phi }(\mathbf {z} |\mathbf {x} )\|p_{\theta }(\mathbf {z} |\mathbf {x} ))} ここで K L ≥ 0 {\displaystyle \mathrm {KL} \geq 0} （ギブスの不等式）より、変分下界最大化は次の2つの意味を持つ： 近似事後分布の近似精度最大化（ K L ≈ 0 {\displaystyle \mathrm {KL} \approx 0} ） 生成モデルの尤度最大化（ argmax θ log ⁡ p θ ( x ) {\displaystyle {\underset {\theta }{\operatorname {argmax} }}\log p_{\theta }(\mathbf {x} )} ） ゆえに変分下界最大化は最尤推定の代替として利用できる。 標本 X {\displaystyle X} に対する変分下界を最大化する ( θ , ϕ ) {\displaystyle (\theta ,\phi )} を目標とする。すなわち次の式で表される： argmax θ , ϕ   E X [ L θ , ϕ ( X ) ] = argmax θ , ϕ ∑ x ∈ X L θ , ϕ ( x ) {\displaystyle {\underset {\theta ,\phi }{\operatorname {argmax} }}\ \mathbb {E} _{X}[{\mathcal {L}}_{\theta ,\phi }(X)]={\underset {\theta ,\phi }{\operatorname {argmax} }}\sum _{x\in X}{\mathcal {L}}_{\theta ,\phi }(\mathbf {x} )} 変分下界は一般には計算が簡単ではない。そこで q ϕ ( z | x ) {\displaystyle q_{\phi }(\mathbf {z} |\mathbf {x} )} が適切な仮定を満たすという条件下で変分下界の推定量を導入する#原論文。標本 X {\displaystyle X} に対し確率勾配法を用いてSGVB推定量を極大化しモデルの最適化をおこなう#原論文。 本章で想定しているセッティングにおいて、既知の手法の有用性は限定的である#原論文： 最尤法は本章のセッティングでは p θ ( x ) = ∫ p θ ( x | z ) p θ ( z ) d z {\displaystyle p_{\theta }(\mathbf {x} )=\int p_{\theta }(\mathbf {x} |\mathbf {z} )p_{\theta }(\mathbf {z} )\mathrm {d} \mathbf {z} } が容易に計算できるケースでないと使えない。 EMアルゴリズムは p θ ( z | x ) {\displaystyle p_{\theta }(\mathbf {z} |\mathbf {x} )} の計算が容易であるケースでないと使えない。 変分ベイズ法は p θ ( z | x ) {\displaystyle p_{\theta }(\mathbf {z} |\mathbf {x} )} が平均場近似できる場合にしか使えない。 モンテカルロEMアルゴリズムは実行速度が遅い為大きなデータ集合に対しては使えない。 例えば p θ ( x | z ) {\displaystyle p_{\theta }(\mathbf {x} |\mathbf {z} )} がニューラルネットワークにより定義されているケースでは、上述した既知の手法は使えないが、本手法であれば適用できる。後述する変分オートエンコーダーはまさにこのケースであり、 p θ ( x | z ) {\displaystyle p_{\theta }(\mathbf {x} |\mathbf {z} )} をニューラルネットワークにより定義している。 この最適化により以下の事ができるようになる： 見つけたθを使う事で p θ ( z ) {\displaystyle p_{\theta }(\mathbf {z} )} 、 p θ ( x | z ) {\displaystyle p_{\theta }(\mathbf {x} |\mathbf {z} )} に従う確率変数z、xを生成する生成モデルを作成 q ϕ ( z | x ) {\displaystyle q_{\phi }(\mathbf {z} |\mathbf {x} )} により p θ ( z | x ) {\displaystyle p_{\theta }(\mathbf {z} |\mathbf {x} )} を推定 変分オートエンコーダーとは、オートエンコーディング変分ベイズアルゴリズムを使って学習するニューラルネットワーク（原論文では1層もしくは2層のパーセプトロン#原論文）ベースの生成モデルである。 変分オートエンコーダーでは、潜在変数zが従う確率密度関数 p θ ( z ) {\displaystyle p_{\theta }(\mathbf {z} )} が標準正規分布 z ∼ N ( 0 , I ) {\displaystyle \mathbf {z} \sim {\mathcal {N}}({\boldsymbol {0}},I)} ...(D1) に従っており#原論文、xの従う条件つき確率密度関数 p θ ( x | z ) {\displaystyle p_{\theta }(\mathbf {x} |\mathbf {z} )} が x ∼ N ( μ D , σ D 2 I ) {\displaystyle \mathbf {x} \sim {\mathcal {N}}({\boldsymbol {\mu }}_{D},{\boldsymbol {\sigma }}_{D}^{2}I)} 、ここで ( μ D , σ D 2 ) = D θ ( z ) {\displaystyle ({\boldsymbol {\mu }}_{D},{\boldsymbol {\sigma }}_{D}^{2})=D_{\theta }(\mathbf {z} )} ...(D2) という形であるものとする#原論文。上で D θ ( ⋅ ) {\displaystyle D_{\theta }(\cdot )} はパラメーターθを持つニューラルネットワークである。 さらに事後分布 p θ ( z | x ) {\displaystyle p_{\theta }(\mathbf {z} |\mathbf {x} )} を近似する条件つき確率密度関数 q ϕ ( z | x ) {\displaystyle q_{\phi }(\mathbf {z} |\mathbf {x} )} として z ∼ N ( μ E , σ E 2 I ) {\displaystyle \mathbf {z} \sim {\mathcal {N}}({\boldsymbol {\mu }}_{E},{\boldsymbol {\sigma }}_{E}^{2}I)} 、ここで ( μ E , σ E 2 ) = E ϕ ( x ) {\displaystyle ({\boldsymbol {\mu }}_{E},{\boldsymbol {\sigma }}_{E}^{2})=E_{\phi }(\mathbf {x} )} 　　…(E1) という形のものを考える#原論文。上で E ϕ ( ⋅ ) {\displaystyle E_{\phi }(\cdot )} はパラメーター ϕ {\displaystyle \phi } を持つニューラルネットワークである。 zの次元はxの次元より短く取る。これは E ϕ ( ⋅ ) {\displaystyle E_{\phi }(\cdot )} を用いる事で、データxをもっと短いデータzに「圧縮」し、 D θ ( ⋅ ) {\displaystyle D_{\theta }(\cdot )} を用いる事でzからxを「復元」できる事を意味する（ただし実際には E ϕ ( ⋅ ) {\displaystyle E_{\phi }(\cdot )} や D θ ( ⋅ ) {\displaystyle D_{\theta }(\cdot )} の後に正規乱数を取る操作があるので、「圧縮」したデータを「復元」しても元に戻らない）。このため 符号理論との類推から、 E ϕ ( ⋅ ) {\displaystyle E_{\phi }(\cdot )} をエンコーダー、 D θ ( ⋅ ) {\displaystyle D_{\theta }(\cdot )} をデコーダーと呼ぶ。 変分オートエンコーダーの学習アルゴリズムは与えられたデータ集合 X = { x ( 1 ) , … , x ( N ) } {\displaystyle X=\{\mathbf {x} ^{(1)},\ldots ,\mathbf {x} ^{(N)}\}} に対し、以上のような状況下でオートエンコーディング変分ベイズアルゴリズムを用いる事で、２つのニューラルネットワーク D θ ( ⋅ ) {\displaystyle D_{\theta }(\cdot )} 、 E ϕ ( ⋅ ) {\displaystyle E_{\phi }(\cdot )} のパラメーターθ、 ϕ {\displaystyle \phi } を決定するものである。 一方、変分オートエンコーダーの生成アルゴリズムでは、まずは(D1)式のように標準正規分布に従いzを生成し、生成したzと学習済みのθを使って(D2)式のようにxを生成する。 変分下界は一般には計算が簡単ではない。ゆえに変分下界の推定量であるSGVB推定量（Stochastic Gradient Variational Bayes estimator、確率的勾配変分ベイズ推定量）を導入する#原論文。 SGVB推定量を導入する為、何らかの（容易に計算可能な）可微分関数と（容易にサンプルを抽出できる）確率分布 E {\displaystyle {\mathcal {E}}} を用いて z = g ϕ ( x , ε ) {\displaystyle \mathbf {z} =g_{\phi }(\mathbf {x} ,{\boldsymbol {\varepsilon }})} 、ここで ε ∼ E {\displaystyle {\boldsymbol {\varepsilon }}\sim {\mathcal {E}}} 　　　...(P1) とする事で確率密度関数 q ϕ ( z | x ) {\displaystyle q_{\phi }(\mathbf {z} |\mathbf {x} )} に従ったサンプルを抽出できる事を仮定する#原論文。 例えばVAEの場合は(E1)より E = N ( 0 , I ) {\displaystyle {\mathcal {E}}={\mathcal {N}}(\mathbf {0} ,I)} 、 g ϕ ( x , ε ) = μ E + σ E 2 ⊙ ε {\displaystyle g_{\phi }(\mathbf {x} ,{\boldsymbol {\varepsilon }})={\boldsymbol {\mu }}_{E}+{\boldsymbol {\sigma }}_{E}^{2}\odot {\boldsymbol {\varepsilon }}} 　　　...(P2) としてこの仮定を満たしている。ここで「 ⊙ {\displaystyle \odot } 」は成分毎の積である。 後でSGVB推定量を定義する際に仮定(P1)を使う事で、本来は確率分布 q ϕ ( z | x ) {\displaystyle q_{\phi }(\mathbf {z} |\mathbf {x} )} で定義する部分を可微分で確定的な関数gに置き換える事でSGVB推定量の可微分性を保証する。これによりSGVB推定量を微分して勾配法により ( θ , ϕ ) {\displaystyle (\theta ,\phi )} の最適解を求める事ができるようになる。原論文ではこのように確率分布を可微分な確定的関数に置き換えるテクニックをreparameterization trickと呼んでいる#原論文。 簡単な計算により変分下界は L θ , ϕ ( x ) = E q ϕ ( z | x ) [ log ⁡ p θ ( x | z ) ) ] − K L ( q ϕ ( z | x ) ‖ p ( z ) ) {\displaystyle {\mathcal {L}}_{\theta ,\phi }(\mathbf {x} )=\mathbb {E} _{q_{\phi }(\mathbf {z} |\mathbf {x} )}[\log p_{\theta }(\mathbf {x} |\mathbf {z} ))]-\mathrm {KL} (q_{\phi }(\mathbf {z} |\mathbf {x} )\|p(\mathbf {z} ))} と書き換えられる事が示せる（ここで E [ ⋅ ] {\displaystyle \mathbb {E} [\cdot ]} は期待値である）ので、仮定(P1)を用いる事で変分下界を推定するSGVB推定量を L ~ ( θ , ϕ , x , ( ε ( ℓ ) ) ℓ = 1 , … , L ) ) := 1 L ∑ ℓ = 1 L log ⁡ p θ ( x | g ϕ ( x , ε ( ℓ ) ) ) − K L ( q ϕ ( z | x ) ‖ p ( z ) ) {\displaystyle {\tilde {\mathcal {L}}}(\theta ,\phi ,\mathbf {x} ,({\boldsymbol {\varepsilon }}^{(\ell )})_{\ell =1,\ldots ,L})):={1 \over L}\sum _{\ell =1}^{L}\log p_{\theta }(\mathbf {x} |g_{\phi }(\mathbf {x} ,{\boldsymbol {\varepsilon }}^{(\ell )}))-\mathrm {KL} (q_{\phi }(\mathbf {z} |\mathbf {x} )\|p(\mathbf {z} ))} 　　　...(L1) により定義する#原論文。ここで ε ( ℓ ) {\displaystyle {\boldsymbol {\varepsilon }}^{(\ell )}} （ ℓ = 1 , … , L {\displaystyle \ell =1,\ldots ,L} ）は E {\displaystyle {\mathcal {E}}} から独立に抽出した乱数であり、Lはハイパーパラメーターである。 SGVB推定量を計算するにはカルバック・ライブラー情報量 K L ( q ϕ ( z | x ) ‖ p ( z ) ) {\displaystyle \mathrm {KL} (q_{\phi }(\mathbf {z} |\mathbf {x} )\|p(\mathbf {z} ))} を計算できる必要がある。原論文ではこの値が計算できないときの為の推定量も提案しているが#原論文、本項では割愛する。 オートエンコーディング変分ベイズアルゴリズムは確率的勾配降下法によりSGVB推定量を極大化するθ、 ϕ {\displaystyle \phi } を求めるものである#原論文。以下でL、Mはハイパーパラメーターである。 標本 X {\displaystyle X} を入力として受け取る。 θ、 ϕ {\displaystyle \phi } を初期化する。 θ、 ϕ {\displaystyle \phi } が事前に定められた収束条件を満たすまで以下を繰り返す XのサイズMの部分集合X'をランダムに選ぶ 各 x ∈ X ′ {\displaystyle \mathbf {x} \in X'} に対し ε x ( 1 ) , … , ε x ( L ) {\displaystyle {\boldsymbol {\varepsilon }}_{\mathbf {x} }^{(1)},\ldots ,{\boldsymbol {\varepsilon }}_{\mathbf {x} }^{(L)}} を E {\displaystyle {\mathcal {E}}} に従って選ぶ。 ∑ x ∈ X ′ ∇ θ , ϕ L ~ ( θ , ϕ , x , ( ε x ( ℓ ) ) ℓ = 1 , … , L ) {\displaystyle \sum _{\mathbf {x} \in X'}\nabla _{\theta ,\phi }{\tilde {\mathcal {L}}}(\theta ,\phi ,\mathbf {x} ,({\boldsymbol {\varepsilon }}_{\mathbf {x} }^{(\ell )})_{\ell =1,\ldots ,L})} を使ってθ、 ϕ {\displaystyle \phi } を更新 θ、 ϕ {\displaystyle \phi } を出力 すでに述べたように、変分オートエンコーダーの学習アルゴリズムは、 p θ ( z ) {\displaystyle p_{\theta }(\mathbf {z} )} 、 p θ ( x | z ) {\displaystyle p_{\theta }(\mathbf {x} |\mathbf {z} )} 、 q ϕ ( x | z ) {\displaystyle q_{\phi }(\mathbf {x} |\mathbf {z} )} からのサンプリングが(D1)、(D2)、(E1)に従ってできるケースにおいてオートエンコーディング変分ベイズアルゴリズムを実行するというものである。 従って変分オートエンコーダーの学習アルゴリズムを書きくだす上で必要となる作業は、(D1)、(D2)、(E1)に従っているケースにおいてオートエンコーディング変分ベイズアルゴリズムにおけるSGVB推定量が具体的にどのような形になるのかを調べるだけである。 本節では変分オートエンコーダーのケースにおいてSGVB推定量 L ~ ( θ , ϕ , x , ( ε ( ℓ ) ) ℓ = 1 , … , L ) ) = 1 L ∑ ℓ = 1 L log ⁡ p θ ( x | g ϕ ( x , ε ( ℓ ) ) ) − K L ( q ϕ ( z | x ) ‖ p ( z ) ) {\displaystyle {\tilde {\mathcal {L}}}(\theta ,\phi ,\mathbf {x} ,({\boldsymbol {\varepsilon }}^{(\ell )})_{\ell =1,\ldots ,L}))={1 \over L}\sum _{\ell =1}^{L}\log p_{\theta }(\mathbf {x} |g_{\phi }(\mathbf {x} ,{\boldsymbol {\varepsilon }}^{(\ell )}))-\mathrm {KL} (q_{\phi }(\mathbf {z} |\mathbf {x} )\|p(\mathbf {z} ))} 　　　...(L1、再掲) の具体的な形を求める。 (P2)、(E1)、(D2)より、 ( μ E , σ E 2 ) = E ϕ ( x ) {\displaystyle ({\boldsymbol {\mu }}_{E},{\boldsymbol {\sigma }}_{E}^{2})=E_{\phi }(\mathbf {x} )} 、 ( μ D ( ℓ ) , ( σ D ( ℓ ) ) 2 ) = D θ ( μ E + σ E 2 ⊙ ε ( ℓ ) ) {\displaystyle ({\boldsymbol {\mu }}_{D}^{(\ell )},({\boldsymbol {\sigma }}_{D}^{(\ell )})^{2})=D_{\theta }({\boldsymbol {\mu }}_{E}+{\boldsymbol {\sigma }}_{E}^{2}\odot {\boldsymbol {\varepsilon }}^{(\ell )})} とすると、 p θ ( x | g ϕ ( x , ε ( ℓ ) ) ) {\displaystyle p_{\theta }(\mathbf {x} |g_{\phi }(\mathbf {x} ,{\boldsymbol {\varepsilon }}^{(\ell )}))} が正規分布 N ( μ D ( ℓ ) , ( σ D ( ℓ ) ) 2 I ) {\displaystyle {\mathcal {N}}({\boldsymbol {\mu }}_{D}^{(\ell )},({\boldsymbol {\sigma }}_{D}^{(\ell )})^{2}I)} の確率密度関数であることから、 log ⁡ p θ ( x | g ϕ ( x , ε ( ℓ ) ) ) = − K 2 log ⁡ 2 π − 1 2 ∑ k = 1 K ( ( x k − μ D , k ( ℓ ) ) 2 ( σ D , k ( ℓ ) ) 2 − log ⁡ σ D , k ( ℓ ) ) {\displaystyle \log p_{\theta }(\mathbf {x} |g_{\phi }(\mathbf {x} ,{\boldsymbol {\varepsilon }}^{(\ell )}))=-{\frac {K}{2}}\log 2\pi -{\frac {1}{2}}\sum _{k=1}^{K}\left({(x_{k}-\mu _{D,k}^{(\ell )})^{2} \over (\sigma _{D,k}^{(\ell )})^{2}}-\log \sigma _{D,k}^{(\ell )}\right)} 　　 である。ここでKはxのデータ長であり、xk、μ(l)D,k、σ(l)D,kはそれぞれx、μ(l)D、σ(l)Dの第k成分である。 一方、(L1)の第2項を具体的に計算すると以下のようになる#原論文： K L ( q ϕ ( x | z ) ‖ p ( z ) ) = 1 2 ∑ j = 1 J ( 1 − μ E , j 2 − σ E , j 2 + log ⁡ σ E , j 2 ) {\displaystyle \mathrm {KL} (q_{\phi }(\mathbf {x} |\mathbf {z} )\|p(\mathbf {z} ))={1 \over 2}\sum _{j=1}^{J}\left(1-\mu _{E,j}{}^{2}-\sigma _{E,j}{}^{2}+\log \sigma _{E,j}{}^{2}\right)} ここでJはzのデータ長であり、μE,j、σE,jはそれぞれμE、σEの第j成分である。 まとめると、 L ~ ( θ , ϕ , x , ( ε ( ℓ ) ) ℓ = 1 , … , L ) ) = − K 2 log ⁡ 2 π − 1 L ∑ ℓ = 1 L ∑ k = 1 K ( ( x k − μ D , k ( ℓ ) ) 2 ( σ D , k ( ℓ ) ) 2 − log ⁡ σ D , k ( ℓ ) ) − 1 2 ∑ j = 1 J ( 1 − μ E , j 2 − σ E , j 2 + log ⁡ σ E , j 2 ) {\displaystyle {\tilde {\mathcal {L}}}(\theta ,\phi ,\mathbf {x} ,({\boldsymbol {\varepsilon }}^{(\ell )})_{\ell =1,\ldots ,L}))=-{\frac {K}{2}}\log 2\pi -{1 \over L}\sum _{\ell =1}^{L}\sum _{k=1}^{K}\left({(x_{k}-\mu _{D,k}^{(\ell )})^{2} \over (\sigma _{D,k}^{(\ell )})^{2}}-\log \sigma _{D,k}^{(\ell )}\right)-{1 \over 2}\sum _{j=1}^{J}\left(1-\mu _{E,j}{}^{2}-\sigma _{E,j}{}^{2}+\log \sigma _{E,j}{}^{2}\right)} 　　　...(L2) ここで、 ( μ E , σ E 2 ) = ( ( μ E , j ) j = 1 , … , J , ( ( σ E , j ) j = 1 , … , J ) = E ϕ ( x ) {\displaystyle ({\boldsymbol {\mu }}_{E},{\boldsymbol {\sigma }}_{E}^{2})=((\mu _{E,j})_{j=1,\ldots ,J},((\sigma _{E,j})_{j=1,\ldots ,J})=E_{\phi }(\mathbf {x} )} ( μ D ( ℓ ) , ( σ D ( ℓ ) ) 2 ) = ( ( μ D , j ( ℓ ) ) j = 1 , … , K , ( ( σ D , j ( ℓ ) ) j = 1 , … , K ) = D θ ( μ E + σ E 2 ⊙ ε ( ℓ ) ) {\displaystyle ({\boldsymbol {\mu }}_{D}^{(\ell )},({\boldsymbol {\sigma }}_{D}^{(\ell )})^{2})=((\mu _{D,j}^{(\ell )})_{j=1,\ldots ,K},((\sigma _{D,j}^{(\ell )})_{j=1,\ldots ,K})=D_{\theta }({\boldsymbol {\mu }}_{E}+{\boldsymbol {\sigma }}_{E}^{2}\odot {\boldsymbol {\varepsilon }}^{(\ell )})} 以上の結果から、変分オートエンコーダーは以下のようになる： 学習： オートエンコーディング変分ベイズアルゴリズムを実行。ただし E = N ( 0 , I ) {\displaystyle {\mathcal {E}}={\mathcal {N}}(\mathbf {0} ,I)} とし、 L ~ {\displaystyle {\tilde {\mathcal {L}}}} は(L2)のものを使う。 生成： 学習済みの ϕ {\displaystyle \phi } を入力として受けとる N ( 0 , I ) {\displaystyle {\mathcal {N}}(\mathbf {0} ,I)} に従ってzを選ぶ ( μ D , σ D 2 ) = D ϕ ( z ) {\displaystyle ({\boldsymbol {\mu }}_{D},{\boldsymbol {\sigma }}_{D}^{2})=D_{\phi }(\mathbf {z} )} を計算する。 N ( μ D , σ D 2 I ) {\displaystyle {\mathcal {N}}({\boldsymbol {\mu }}_{D},{\boldsymbol {\sigma }}_{D}^{2}I)} に従ってxを選び、xを出力する。 原論文 Diederik P Kingma; Max Welling (2014年5月1日). “Auto-Encoding Variational Bayes” (PDF). arXiv. 2020年2月1日閲覧。 関連論文 Diederik P. Kingma; Danilo J. Rezende, Shakir Mohamed, Max Welling (2014年10月31日). “Semi-Supervised Learning with Deep Generative Models” (PDF). arXiv. 2020年2月1日閲覧。 解説論文 Diederik P. Kingma; Max Welling (2019年12月11日). “An Introduction to Variational Autoencoders” (PDF). arXiv. 2020年2月1日閲覧。 Carl Doersch (2016年8月13日). “Tutorial on Variational Autoencoders” (PDF). arXiv. 2020年2月27日閲覧。 オートエンコーダ