目次
1. 概要
Variational Autoencoders (VAE)[1][2]は,Deep Neural Networkをバックボーンに用いた潜在変数付きグラフィカルモデル形式の深層生成モデルである.Autoencoderのボトルネック部分に,低次元潜在変数$\bf{z}$が確率分布として(通常ガウス分布をPriorとして)配置されているグラフィカルモデルを,変分ベイズ法の目的関数により最適化することから「Variational Autoencoders」と名付けられた.外側から見た場合にはVAEは潜在変数付きグラフィカルモデルなのであるが,実際の中身としてDeep Neural Networkとなっているので,他のニューラルネットワークと簡単に組み合わせられるというのが長所である.またreparametrization trickというテクニックの導入により,通常の潜在変数を学習する際に用いるMCMCなどの計算コストが高い確率的なベイズ推論(Inference)手法を用いずとも,バックプロパゲーションで$\bf{z}$の学習も済ませることできる.
VAEをデータ群から学習すると,元の高次元データの特徴ベクトルとして近いもの同士が近くに配置されたガウス分布の潜在変数$\bf{z}$空間が形成される.学習後は,潜在変数空間から特定のサンプル$\bf{z}$をユーザーが指定すると,Decoderによりその潜在変数座標に対応する観測サンプル$\tilde{\bf{x}}$を生成することができる.
まず1節ではVAEの概要として,まず以下の2つについて紹介する:
- 問題設定とモデルの概要 (1.1 節)
- 2つのネットワークから成るVAEのネットーワーク構造(1.2節)
1.1 問題設定とモデルの概要
VAEの学習の目的は,大規模データセット$\mathcal{D} = \{\bf{x}^1,\bf{x}^2,\ldots,\bf{x}^N\}$の分布を模した「データ生成モデル」を学習することである.そして,潜在変数モデルの仮定をおくゆえ,データ群$\mathcal{D}$のなかに潜在的に存在する(低次元ベクトルの)潜在変数分布を推定し,その潜在変数からデータセットの分布に近いデータを生成することも目的である.よって,データ$\bf{x}$の背後に潜在変数$\bf{z}$とその分布$p_{\theta}(\bf(z))$が存在すると仮定し,さらには潜在変数からデータの生成を行う生成用の分布$p_{\theta}(\bf{x}|bf{z})$も存在すると仮定する.
VAEでは,この$\bf{x}$が$\bf{z}$から生成するグラフィカルモデルとして,変数間の依存関係はニューラルネットで学習する深層潜在変数モデル(Deep Latent-Variable Model)を使用する.このモデルのもとで,$p_{\theta}(\bm{z})$および$p_{\theta}(\bm{x}|\bm{z})$をデータセットのみから学習することが,VAEの学習の目的となる.
$p_{\theta}(\bm{z}|\bm{x})$はベイズ法則(Bayes’s rule)を用いると,以下のように分解できる:
$p_{\theta}(\bm{z}|\bm{x}) = p_{\theta}(\bm{x}|\bm{z}) p_{\theta}(\bm{z})$
この右辺の$p_{\theta}(x)$を以下のように周辺化して計算すると,左辺の値を求めることができる:
$p(\bm{x}) = \int p_{\theta}(\bm{x}|\bm{z}) p_{\theta}(\bm{z})$
ここで,事後分布$p_{\theta}(\bm{z}|\bm{x})$は毎回の学習ループで推論を行う必要があるのだが,この際に正確な(exact)な$p_{\theta}(\bm{z}|\bm{x})$を用いようとすると,Nが大きいほど大量のサンプリングが必要で $\bm{z}$の候補全てについて周辺化するにも計算量が多くなり,扱いづらい(intractable).
そこでVAEでは,Encoderネットワークによる推論は,元のExactな分布を用いる代わりに 近似分布 $q_{\phi}(\bm{z}|\bm{x})$を推定することで,変分推論で効率的に学習を行う「Auto-Encoding Variational Bayes(AEVB)[1]」を採用している.
1.2 Variational Autoencodersの構造
VAEは,以下の2つのネットワークが,潜在変数$\bm{z}$を挟んで,Autoencoderを構成している:
- Encoderネットワーク $q_{\phi}(\bm{z}|\bm{x})$:VAEの潜在変数推論モデル.データ$\mathbf{x}$から潜在変数$\bm{z}$の確率分布を推論する.学習の際にAutoencodersを構成する補助役なので,データの生成を行うテスト時は使用しない.
- Generatorネットワーク$p_{\theta}(\bm{x}|\bm{z})$ : VAEの生成モデル.潜在変数からデータを生成する.
これらの2つのネットワークを用いて「$\bm{x} $ -> Encoder -> $\bm{z}$ -> Geneartor-> $\bm{x}^{\prime}$ ($\bm{z}$の再構成結果)」の順番で,確率変数間の変換を行うことができる,Autoencoder構成である (図1).

