変分オートエンコーダー（VAE）はオートエンコーディング変分ベイズアルゴリズムに基づいて学習される確率項つきオートエンコーダ型ニューラルネットワークである。

ニューラルネットワークを用いた生成モデルの一種であり、深層潜在変数モデルの一種でもある。

オートエンコーディング変分ベイズアルゴリズムの概要
オートエンコーディング変分ベイズアルゴリズム（AEVB）は勾配推定値を用いた有向潜在変数モデルと推論モデルの同時最適化アルゴリズムである。

AEVBでは有向潜在変数モデル  を推論モデル  の導入による変分下界  最大化により最適化する。一般に変分下界の勾配  は intractable であるが、AEVBではこれをモンテカルロ法 を用いた勾配の不偏推定量  で置き換え、確率的勾配降下法によりパラメータを最適化する。このとき  の勾配推定・伝播に関する問題を reparameterization trick で解決する。

セッティング 
標本  が各に対し、以下で生成されると仮定する#原論文：
 まず潜在変数が何らかの確率密度関数に従って選ばれ、
 がに依存した何らかの確率密度関数に従って選ばれる。

ここでは何らかのパラメーターであり、の真の値は未知である。また、に従って値を選ぶのは計算量的に容易であるものとする。

一方、潜在変数の事後分布の確率密度関数は容易には計算できず、（容易に計算できる）確率密度関数により、近似する事を考える#原論文。ここではパラメーターである。

我々は、がをどの程度よく近似しているかを測る尺度として、以下の関数（変分下界）を考える#原論文：

 

ここでKLはカルバック・ライブラー情報量である。 は常に非負である（ギブスの不等式）ので、変分下界は自己情報量  の下界になっており、 が  を（KL情報量の意味で）よく近似するほど  に近づく。

目標
標本  に対する変分下界を最大化する  を目標とする。すなわち次の式で表される：

アルゴリズム

変分下界は一般には計算が簡単ではない。そこで  が適切な仮定を満たすという条件下で変分下界の推定量を導入する#原論文。標本  に対し確率勾配法を用いてSGVB推定量を極大化しモデルの最適化をおこなう#原論文。

他の推論アルゴリズムとの比較

本章で想定しているセッティングにおいて、既知の手法の有用性は限定的である#原論文：
 最尤法は本章のセッティングではが容易に計算できるケースでないと使えない。
 EMアルゴリズムはの計算が容易であるケースでないと使えない。
 変分ベイズ法はが平均場近似できる場合にしか使えない。
 モンテカルロEMアルゴリズムは実行速度が遅い為大きなデータ集合に対しては使えない。

例えばがニューラルネットワークにより定義されているケースでは、上述した既知の手法は使えないが、本手法であれば適用できる。後述する変分オートエンコーダーはまさにこのケースであり、をニューラルネットワークにより定義している。

意義 
この最適化により以下の事ができるようになる：
 見つけたを使う事で、に従う確率変数、を生成する生成モデルを作成
 によりを推定

変分オートエンコーダーの概要

変分オートエンコーダーとは、オートエンコーディング変分ベイズアルゴリズムを使って学習するニューラルネットワーク（原論文では1層もしくは2層のパーセプトロン#原論文）ベースの生成モデルである。

セッティング
変分オートエンコーダーでは、潜在変数が従う確率密度関数が標準正規分布
     ...(D1)
に従っており#原論文、の従う条件つき確率密度関数が
 、ここで       ...(D2)
という形であるものとする#原論文。上ではパラメーターを持つニューラルネットワークである。

さらに事後分布を近似する条件つき確率密度関数として

 、ここで　　…(E1)
という形のものを考える#原論文。上ではパラメーターを持つニューラルネットワークである。

の次元はの次元より短く取る。これはを用いる事で、データをもっと短いデータに「圧縮」し、を用いる事でからを「復元」できる事を意味する（ただし実際にはやの後に正規乱数を取る操作があるので、「圧縮」したデータを「復元」しても元に戻らない）。このため
符号理論との類推から、をエンコーダー、をデコーダーと呼ぶ。

アルゴリズム

