変分オートエンコーダ
『生成 Deep Learning』より
- Variational Autoencoder, VAE
- 2013年、Diederik P. KingmaとMax Wellingによって基礎が築かれた
- 生成モデリングにおいては最も基本的でよく知られたDeep Learningのアーキテクチャ
オートエンコーダ
以下の2つからなるニューラルネットワーク:
- エンコーダネットワーク
- 高次元の入力データをより低次元の表現ベクトルに圧縮する
- デコーダネットワーク
- 表現ベクトルをもとに、元の領域へデータを復元する
- 畳み込み層の代わりに「転置畳み込み層」を使う
- デコーダはエンコーダと完全に対称である必要はない
- 最後の層の出力サイズがエンコーダ入力と一致していればOK
- このネットワークは、元の入力と復元後出力の誤差を最小化するように、重みを学習する
- 損失関数は入力画像と、それがエンコーダとデコーダを通過して復元された画像とのRMSE
アイデアの肝
- デコーダは潜在空間内の任意の点を画像へ変換できるように学習している
- 潜在空間の点を自由に選んでデコーダに渡せば、「新しい画像」が生成できる
- 画像のノイズ除去にも利用可能
- ランダムノイズの場所を潜在空間内で補足しても役に立たないことはエンコーダが学習するから
表現ベクトル
- 元の画像をより低い次元の潜在空間へ圧縮したもの
変分オートエンコーダ
- 各画像が潜在空間内のある点の周りの多変量正規分布に写像される
- 通常のオートエンコーダは、潜在空間の一点にマッピングされる
-
損失関数に、復元誤差に加え「KLダイバージェンス」が加わる
-
KLダイバージェンスとは
- ある確率分布が、別の分布とどれだけ異なるかを示す指標
- ここでは N(μ,σ) という正規分布(エンコーダで得られる)が、標準正規分布 N(0,1) とどれだけ違うかを見る
- DKL[N(μ,σ)∣∣N(0,1)]=−21∑(1+log(σ2)−μ2−σ2)
-
標準正規分布(mu=0, log_var=0)から大きく外れた
muやlog_varに対しては、ネットワークにペナルティを課す