変分オートエンコーダー

変分オートエンコーダー（; VAE）はオートエンコーディング変分ベイズアルゴリズムに基づいて学習される確率項つきオートエンコーダ型ニューラルネットワークである。
ニューラルネットワークを用いた生成モデルの一種であり、深層潜在変数モデルの一種でもある。
オートエンコーディング変分ベイズアルゴリズムの概要.
オートエンコーディング変分ベイズアルゴリズム（; AEVB）は勾配推定値を用いた有向潜在変数モデルと推論モデルの同時最適化アルゴリズムである。
AEVBでは有向潜在変数モデル formula_1 を推論モデル formula_2 の導入による変分下界 formula_3 最大化により最適化する。一般に変分下界の勾配 formula_4 は intractable であるが、AEVBではこれをモンテカルロ法 (formula_5) を用いた勾配の不偏推定量 formula_6 で置き換え、確率的勾配降下法によりパラメータを最適化する。このとき formula_2 の勾配推定・伝播に関する問題を reparameterization trick で解決する。
セッティング.
標本 formula_8 が各に対し、以下で生成されると仮定する#原論文：
ここでは何らかのパラメーターであり、の真の値は未知である。またformula_9、formula_10に従って値を選ぶのは計算量的に容易であるものとする。
一方、潜在変数の事後分布の確率密度関数formula_13は容易には計算できず、（容易に計算できる）確率密度関数formula_2により、近似する事を考える#原論文。ここでformula_15はパラメーターである。
我々は、formula_2がformula_13をどの程度よく近似しているかを測る尺度として、以下の関数（変分下界）を考える#原論文：
ここでKLはカルバック・ライブラー情報量である。formula_19 は常に非負である（ギブスの不等式）ので、変分下界は自己情報量 formula_20 の下界になっており、formula_2 が formula_13 を（KL情報量の意味で）よく近似するほど formula_20 に近づく。
目標.
標本 formula_24 に対する変分下界を最大化する formula_25 を目標とする。すなわち次の式で表される：
アルゴリズム.
変分下界は一般には計算が簡単ではない。そこで formula_2 が適切な仮定を満たすという条件下で変分下界の推定量を導入する#原論文。標本 formula_24 に対し確率勾配法を用いてSGVB推定量を極大化しモデルの最適化をおこなう#原論文。
他の推論アルゴリズムとの比較.
本章で想定しているセッティングにおいて、既知の手法の有用性は限定的である#原論文：
例えばformula_10がニューラルネットワークにより定義されているケースでは、上述した既知の手法は使えないが、本手法であれば適用できる。後述する変分オートエンコーダーはまさにこのケースであり、formula_10をニューラルネットワークにより定義している。
意義.
この最適化により以下の事ができるようになる：
変分オートエンコーダーの概要.
変分オートエンコーダーとは、オートエンコーディング変分ベイズアルゴリズムを使って学習するニューラルネットワーク（原論文では1層もしくは2層のパーセプトロン#原論文）ベースの生成モデルである。
セッティング.
変分オートエンコーダーでは、潜在変数が従う確率密度関数formula_9が標準正規分布
に従っており#原論文、の従う条件つき確率密度関数formula_10が
という形であるものとする#原論文。上でformula_43はパラメーターを持つニューラルネットワークである。
さらに事後分布formula_13を近似する条件つき確率密度関数formula_2として
という形のものを考える#原論文。上でformula_48はパラメーターformula_15を持つニューラルネットワークである。
の次元はの次元より短く取る。これはformula_50を用いる事で、データをもっと短いデータに「圧縮」し、formula_43を用いる事でからを「復元」できる事を意味する（ただし実際にはformula_50やformula_43の後に正規乱数を取る操作があるので、「圧縮」したデータを「復元」しても元に戻らない）。このため
符号理論との類推から、formula_50をエンコーダー、formula_43をデコーダーと呼ぶ。
アルゴリズム.
変分オートエンコーダーの学習アルゴリズムは与えられたデータ集合formula_8に対し、以上のような状況下でオートエンコーディング変分ベイズアルゴリズムを用いる事で、２つのニューラルネットワークformula_43、formula_48のパラメーター、formula_15を決定するものである。
一方、変分オートエンコーダーの生成アルゴリズムでは、まずは(D1)式のように標準正規分布に従いを生成し、生成したと学習済みのを使って(D2)式のようにを生成する。
オートエンコーディング変分ベイズアルゴリズムの詳細.
SGVB推定量.
オートエンコーディング変分ベイズアルゴリズムで考えている変分下界は一般には計算が簡単ではない。ゆえに変分下界の推定量であるSGVB推定量（Stochastic Gradient Variational Bayes estimator、確率的勾配変分ベイズ推定量）を導入する#原論文。
仮定.
SGVB推定量を導入する為、何らかの（容易に計算可能な）可微分関数と（容易にサンプルを抽出できる）確率分布 formula_60 を用いて
とする事で確率密度関数formula_2に従ったサンプルを抽出できる事を仮定する#原論文。
例えばVAEの場合は(E1)より
としてこの仮定を満たしている。ここで「formula_66」は成分毎の積である。
後でSGVB推定量を定義する際に仮定(P1)を使う事で、本来は確率分布formula_2で定義する部分を可微分で確定的な関数に置き換える事でSGVB推定量の可微分性を保証する。これによりSGVB推定量を微分して勾配法によりformula_25の最適解を求める事ができるようになる。原論文ではこのように確率分布を可微分な確定的関数に置き換えるテクニックをreparameterization trickと呼んでいる#原論文。
推論量.
簡単な計算により変分下界は
と書き換えられる事が示せる（ここでformula_70は期待値である）ので、仮定(P1)を用いる事で変分下界を推定するSGVB推定量を
により定義する#原論文。ここでformula_72（formula_73）は formula_60から独立に抽出した乱数であり、はハイパーパラメーターである。
SGVB推定量を計算するにはカルバック・ライブラー情報量formula_75を計算できる必要がある。原論文ではこの値が計算できないときの為の推定量も提案しているが#原論文、本項では割愛する。
アルゴリズム.
オートエンコーディング変分ベイズアルゴリズムは確率的勾配降下法によりSGVB推定量を極大化する、formula_15を求めるものである#原論文。以下で、はハイパーパラメーターである。
変分オートエンコーダーの詳細.
すでに述べたように、変分オートエンコーダーの学習アルゴリズムは、formula_9、formula_10、formula_88からのサンプリングが(D1)、(D2)、(E1)に従ってできるケースにおいてオートエンコーディング変分ベイズアルゴリズムを実行するというものである。
従って変分オートエンコーダーの学習アルゴリズムを書きくだす上で必要となる作業は、(D1)、(D2)、(E1)に従っているケースにおいてオートエンコーディング変分ベイズアルゴリズムにおけるSGVB推定量が具体的にどのような形になるのかを調べるだけである。
SGVB推定量の具体的な形.
本節では変分オートエンコーダーのケースにおいてSGVB推定量
の具体的な形を求める。
(P2)、(E1)、(D2)より、
とすると、 formula_92が正規分布formula_93の確率密度関数であることから、
である。ここではのデータ長であり、、、はそれぞれ、、の第成分である。
一方、(L1)の第2項を具体的に計算すると以下のようになる#原論文：
ここではのデータ長であり、、はそれぞれ、の第成分である。
まとめると、
ここで、
アルゴリズム.
以上の結果から、変分オートエンコーダーは以下のようになる：
学習：
生成：