変分オートエンコーダー
テンプレート:Pathnav テンプレート:Machine learning bar 変分オートエンコーダー(テンプレート:Lang-en-short; VAE)はオートエンコーディング変分ベイズアルゴリズムに基づいて学習される確率項つきオートエンコーダ型ニューラルネットワークである。
ニューラルネットワークを用いた生成モデルの一種であり、深層潜在変数モデルの一種でもある。
オートエンコーディング変分ベイズアルゴリズムの概要
オートエンコーディング変分ベイズアルゴリズム(テンプレート:Lang-en-short; AEVB)は勾配推定値を用いた有向潜在変数モデルと推論モデルの同時最適化アルゴリズムである。
AEVBでは有向潜在変数モデル を推論モデル の導入による変分下界 最大化により最適化する。一般に変分下界の勾配 は intractable であるが、AEVBではこれをモンテカルロ法 () を用いた勾配の不偏推定量 で置き換え、確率的勾配降下法によりパラメータを最適化する。このとき の勾配推定・伝播に関する問題を reparameterization trick で解決する。
セッティング
標本 が各テンプレート:Mathに対し、以下で生成されると仮定する#原論文テンプレート:Rp:
- まず潜在変数テンプレート:Mathが何らかの確率密度関数に従って選ばれ、
- テンプレート:Mathがテンプレート:Mathに依存した何らかの確率密度関数に従って選ばれる。
ここでテンプレート:Mvarは何らかのパラメーターであり、テンプレート:Mvarの真の値テンプレート:Mvarは未知である。また、に従って値を選ぶのは計算量的に容易であるものとする。
一方、潜在変数の事後分布 は容易には計算できず、(容易に計算できる)確率密度関数 により、近似する事を考える(近似事後分布)#原論文テンプレート:Rp。ここではパラメーターである。
近似事後分布を用いると周辺対数尤度 は次のように変形できる:
右辺の第1項は変分下界 あるいはELBOと呼ばれ、第2項は事後分布-近似事後分布間のカルバック・ライブラー情報量に相当する。すなわち次の式が成立している:
ここで (ギブスの不等式)より、変分下界最大化は次の2つの意味を持つ:
- 近似事後分布の近似精度最大化()
- 生成モデルの尤度最大化()
ゆえに変分下界最大化は最尤推定の代替として利用できる。
目標
標本 に対する変分下界を最大化する を目標とする。すなわち次の式で表される:
アルゴリズム
変分下界は一般には計算が簡単ではない。そこで が適切な仮定を満たすという条件下で変分下界の推定量を導入する#原論文テンプレート:Rp。標本 に対し確率勾配法を用いてSGVB推定量を極大化しモデルの最適化をおこなう#原論文テンプレート:Rp。
他の推論アルゴリズムとの比較
本章で想定しているセッティングにおいて、既知の手法の有用性は限定的である#原論文テンプレート:Rp:
- 最尤法は本章のセッティングではが容易に計算できるケースでないと使えない。
- EMアルゴリズムはの計算が容易であるケースでないと使えない。
- 変分ベイズ法はが平均場近似できる場合にしか使えない。
- モンテカルロEMアルゴリズムは実行速度が遅い為大きなデータ集合に対しては使えない。
例えばがニューラルネットワークにより定義されているケースでは、上述した既知の手法は使えないが、本手法であれば適用できる。後述する変分オートエンコーダーはまさにこのケースであり、をニューラルネットワークにより定義している。
意義
この最適化により以下の事ができるようになる:
- 見つけたテンプレート:Mvarを使う事で、に従う確率変数テンプレート:Mvar、テンプレート:Mvarを生成する生成モデルを作成
- によりを推定
変分オートエンコーダーの概要
変分オートエンコーダーとは、オートエンコーディング変分ベイズアルゴリズムを使って学習するニューラルネットワーク(原論文では1層もしくは2層のパーセプトロン#原論文テンプレート:Rp)ベースの生成モデルである。
セッティング
変分オートエンコーダーでは、潜在変数テンプレート:Mathが従う確率密度関数が標準正規分布
- ...(D1)
に従っており#原論文テンプレート:Rp、テンプレート:Mvarの従う条件つき確率密度関数が
- 、ここで ...(D2)
という形であるものとする#原論文テンプレート:Rp。上ではパラメーターテンプレート:Mvarを持つニューラルネットワークである。
さらに事後分布を近似する条件つき確率密度関数として
- 、ここで …(E1)
という形のものを考える#原論文テンプレート:Rp。上ではパラメーターを持つニューラルネットワークである。
テンプレート:Mvarの次元はテンプレート:Mvarの次元より短く取る。これはを用いる事で、データテンプレート:Mvarをもっと短いデータテンプレート:Mvarに「圧縮」し、を用いる事でテンプレート:Mvarからテンプレート:Mvarを「復元」できる事を意味する(ただし実際にはやの後に正規乱数を取る操作があるので、「圧縮」したデータを「復元」しても元に戻らない)。このため 符号理論との類推から、をエンコーダー、をデコーダーと呼ぶ。
アルゴリズム
変分オートエンコーダーの学習アルゴリズムは与えられたデータ集合に対し、以上のような状況下でオートエンコーディング変分ベイズアルゴリズムを用いる事で、2つのニューラルネットワーク、のパラメーターテンプレート:Mvar、を決定するものである。
一方、変分オートエンコーダーの生成アルゴリズムでは、まずは(D1)式のように標準正規分布に従いテンプレート:Mvarを生成し、生成したテンプレート:Mvarと学習済みのテンプレート:Mvarを使って(D2)式のようにテンプレート:Mvarを生成する。
オートエンコーディング変分ベイズアルゴリズムの詳細
SGVB推定量
変分下界は一般には計算が簡単ではない。ゆえに変分下界の推定量であるSGVB推定量(Stochastic Gradient Variational Bayes estimator、確率的勾配変分ベイズ推定量)を導入する#原論文テンプレート:Rp。
仮定
SGVB推定量を導入する為、何らかの(容易に計算可能な)可微分関数と(容易にサンプルを抽出できる)確率分布 を用いて
- 、ここで ...(P1)
とする事で確率密度関数に従ったサンプルを抽出できる事を仮定する#原論文テンプレート:Rp。
例えばVAEの場合は(E1)より
- 、 ...(P2)
としてこの仮定を満たしている。ここで「」は成分毎の積である。
後でSGVB推定量を定義する際に仮定(P1)を使う事で、本来は確率分布で定義する部分を可微分で確定的な関数テンプレート:Mvarに置き換える事でSGVB推定量の可微分性を保証する。これによりSGVB推定量を微分して勾配法によりの最適解を求める事ができるようになる。原論文ではこのように確率分布を可微分な確定的関数に置き換えるテクニックをreparameterization trickと呼んでいる#原論文テンプレート:Rp。
推論量
簡単な計算により変分下界は
と書き換えられる事が示せる(ここでは期待値である)ので、仮定(P1)を用いる事で変分下界を推定するSGVB推定量を
- ...(L1)
により定義する#原論文テンプレート:Rp。ここで()は から独立に抽出した乱数であり、テンプレート:Mvarはハイパーパラメーターである。
SGVB推定量を計算するにはカルバック・ライブラー情報量を計算できる必要がある。原論文ではこの値が計算できないときの為の推定量も提案しているが#原論文テンプレート:Rp、本項では割愛する。
アルゴリズム
オートエンコーディング変分ベイズアルゴリズムは確率的勾配降下法によりSGVB推定量を極大化するテンプレート:Mvar、を求めるものである#原論文テンプレート:Rp。以下でテンプレート:Mvar、テンプレート:Mvarはハイパーパラメーターである。
- 標本 を入力として受け取る。
- テンプレート:Mvar、を初期化する。
- テンプレート:Mvar、が事前に定められた収束条件を満たすまで以下を繰り返す
- テンプレート:Mvarのサイズテンプレート:Mvarの部分集合テンプレート:Mvarをランダムに選ぶ
- 各に対しをに従って選ぶ。
- を使ってテンプレート:Mvar、を更新
- テンプレート:Mvar、を出力
変分オートエンコーダーの詳細
すでに述べたように、変分オートエンコーダーの学習アルゴリズムは、、、からのサンプリングが(D1)、(D2)、(E1)に従ってできるケースにおいてオートエンコーディング変分ベイズアルゴリズムを実行するというものである。
従って変分オートエンコーダーの学習アルゴリズムを書きくだす上で必要となる作業は、(D1)、(D2)、(E1)に従っているケースにおいてオートエンコーディング変分ベイズアルゴリズムにおけるSGVB推定量が具体的にどのような形になるのかを調べるだけである。
SGVB推定量の具体的な形
本節では変分オートエンコーダーのケースにおいてSGVB推定量
- ...(L1、再掲)
の具体的な形を求める。
(P2)、(E1)、(D2)より、
- 、
とすると、 が正規分布の確率密度関数であることから、
である。ここでテンプレート:Mvarはテンプレート:Mvarのデータ長であり、テンプレート:Mvar、テンプレート:Mvar、テンプレート:Mvarはそれぞれテンプレート:Mvar、テンプレート:Mvar、テンプレート:Mvarの第テンプレート:Mvar成分である。
一方、(L1)の第2項を具体的に計算すると以下のようになる#原論文テンプレート:Rp:
ここでテンプレート:Mvarはテンプレート:Mvarのデータ長であり、テンプレート:Mvar、テンプレート:Mvarはそれぞれテンプレート:Mvar、テンプレート:Mvarの第テンプレート:Mvar成分である。
まとめると、
- ...(L2)
ここで、
アルゴリズム
以上の結果から、変分オートエンコーダーは以下のようになる:
学習:
- オートエンコーディング変分ベイズアルゴリズムを実行。ただしとし、は(L2)のものを使う。
生成:
- 学習済みのを入力として受けとる
- に従ってテンプレート:Mvarを選ぶ
- を計算する。
- に従ってテンプレート:Mvarを選び、テンプレート:Mvarを出力する。
参考文献
- 原論文
- 関連論文
- 解説論文