Variational AutoEncoder (VAE) の気持ちを理解したい
Variational AutoEncoder (VAE) の気持ちを完全に理解すべく書いてみます
間違いや誤解を招く表現などがあったらご指摘いただければさいわいです
はじめに
人工知能 (Artificial Intelligence; AI)
人間の知能を機械で模倣しようという取り組み.
色々定義があるが,一般的に知能は「学習」「推論」の2つを行う能力とされる.
過去の入力から環境について特徴を捉え(学習),そこから未来の状態について予測を行う(推論).
機械学習 (Machine Learning; ML)
人工知能の一ジャンルで,学習データの統計的な性質を使って学習・推論を行う手法の総称.
Support Vector Machine (SVM) や,後述する深層学習などが有名.
深層学習 (Deep Learning; DL)
ニューラルネットワーク (Neural Network; NN) を使った機械学習手法の総称.
人間が特徴量を用意しなくても,大量のデータから自動で特徴量を抽出してくれる.
多層パーセプトロン (Multilayer Perceptron; MLP) をはじめとして,畳み込みニューラルネットワーク (Convolutional Neural Network; CNN) が画像分類コンペで高精度をたたき出した*1ので有名になった.
入力から出力への有向非巡回グラフになるように計算グラフを構築することで,グラフの逆辺をたどってチェーンルールに従い自動微分をして得た勾配をもとに,何かしらの損失関数に対して最適化を行う(誤差逆伝播法).
基本,大量のデータで大量に計算をして高い精度を出す.計算自体は行列積や成分ごとの関数などの比較的単純なものが多いので,GPUを使うと速い.
多様体仮説
データは多くの場合,その内容よりも次元数がいくらか大きい空間 (ambient space) で表現されているため,より小さい次元の空間 (latent space) でも表現できるという仮説*2.
例
640x480のRGB画像はラスタ表現で次元のベクトルとして表されているが,近傍の画素が相関しまくっているのでもっと圧縮できる.自然画像だけなら,砂嵐ノイズのようなランダムな点を考えなくていいので,次元数はもっと小さくできる(はず).
Autoencoder (AE)
入力を変換する1層の隠れ層から,元の入力を再構成するを出力する*3.
のように変換するので,の次元数をより小さくする(ボトルネック型)と次元削減ができる.
多様体仮説を採用すると,画像などのデータに対してもっと小さい次元の隠れ層で表現できる(はず).
エンコーダとデコーダを使うと,
Denoising Autoencoder (DAE)
入力に少しノイズを加えて破壊して,復元・再構成することでロバストな推論を行うAE*4.
データが埋まっている多様体から少し離れた点を多様体上に戻してやる問題を解いているため,AEより明示的に多様体学習をしているといえる.
潜在変数モデル (Latent Variable Model; LVM)
観測によって直接得られる観測変数 (observed variables) から,直接得ることのできない潜在変数 (latent variables) を推論する.
うまく高次元データを表現できる低次元の潜在変数を取ってくれば,データに顕著に表れる特徴=「本質」?が抽出できるので,その「本質」のもつ構造を多様体学習で求めたい.
Variational Autoencoder (VAE)
AEに変分ベイズ法を適用する*5.DAEと異なり,確率的モデルとしてノイズで潜在変数(隠れ層)を破壊する.
観測変数に対する潜在変数を仮定し,その関係を表す事後分布やを求めたい.
導出
まず,尤度の最大化をする.モデルパラメータをと書くことにする
たいてい指数分布族なので,上に凸で単調増加するlogをかけた対数尤度を最大化することにする.
そのため,別の分布 (はそのパラメータ) を使って近似することにする.ここで,イェンセンの不等式から,logを外に出すと対数尤度の下限 (Evidence Lower Bound; ELBO) が求まる:ただし, はKLダイバージェンスとする.
これを最大化することにより,対数尤度を最大化することができる(詳細は割愛).
事後分布の具体形
ELBOが算出できたところで,具体的な分布について考える.
近似分布 は,入力が条件づけられたときの潜在変数の近似分布だった.これを各成分独立なガウス分布とする.のパラメータを推定するNNを,エンコーダとする.
事後分布 は,潜在変数が条件づけられたときのの近似分布だった.これは,二値画像ならベルヌーイ分布とし,そうでない画像ならガウス分布とする.この分布のパラメータを推定するNNを,デコーダとする.
以上まとめると,
Reparameterization Trick
一方で,このままではのように計算グラフを構築することができない.からをサンプリングしてくるところは自動微分できないので,誤差逆伝播法が使えなくなってしまう.そこで,"reparameterization trick"をする.先ほど,を各成分独立なガウス分布とした.そのため,以下のように誤差逆伝播法を保ったサンプリングができる:
ただし,はアダマール積を表す.ばらつきのところだけサンプリングして,中心と広がりを微分できるようにする.ELBOの実装
また,最大化するELBOの具体的な実装について考える.先ほどのELBOの式は以下の通りだった:
第1項について考える:を正規分布とすると,これは入力と再構成誤差の二乗誤差を倍したものに等しくなる.ただし,は正規化定数である.第2項について考える:まず,事前分布 について仮定が必要なので,標準ガウス分布をおく.
そうすると,事後分布もガウス分布だったので,KLダイバージェンスは解析的に求まる:サンプルごとのELBOは分散が大きいので,ミニバッチ学習で平均をとって最大化する関数として使う.元論文*6ではこの関数を Stochastic Gradient Variational Bayes (SGVB) 推定量と呼んでいる.
最小化問題を解く機械学習の慣習に従って,以降はELBOを倍して考えると,以下のように実装できる:ただし,はミニバッチ中の番目のサンプルを表し,学習に影響を及ぼさない定数項は無視した.
実験
ググればKerasとかのサンプルが見つかると思うので割愛します
おわりに
何もわからない