$\bm{z}$の事前分布には0~1の値を取る正規分布を仮定し,サンプリングされた値$\bm{z}$を生成ネットワークに入力すると,学習に用いたデータセットの分布に基づいた,$\bm{z}$に対応するランダム変数$bm$を生成することができる.また,潜在変数$z$を推論する条件付き近似分布$q_{\phi}(\bm{z}|\bm{x})$もニューラルネットワークにより関数化されている.(学習の原理は2.2にて後述)
中間部の$\bm{z}$をEncoderの推定結果の正規分布パラメータからサンプリング部分が微分不可能なので,本来は2個のネットワークを同時に学習できない.それを,VAE[1]ではReparametrization Trick によって,グラフィカルモデル構造を保ちながらもEnd-to-Endで2つのネットワークを学習することが可能となった(※VAEを実現する上でのキーアイデア).
GANも提案されて以降,これら2つの深層生成モデルは並行して発展しており,両者とも「大量の画像データを用いて画像生成モデルを学習できる」点が共通点である.のちに述べるように両者は相互補完的な関係にあり,相手の弱点を自分だけが実現できる長所であるので,同時に両者を使用するモデルも数多く提案されている.
それでは以上の概要を踏まえて,2節以降ではVAEの詳細を見ていきたい.まず2節では,確率的グラフィカルモデルをニューラルネットのAutoencodersとして構成した「VAEの構成」について述べ,なぜ任意の観測データ分布をその構造で全て表すこと可能であるかの「仕組み」について紹介する.3節では,VAEの学習の仕組みとして,ロス関数の構成及びReparametrization Trickについて述べる.4節では,VAEの性質と発展手法および関連する話題について述べる.
2. VAEの構成と仕組み
VAEは以下の図1で示されるグラフィカルモデルに沿って,正規分布からサンプリングした$\bm{z}$を入力として受け付ける「生成ネットワーク(Decoder)」を用いて$\bm{x}$を生成するモデルとなっている.

