1. VAE (Variational Autoencoder, 変分オートエンコーダ)とは [概要]
VAE (Variational AutoEncoder, 変分オートエンコーダ) とは,潜在変数付き確率グラフィカルモデルとして構成されている,オートエンコーダネットワーク構造の深層生成モデルである [Kingma and Welling, 2014].中間のボトルネック層を潜在変数化した「潜在変数付きEncoder-Decoder」であるゆえ,ベイズ的な「解釈性の高い潜在確率変数」も学習できる利点がある.
この記事では,VAEの基礎と学習方法(2~4節),およびその応用について述べる.
VAEは,再パラメータ化トリック(4.3節)というテクニックの導入により, 潜在変数付きのEncoder-Decoder を,ニューラルネットワークとして実現している点が,VAEの一番の長所である.従って,潜在変数も推論できるのに,学習時の計算効率性もよく,しかも他のニューラルネットと同様に同じく「SGD」で学習できる.
画像や音の変換モデルとしてEncoder-Decoderネットワークを学習する場合に,VAEとして設計・学習しすると,中間のボトルネック層部分を,潜在確率変数(正規分布)として,可視化および,低次元埋込み空間化でき,デバッグ性・解釈性がよくなる.
1.1 記事の構成
2節以降は,オリジナルのVAEの提案 [Kingma and Welling, 2014], [Kingma and Welling, 2019] を中心として,以下の構成によりVAEの基本的な仕組みと特徴を説明していく:
- 2節 VAE の構成
- 3節 VAE のグラフィカルモデル構造
- 4節 VAE の学習: AEVB(Auto-Encoding Variational Bayes)
- 5節 VAE の特徴と発展・応用
VAEの基本モデルについての記事なので,VAEのその後の応用や発展については,3.1節や5.2節などで少し述べている程度であることに注意されたい.
この記事は内容が盛りだくさんである.よって,2節以降の詳細に入る前に,読者のVAE全体への俯瞰度を,先に高めておきたい.そこで,「もう少し詳しめの概要(1.2節)」と,「生成画像の例 (1.3節)」による実例を1節で先に提示することで,VAEの大枠をイメージできるようにしたのち,2節以降の詳細説明に入りたい.
1.2 VAE の概要 [もう少し詳しく]
1.2.1 潜在変数の推論付き自己符号化
VAEは,オートエンコーダのボトルネック部
VAEは,画像などの高次元データ群から,データの再構成損失関数に沿った「正規分布の潜在変数空間
学習後のテスト時は,ユーザーが指定した
この構成により,生成モデルであるデコーダ
また,VAEで学習された
のボトルネック部である
VAEは,Auto-Encoding Variational Bayes (AEVB) というアルゴリズムにより学習(もとい潜在変数の推論)を行う (4節).VAEでは,潜在(正規分布)変数も同時に学習(推論)するので,AEVBも「潜在変数あり学習」の1種類である.
AEVBは,潜在変数の最適化と,非潜在変数の学習を繰り返すゆえ,伝統的なEMアルゴリズムに似た学習アルゴリズムでVAEも学習すると「一般化」して同一視・比較ができていると,VAEについて深く理解しやすい.この理解があると,自分で設計したネットワークにも,VAEを活用できやすくなる.
1.2.2 確率モデルなのにSDGで済む
VAEの1番の特徴・長所は「潜在変数付きグラフィカルモデル構造を持っていながら,ニューラルネットで構成してあり,SGD学習できる」点である.これにより,他のニューラルネットワーク構造とも組み合わせたEncoder-Decoder構造にしすい.また,深層生成モデルであるので,過去の複数潜在変数付きグラフィカル生成モデルよりも,スケール化させることが容易である.加えて,従来のグラフィカル生成モデルの発想を持って来やすい.その意味で,VAEを元にした,新たな生成モデルを設計しやすい利点もある.
VAEは,中間ボトルネックに,確率的な正規分布の潜在変数を含んでおり,SGDで一気に学習することはそのままではできない.VAE以前の,かつての潜在ランダム変数付き確率的グラフィカルモデルの場合は,潜在変数の事後分布候補を大量に(ランダム)サンプリングする必要があるので(例:LDA(潜在ディリクレ配分)など),MCMC法など「サンプリング計算コストの高いベイズ推論」が必須であった.
しかしVAEでは,再パラメータ化トリック(reparametrization trick) (4.2節)を導入したことで,end-to-end学習が可能となっている.これにより,VAEでは,バックプロパゲーション(=SGD)だけで,変分ベイズ推論学習が可能とになった.こうして「潜在変数付き」深層生成モデルを学習するハードルがVAEで一気に下がり,パラダイムシフトがおこった.これは,ニューラルネット中にVAEも利用することで,もつれほどきされた低次元な事前分布への,複雑な埋込みEncoderを,容易に学習できるようになったとも,言い換えることができる.
ちなみに同時期に出てきたGAN も生成モデルや変換モデルでよく使われていく.VAEは「潜在変数を予測するEncoderも同時に学習できる」のが,GANと構造を比較した時に,最も異なる点である.
親記事「深層生成モデル」などにも,書いたように,GANとVAEは相互補完的な側面がある技術同士であるので「GANとVAEの融合,良いとこ取り」が,その後盛んになっていく(※ この記事では対象外).
1.2 VAEの動機と生成画像の例
提案者 Kingma氏によるデモサイトでは,VAEの画像生成の潜在変数12個の値を,バーで自分で調整して画像を生成するデモを,ブラウザ上で試すことができる.このデモサイトで実物を触ってもらうとわかるように,VAE開発の動機は「10次元程度の潜在変数を操るだけで,それの潜在変数の成分が混ざった綺麗な画像を生成できる深層生成モデルを開発する」ことにあった.
例えば,MNISTの数字画像 (図1-a)や,顔画像(図1-b)のように「潜在的な分布
MNISTの場合,
また,FARY FACEデータセットのように,データ内に「向き」や「表情」などの変化を含むデータセットからVAEを学習すると,もつれほどき(disentanglement)の効果により,独立した変化が各潜在変数に表出しやすい(図1-b).この潜在変数分離が,教師なしで実施できることは魅力的である.
2. VAE の構成
2.1 問題設定と学習の概要
VAEの学習の目的は,大規模データセット
2.1.1 潜在変数モデルの仮定
従来の潜在変数付きグラフィカルモデルや非線形次元削減でよく用いられてきた「高次元データ群の分布は,低次元多様体
元の高次元データセット
すなわち,データ
2.1.2 VAE の学習の概要
VAEは,生成グラフィカルモデルの変数間の依存関係をニューラルネットで学習する深層潜在変数モデル(Deep Latent-Variable Models, DLVM)を採用している.DLVMである
この節では確率生成モデルとしての学習で構成される確率分布間の関係の大枠を先に述べる.従って,グラフィカルモデルとしての,詳細なサンプルの生成過程は3節にて述べる.
VAE のDeep Latent variable modelsとしての構造
VAEは
VAEのDLVMにおける
- 事前分布:
- 尤度:
- 事後分布:
DLVMでは,生成モデル全体を表す結合分布
データ点を生成するには,まず事前分布から
対数尤度目的関数の周辺化
生成モデルでは以下のような「データ分布の対数尤度」を用いて分布のパラメータを推定することが標準的である:
ここで,式(2.2)中のエビデンス項
また潜在変数
オートエンコーダとしての学習
さて,式(2.2)からVAEの学習を行いたいが,そうすると式(2.3)を毎回の学習ループで推論を行う必要が出てくる.この際に,
そこでVAEでは,元のExactな事後分布を用いる代わりに,近似分布
そして,この
そして,近似分布の式(2.4)を,エンコーダとして効率的に変分ベイズ推論で計算し,なおかつ生成モデルも学習できるアルゴリズムとして,Auto-Encoding Variational Bayes (AEVB)アルゴリズム(4節)を使用する .
2.2 VAE のネットワーク構造
VAEは,低次元ベクトルの潜在変数
- エンコーダ:
- データ
から潜在変数 の確率分布を推論するEncoder.
- ベイズグラフィカルモデル的には「事後分布の近似」である (3節).
- 具体的には,
をサンプリングするための,(1)平均ベクトル と(2)標準偏差ベクトル の2つを結合したベクトルを推定. - 学習の際にオートエンコーダを構成する補助役.
- データの生成を行うテスト時には使用しないが,実データから潜在変数
の空間に射影することも可能 (テスト時にも便利に使用できる).
- データの生成を行うテスト時には使用しないが,実データから潜在変数
- データ
- デコーダ :
- 潜在変数
を入力(条件付き確率変数)として,データ を生成 (再構成)する,条件付きDeocder.
- ベイズグラフィカルモデル的には「
の尤度」.
- 潜在変数
また,潜在変数
中間部の潜在表現
VAEのあとにGANが提案されて以降の数年は,これら2つが深層生成モデルの中心選手として,双方とも発展していた.「大量の画像データを用いて,高次元データである画像の生成モデルを学習できる」という共通点が,それまでに存在しなかった仕組みである.
5.2節や,親記事(深層生成モデル (Deep Generative Model)でも述べるように,GANとVAEは相互補完的な関係も持っており,片方の弱点をもう片方だけが実現できる長所がある.よって,同時に両者を使用するモデルも多く提案されている.
3. VAE のグラフィカルモデル構造
3.1 確率的モデルとして
VAEは図3で示されるグラフィカルモデルに沿って,正規分布からサンプリングした
VAEではデコーダ
テスト時には,学習済みのパラメータ
処理手順
- 事前分布
から をサンプリング. - 条件付き分布
に相当するデコーダネットワークから を生成する.
また,変分ベイズ推定で用いる推論用の近似分布
VAEは,図2のように,確率分布中間変数
3.2 もつれほどき (disentanglement)
VAEの学習を通じて得られる,潜在変数間のもつれほどき(disentanglement)について,簡単にだけ触れておきたい(原理や最近の動向についてまでは,この記事では述べない).
元論文での,Fray Faceデータセットで学習した多様体の生成画像可視化図のように(図1-b),VAEの
例えば,古典的な線形の潜在変数モデルのPCAを,同じデータセットから学習させた場合,潜在変数には正規直行基底を仮定しているゆえ,正規直行基底レベルまでしか,各変数間のもつれほどきは起こらない.しかしVAEの場合は,非線型かつ深い(階層的な)潜在表現を,教師なし学習(自己符号化)を通して獲得できる.
β-VAEという手法の登場以降,潜在変数のもつれほどき具合を,損失関数間の重み付けパラメータ
4. VAE の学習: AEVB
VAEの学習アルゴリズムは,Auto-Encoding Variational Bayes (AEVB) [Kingma and Welling, 2014] と呼ばれる.VAEの学習では,変分ベイズ推定 (Variational Bayesian Inference)による潜在変数の推定も同時に行われる.また,そのベイズ推定の過程がニューラルネットワーク化されたSGD学習になっているので,旧来の潜在変数グラフィカルモデルよりもスケールしやすい.
AEVBによる学習の目的関数は,周辺尤度の対数
ELBOの最大化を用いると,近似解である周辺尤度の最大化を通して,VAEの近似エンコーダとデコーダのパラメータを同時に学習できる(4.2節).しかし,真ん中に正規分布である
4.1 損失関数の構成 (対数尤度から導出)
3.2 節で見たように,VAEは周辺尤度
以下の式は,VAEの目的関数「周辺尤度の対数
※この式の変形方法の詳細は省略する.参考文献・参考書籍等を参考のこと
この対数尤度の下界(ELBO)を,SGDの代理目的関数として使用することで,VAEを学習する.これらの2項について,4.1.1と4.1.2で意味をそれぞれ見ていきたい.
4.1.1 KLダイバージェンス項
式(4.1)の右辺第2項は,真の分布
このKLダイバージェンスは,以下のように非負の値を取り,値が0に近くなるほど近似分布は真の分布に近づく:
4.1.2 ELBO項
式(4.1)の右辺第1項は,変分下界であるEvidence Lower Bound (ELBO)である:
KLダイバージェンスの非負性から,式(4.3)中に式(4.1)を適用することで,ELBOは対数尤度の下界に相当するとわかる:
ここで,KLダイバージェンス
- 真の事後分布からの,近似事後分布へのKLダイバージェンス.
- ELBOと対数尤度のギャップ (下界のtightness).KLダイバージェンスに関して近似分布が真の分布を表しているほど,このギャップは小さい値となる.
以上から,VAEの目的関数は「ELBOの最大化」となっており,また,それは「周辺尤度の下界の最大化」に相当していることが導出できた
※ 最大化を行うので,SGDではなく Stochastic Gradient Ascentを行う点に注意.
次の4.2節では,ELBOを用いてSGDによりVAEを最適化する「SGVD」について,述べる.
4.2 SGVI: SGDを通したELBO最適化
4.1節の冒頭でも述べたように,式(4.3)のELBO
そこでVAEの学習であるAEVBには,バッチごとにSGDでELBOを損失関数として変分ベイズ推定を行うSGVI (Stochastic Gradient-based Variational Inference) を用いる.
以下の,各サンプル
4.3 再パラメータ化トリック
各近似事後分布の
そこで [Kingma and Welling, 2014], [Rezende et al., 2014] では,再パラメータ化トリック(Reparametrization Trick)が提案された(図4).
中間層
これらの再パラメータ化(4.6),(4.7)により,再パラメータ化された勾配を用いて
こうして,グラフィカルモデルとしてのVAEの挙動が
5. VAE の特徴と発展・応用
2~4節までは,オリジナルのVAEの仕組みを紹介してきた.最後にこの5節でVAEの特徴を整理し(5.1節),その発展・応用にもさわりだけ少し触れておきたい(5.2節).
5.1 VAE の特徴の整理
ここまでの話をまとめつつ,VAEの特徴を長所・短所に分けて,以下にまとめる:
- 旧来の潜在変数付きグラフィカル生成モデルと異なり,SGDを用いたバッチ学習が可能なので,大量のデータから学習できスケールしやすい.
- 生成モデルとしてシンプルなグラフィカルモデルを使用しており取り扱いやすい.
の推論が可能なので,色々なタスクにおいてこの表現学習の仕組みを応用しやすい.
- 伝統的な尤度最大化でありその下界を用いること自体は悪くはない.ただ,自己回帰モデルやGANなど他の深層生成モデルと比べると,目的関数が下界なので,甘い評価関数による最適化である.
- 分布の近似および変数のサンプリングを行うので,シャープなサンプルを生成できる(決定的モデルの)GANと比べると,生成サンプルはボケでがちであり,サンプルの質的に劣る(※ しかし最近はVQ-VAEなど,綺麗な画像が生成できるVAEも登場している)
5.2 VAE の発展・応用
(教師なしで)潜在空間付き生成モデルを学習できるというVAEの性質上, シーケンス形式のデータからそのデータ群の性質をとらえたい対象として,近年VAEは音響データへの応用が多く見うけられる.
※ 自己回帰生成モデルにおいても,Wavenetの登場以降は『音響データ向けの応用』が盛んである
「KingmaとWellingによる解説 [Kingma and Welling, 2019] 」でも触れられているように,VAEとGANは相互補完的な関係にある.従ってVAE-GAN [Larsen et al., 2016]のように,VAEのDecoderとGANのGeneratorを同一のものとみなして2者を組み合わせると,お互いの短所を補った良いモデルを作りやすい.
また,他によく研究されている応用モデルとして,クラスラベルで条件付けしたVAEである Conditional VAE (CVAE) [Sohn et al., 2015] が挙げられる.CVAEでは,クラスラベル付きの他クラスデータセットを学習することで,クラスラベルに条件付けされたEncoderとGeneratorを学習する.多クラスラベルデータセットから,クラスごとの分布の違いを条件的確率で捉えたVAEを学習できる.よって,多クラス識別問題向けの画像データセットからも,CVAEを教師あり学習できるようになった.
6. まとめ
この記事では,変分オートエンコーダ(VAE)の,KingmaとWellingによる元祖の提案について,その構造と学習方法についてまとめた.VAEは,潜在変数付き深層生成モデルであり,変分ベイズ推定を利用して学習するオートエンコーダである.正規分布を事前確率とする潜在変数
VAEでは,ELBOの最大化により,変分ベイズ学習であるAEVBを行う(4章).End-to-End学習することにより,中間層
最後の,5節では,VAEの特徴をまとめ,VAEの発展と応用も少し述べた.
参考書籍
- 生成 Deep Learning ― 絵を描き、物語や音楽を作り、ゲームをプレイする David Foster , オライリージャパン, 2020
- 3.4 変分オートエンコーダの作成 (p86)
- 3.5 VAEを使った顔生成 (p95)
- 深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ) 岡谷貴之,講談社,2022.
- 12.3 変分自己符号化器(VAE) (p296)
- Advanced Deep Learning with TensorFlow 2 and Keras: Apply DL, GANs, VAEs, deep RL, unsupervised learning, object detection and segmentation, and more, 2nd Edition
- 8章「VAE (VAE,CVAE,β-VAE の詳しい解説と,Keras実装)」
- 物体検出とGAN、オートエンコーダー、画像処理入門 PyTorch/TensorFlow2による発展的・実装ディープラーニング チーム・カルポ、秀和システム,2021.
- 4章: オートエンコーダの章で,後半にVAEの実装も行う.
References
- [Kingma and Welling, 2014] Auto-encoding variational bayes. In ICLR, 2014
- [Kingma and Welling, 2019] D. P. Kingma and M. Welling. (2019). An introduction to variational autoencoders. Foundations and Trends® in Machine Learning, 12(4), 307-392.
- [Larsen et al., 2016] A. B. L. Larsen, S. K. Sønderby, H. Larochelle, and O. Winther. Autoencoding beyond pixels using a learned similarity metric. In ICML, 2016.
- [Rezende 2016] Rezende, D. J., S. Mohamed, and D. Wierstra. “Stochastic back- propagation and approximate inference in deep generative models”. In ICLR 2014
- [Sohn et al., 2015] K. Sohn, H. Lee, and X. Yan. Learning structured output representation using deep conditional generative models. In, NIPS 2015.
- [Yan 2016] Xinchen Yan, Jimei Yang, Kihyuk Sohn, and Honglak Lee. Attribute2image: Conditional image generation from visual attributes. In ECCV, 2016.