VAE

VAEとは

VAE(Variational Autoencoder、変分自己符号化器)は、ディープラーニングによる生成モデルであり、変分ベイズ推定法の一種です。

識別モデルとは、あるデータが何のカテゴリに含まれるかを認識するモデルです。
一方、生成モデルは識別モデルと逆向きのアルゴリズムであり、任意のカテゴリを指定すると、そのカテゴリのデータを生成します。
したがって、訓練データには含まれない未知のデータを生成することも可能です。

VAEは教師なし学習であるオートエンコーダーの一種です。オートエンコーダーは教師データを用いずに、訓練データの特徴を捉えて潜在変数に変換し(エンコード)、復元誤差をもとに潜在変数から再び訓練データセットに似たデータを生成(デコード)することを学習します。損失関数は入出力の誤差となります。
オートエンコーダーは

などにおいて次元削減に用いられます。

オートエンコーダーと異なるVAEの特徴は、潜在変数に確率分布を用いることです。確率分布の推定と生成にそれぞれ用いるエンコーダとデコーダにニューラルネットワークを用い、確率的勾配降下法と誤差逆伝播法によってパラメーターを更新します。
具体的には、目的関数となる対数尤度関数の変分下限(ELBO(Evidence Lower BOund)) を最大にするようなパラメータを求め、潜在空間上で多様体学習を行います。
結果として、損失関数は入出力の誤差と正則化項であるカルバック・ライブラー (KL)情報量で表されます。


VAE、GANはともにディープラーニングによる生成モデルです。
両者の違いは、VAEでは確率分布を尤度で明示的に設定しているのに対し、GANでは確率分布を暗黙的に仮定しているところです。
また、画像データの場合、VAEはGANに比べて鮮明度が落ち、ぼやっとする傾向があります。
一方、GANにはモード崩壊という現象があり、最頻値に分布が偏り、似たような画像ばかりを生成して学習が進まないという欠点があります。
これら両者の欠点を解消するため、VAEの後段にGANを付けたVAEGANというモデルも提案されています。

VAEの応用であるCVAE (Conditional VAE)は、VAEに条件変数を加えた手法です。
CVAEと用いると、データにラベル情報を加えて学習できるため、条件付きのデータを生成することができます。