ここで,(概要でもすでに述べたが)VAEでは生成モデルの$p_{\theta}(\bm{x}|\bm{z})$をニューラルネットワークで実装しており,$\theta$はそのネットワークパラメータである.また,(学習時にベイズ推定を行うために使用する)逆方向の「$p(\bm{z}|\bm{x})$」を近似した分布$q_{\phi}(\bm{z}|\bm{x})$も,同じくニューラルネットワークで実装しており,$\theta$はこのネットワーク(変分)パラメータである.
VAEは,図1のように,確率分布中間変数$\bm{z}$をボトルネットクとするAutoencoders構造である.1.2で述べたように,$\bm{z}$は事前分布が$N(0,\bm{I})$ (原点中心の等方性正規分布)であり,学習を通じてそのががウシアン事前分布上の点$\bm{z}$に,各学習データが埋め込まれていく.
2.1 もつれほどき(disentanglement)
VAEの学習により得られる,潜在変数表現の縺れほどき(disentanglement)について簡単に触れておきたい(本記事では原理や最近の動向についてまでは述べな.).
(有名な)[1]の実験画像の顔画像から学習したVAEの潜在変数2変数を変化させた生成画像の可視化図のように,深層NN構造に助けらてるので,$\bm{z}$の各変数$z_1, z_2, z_D$は,お互いが縺れほどきされた(disentangled),独立性の高い表現になりやすい.よって,各変数を調節することでそれらの独立した成分の混合具合をコントロールした画像の生成が可能となるのがVAEのメリットであると言える.
例えば,古典的な線形の潜在変数モデルのPCAを同じデータセットから学習させた場合,潜在変数には正規直行基底を仮定しており,そこで表現できるレベルまでしかもつれほどきは起こらないが,それと比べるとVAEでは,非線型かつ深い(階層的な)潜在表現を,教師なし学習で手に入れられると言える.
近年は,β-VAEという手法の登場以降,より明示的に縺れほど具合を,学習パラメータ$\beta$によりコントロールするようにもなっている.また,関連する話として,2つのEncoderを用意して明示的に2成分にDisentangleする研究(例「Pose v.s Appearance」「顔のIdentityに関わる成分 v.s. 顔のIdentityは除去した成分」など)が画像生成や画像変換界隈では近年盛んだが,この記事では述べない
3. VAEの学習
Variational Autoencodersの学習では,その名前にVariationalとついているように,「Variational Bayesian Inference」を用いた潜在変数推定が行われる.加えて,そのVariational Inferenceがニューラルネットワーク化されたSGDによる学習になっているので,バッチ処理が可能なので旧来の潜在変数グラフィカルモデルよりもスケールしやすい特徴を持っている.
VAEの目的関数は,周辺尤度の対数 $\log p_{\theta}(\bm)$ の変分下界(variational lower bound)であるEvidence Lower Bound (ELBO)である.ELBOを用いたニューラルネットワークのSGDによる学習を行うことで,近似である周辺尤度の最大化を行うことができる.
3.1 ロス関数の構成
VAEでは,周辺尤度$p_{\theta}(\bm{x})$最大化による学習を通じて,生成モデルであるGeneratorネットワークのパラメータ$\theta$,およびEncoderネットワークの変分パラメータ$\phi$を同時に学習する.
以下の式が,目的関数である周辺尤度の対数を,2つの項に分解したものである(※この式の変形の詳細は省略.各文献を参考のこと):
$\log p_{\theta}(\bm{x}) = \underbrace{ \mathcal{L}_{\theta,\phi}(\bm{x})}_{ELBO} +\mathcal{D}_{KL}( q_{\phi}(\bm{z}|\bm{x}) || p_{\theta}(\bm{z}|\bm{x}) ) (3.1)$
ここで右辺第2項は,真の分布$p_{\theta}(\bm{z}|\bm{x})$と近似分布$q_{\phi}(\bm{z}|\bm{x})$の間のKLダイバージェンスであり,以下のように非負の値を取り,値が0に近くなるほど近似分布は真の分布に近づく:
$ \mathcal{D}_{KL}(q_{\phi}(\bm{z}|\bm{x}) || p_{\theta}(\bm{z}|\bm{x}) ) \geq 0 (3.2)$
また,右辺第1項はEvidence Lower Bound (ELBO)と呼ばれる:
$\mathcal{L}(\bm{x},\theta,\phi)=\mathbb{E}_{q_{\phi}(\bm{z}|\bm{x})} [\log p_{\theta}(\bm{x},\bm{z})-q_{\phi}(\bm{z},\bm{x})] (3.3)$
よって(3.2)を(3.1)に適用することで,以下の式のようにELBOは対数尤度の下界に相当しているとわかる:
$\mathcal{L}_{\theta,\phi}(\bm{x}) = \log p_{\theta}(\bm{x}) – \mathcal{D}_{KL}(q_{\phi}(\bm{z}|\bm{x})||p_{\theta}(\bm{z}|\bm{x})) \leq 0 (3.4)$
すわなち,VAEの目的であるELBOの最大化は,周辺尤度を最大化することに相当していることが導出できた.
3.2 Reparametrization Trick
各近似事後分布の$q_{\phi}(\bm{z}|\bm{x})$を用いて$\bm{z}$の正規分布のパラメータ(平均と分散)を推定した際に,そのパラメータから$\bm{z}$をサンプリングする必要がある.しかし,サンプリング処理は微分不可能であるので,このままだとVAE全体にELBOからのロスをバックプロパゲーションすることができない.そこで,元論文の[1]では,サンプリング部分を外に逃すことで,VAE全体にバックプロパゲーションを可能にするReparametrization Trickと呼ばれる方法が提案された.
Reparametrization Trickは,$\bm{z}$自体は確率変数から決定的変数(deterministic variable)に変えて,確率的ノイズ変数$\eta$を順伝搬時のみ別途サンプリングする.これにより,$\bm{z}$をまたいでEncoderまでバックプロパゲーションすることが可能となり,Forwardする際もサンプリングした$\eta$が$\bm{z}$の確率変数的な値をとる部分を担当できるので,グラフィカルモデルの挙動が$\bm{z}$が確率変数の場合と同等に保たる.
4. 特徴と関連研究
3節までは,オリジナルのVAEの仕組みを紹介してきた.この記事では最後にこの4節において,VAEの特徴を整理し(4.1),その発展や応用を少しだけ触れておきたい(4.2).
4.1 VAEの特徴
ここまでの話をまとめつつ,VAEの特徴を長所/短所に分けてまとめる:
- 旧来の潜在変数付きグラフィカル生成モデルと異なりSGDを用いたバッチ学習ができるので,大量のデータから学習できる.
- 生成モデルとしてシンプルなグラフィカルモデルを使用しており,扱いやすい.
- $q(\bm{z}|\bm{x})$の推論が可能なので,色々なタスクにおいてこの表現学習の仕組みを応用しやすい.
- 伝統的な尤度最大化でありその下界を用いること自体は悪くはない.ただ,自己回帰モデルやGANなど他の深層生成モデルと比べると,下界なので甘い評価関数による最適化である.
- 分布の近似および変数のサンプリングを行うので,シャープなサンプルを生成できる(決定的モデルの)GANと比べると,生成サンプルはボケがあって質的に劣る(※ しかし最近はVQ-VAEなど綺麗な画像が生成できる拡張モデルも登場している)
4.2 VAEの発展/応用
また,(教師なしで)潜在空間付き生成モデルを学習できるというVAEの性質上, シーケンス形式のデータからそのデータ群の性質をとらえたい対象として,近年VAEは音響データへの応用が多く見うけられる.(自己回帰モデルでも,Wavenet登場以降は特に音響データ向けの応用が盛んである)
Kingma と Wellingによる解説[3]でも触れられているが,VAEとGANは補完関係にあり,VAE-GAN[4]のようにVAEのEncoderとGANのGeneratorを組み合わせると,お互いの短所を補った良いモデルを作りやすい側面がある.
また,他によく研究されている応用モデルとして,クラスラベルで条件付けした生成モデルのVAEとして,Conditional VAE(CVAE)[4]が挙げられる.CVAEは,クラスラベル付きの他クラスデータセットを学習することで,クラスラベルに条件付けされたEncoderとGenratorを学習できるVAEである.多クラスラベルデータセットからクラスごとの分布の違いを把握できている単一の生成モデル学習できる.,多クラス識別問題向けの画像データセットからもVAEを学習できるようになった.
5. まとめ
この記事では,深層生成モデルの代表的モデルである「Variational Autoencoder(VAE)」について,オリジナルのKingma and Wellingの提案[1][3]によるVAEの基本的な仕組みを紹介し,4節ではその特徴や拡張について簡単にまとめた.
References
- [1] D. P. Kingma and M. Welling. Auto-encoding variational bayes. In ICLR, 2014
- [2] D. J. Rezende, S. Mohamed, and D. Wierstra. Stochastic backpropagation and approximate inference in deep generative models. In ICML, 2014
- [3] Kingma, D. P., & Welling, M. (2019). An introduction to variational autoencoders. Foundations and Trends® in Machine Learning, 12(4), 307-392.
- [4] A. B. L. Larsen, S. K. Sønderby, H. Larochelle, and O. Winther. Autoencoding beyond pixels using a learned similarity metric. In ICML, 2016.
- [5] K. Sohn, H. Lee, and X. Yan. Learning structured output representation using deep conditional generative models. In, NIPS 2015.