変分オートエンコーダーの学習アルゴリズムは与えられたデータ集合に対し、以上のような状況下でオートエンコーディング変分ベイズアルゴリズムを用いる事で、２つのニューラルネットワーク、のパラメーター、を決定するものである。

一方、変分オートエンコーダーの生成アルゴリズムでは、まずは(D1)式のように標準正規分布に従いを生成し、生成したと学習済みのを使って(D2)式のようにを生成する。

オートエンコーディング変分ベイズアルゴリズムの詳細

SGVB推定量
オートエンコーディング変分ベイズアルゴリズムで考えている変分下界は一般には計算が簡単ではない。ゆえに変分下界の推定量であるSGVB推定量（Stochastic Gradient Variational Bayes estimator、確率的勾配変分ベイズ推定量）を導入する#原論文。

仮定
SGVB推定量を導入する為、何らかの（容易に計算可能な）可微分関数と（容易にサンプルを抽出できる）確率分布  を用いて
 、ここで　　　...(P1)
とする事で確率密度関数に従ったサンプルを抽出できる事を仮定する#原論文。

例えばVAEの場合は(E1)より
 、　　　...(P2)
としてこの仮定を満たしている。ここで「」は成分毎の積である。

後でSGVB推定量を定義する際に仮定(P1)を使う事で、本来は確率分布で定義する部分を可微分で確定的な関数に置き換える事でSGVB推定量の可微分性を保証する。これによりSGVB推定量を微分して勾配法によりの最適解を求める事ができるようになる。原論文ではこのように確率分布を可微分な確定的関数に置き換えるテクニックをreparameterization trickと呼んでいる#原論文。

推論量
簡単な計算により変分下界は

 
と書き換えられる事が示せる（ここでは期待値である）ので、仮定(P1)を用いる事で変分下界を推定するSGVB推定量を
 　　　...(L1)
により定義する#原論文。ここでは から独立に抽出した乱数であり、はハイパーパラメーターである。

SGVB推定量を計算するにはカルバック・ライブラー情報量を計算できる必要がある。原論文ではこの値が計算できないときの為の推定量も提案しているが#原論文、本項では割愛する。

アルゴリズム
オートエンコーディング変分ベイズアルゴリズムは確率的勾配降下法によりSGVB推定量を極大化する、を求めるものである#原論文。以下で、はハイパーパラメーターである。

 標本  を入力として受け取る。
 、を初期化する。
 、が事前に定められた収束条件を満たすまで以下を繰り返す
 のサイズの部分集合をランダムに選ぶ
 各に対しをに従って選ぶ。
 を使って、を更新
 、を出力

変分オートエンコーダーの詳細

すでに述べたように、変分オートエンコーダーの学習アルゴリズムは、、、からのサンプリングが(D1)、(D2)、(E1)に従ってできるケースにおいてオートエンコーディング変分ベイズアルゴリズムを実行するというものである。

従って変分オートエンコーダーの学習アルゴリズムを書きくだす上で必要となる作業は、(D1)、(D2)、(E1)に従っているケースにおいてオートエンコーディング変分ベイズアルゴリズムにおけるSGVB推定量が具体的にどのような形になるのかを調べるだけである。

SGVB推定量の具体的な形

本節では変分オートエンコーダーのケースにおいてSGVB推定量

 　　　...(L1、再掲)
の具体的な形を求める。

(P2)、(E1)、(D2)より、
 、
とすると、 が正規分布の確率密度関数であることから、
 　　
である。ここではのデータ長であり、、、はそれぞれ、、の第成分である。

一方、(L1)の第2項を具体的に計算すると以下のようになる#原論文：

ここではのデータ長であり、、はそれぞれ、の第成分である。

まとめると、
 　　　...(L2)
ここで、

アルゴリズム
以上の結果から、変分オートエンコーダーは以下のようになる：

学習：
 オートエンコーディング変分ベイズアルゴリズムを実行。ただしとし、は(L2)のものを使う。

生成：
 学習済みのを入力として受けとる
 に従ってを選ぶ
 を計算する。
 に従ってを選び、を出力する。