変分オートエンコーダー

提供: testwiki
2023年7月24日 (月) 20:38時点におけるimported>Tarepanによる版 (追加: ELBO導出式)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

テンプレート:Pathnav テンプレート:Machine learning bar 変分オートエンコーダーテンプレート:Lang-en-short; VAE)はオートエンコーディング変分ベイズアルゴリズムに基づいて学習される確率項つきオートエンコーダニューラルネットワークである。

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

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

オートエンコーディング変分ベイズアルゴリズムテンプレート:Lang-en-short; AEVB)は勾配推定値を用いた有向潜在変数モデルと推論モデルの同時最適化アルゴリズムである。

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

セッティング

標本 X={𝐱(1),,𝐱(N)} が各テンプレート:Mathに対し、以下で生成されると仮定する#原論文テンプレート:Rp

ここでテンプレート:Mvarは何らかのパラメーターであり、テンプレート:Mvarの真の値テンプレート:Mvarは未知である。またpθ(𝐳)pθ(𝐱|𝐳)に従って値を選ぶのは計算量的に容易であるものとする。

一方、潜在変数の事後分布 pθ(𝐳|𝐱) は容易には計算できず、(容易に計算できる)確率密度関数 qϕ(𝐳|𝐱) により、近似する事を考える(近似事後分布#原論文テンプレート:Rp。ここでϕはパラメーターである。

近似事後分布を用いると周辺対数尤度 logpθ(𝐱) は次のように変形できる:

logpθ(𝐱)=𝔼qϕ(𝐳|𝐱)[logpθ(𝐱,𝐳)qϕ(𝐳|𝐱)]+𝔼qϕ(𝐳|𝐱)[logqϕ(𝐳|𝐱)pθ(𝐳|𝐱)]

右辺の第1項は変分下界 θ,ϕ(𝐱) あるいはELBOと呼ばれ、第2項は事後分布-近似事後分布間のカルバック・ライブラー情報量に相当する。すなわち次の式が成立している:

θ,ϕ(𝐱)=logpθ(𝐱)KL(qϕ(𝐳|𝐱)pθ(𝐳|𝐱))

ここで KL0ギブスの不等式)より、変分下界最大化は次の2つの意味を持つ:

  • 近似事後分布の近似精度最大化(KL0
  • 生成モデルの尤度最大化(argmaxθlogpθ(𝐱)

ゆえに変分下界最大化は最尤推定の代替として利用できる。

目標

標本 X に対する変分下界を最大化する (θ,ϕ) を目標とする。すなわち次の式で表される:

argmaxθ,ϕ 𝔼X[θ,ϕ(X)]=argmaxθ,ϕxXθ,ϕ(𝐱)

アルゴリズム

変分下界は一般には計算が簡単ではない。そこで qϕ(𝐳|𝐱) が適切な仮定を満たすという条件下で変分下界の推定量を導入する#原論文テンプレート:Rp標本 X に対し確率勾配法を用いてSGVB推定量を極大化しモデルの最適化をおこなう#原論文テンプレート:Rp

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

本章で想定しているセッティングにおいて、既知の手法の有用性は限定的である#原論文テンプレート:Rp

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

意義

この最適化により以下の事ができるようになる:

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

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

セッティング

変分オートエンコーダーでは、潜在変数テンプレート:Mathが従う確率密度関数pθ(𝐳)が標準正規分布

𝐳𝒩(0,I) ...(D1)

に従っており#原論文テンプレート:Rpテンプレート:Mvarの従う条件つき確率密度関数pθ(𝐱|𝐳)

𝐱𝒩(μD,σD2I)、ここで(μD,σD2)=Dθ(𝐳) ...(D2)

という形であるものとする#原論文テンプレート:Rp。上でDθ()はパラメーターテンプレート:Mvarを持つニューラルネットワークである。

さらに事後分布pθ(𝐳|𝐱)を近似する条件つき確率密度関数qϕ(𝐳|𝐱)として

𝐳𝒩(μE,σE2I)、ここで(μE,σE2)=Eϕ(𝐱)  …(E1)

という形のものを考える#原論文テンプレート:Rp。上でEϕ()はパラメーターϕを持つニューラルネットワークである。

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

アルゴリズム

変分オートエンコーダーの学習アルゴリズムは与えられたデータ集合X={𝐱(1),,𝐱(N)}に対し、以上のような状況下でオートエンコーディング変分ベイズアルゴリズムを用いる事で、2つのニューラルネットワークDθ()Eϕ()のパラメーターテンプレート:Mvarϕを決定するものである。

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

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

SGVB推定量

変分下界は一般には計算が簡単ではない。ゆえに変分下界の推定量であるSGVB推定量(Stochastic Gradient Variational Bayes estimator、確率的勾配変分ベイズ推定量)を導入する#原論文テンプレート:Rp

仮定

SGVB推定量を導入する為、何らかの(容易に計算可能な)可微分関数と(容易にサンプルを抽出できる)確率分布 を用いて

𝐳=gϕ(𝐱,ε)、ここでε   ...(P1)

とする事で確率密度関数qϕ(𝐳|𝐱)に従ったサンプルを抽出できる事を仮定する#原論文テンプレート:Rp

例えばVAEの場合は(E1)より

=𝒩(𝟎,I)gϕ(𝐱,ε)=μE+σE2ε   ...(P2)

としてこの仮定を満たしている。ここで「」は成分毎の積である。

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

推論量

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

θ,ϕ(𝐱)=𝔼qϕ(𝐳|𝐱)[logpθ(𝐱|𝐳))]KL(qϕ(𝐳|𝐱)p(𝐳))

と書き換えられる事が示せる(ここで𝔼[]は期待値である)ので、仮定(P1)を用いる事で変分下界を推定するSGVB推定量

~(θ,ϕ,𝐱,(ε())=1,,L)):=1L=1Llogpθ(𝐱|gϕ(𝐱,ε()))KL(qϕ(𝐳|𝐱)p(𝐳))   ...(L1)

により定義する#原論文テンプレート:Rp。ここでε()=1,,L)は から独立に抽出した乱数であり、テンプレート:Mvarはハイパーパラメーターである。

SGVB推定量を計算するにはカルバック・ライブラー情報量KL(qϕ(𝐳|𝐱)p(𝐳))を計算できる必要がある。原論文ではこの値が計算できないときの為の推定量も提案しているが#原論文テンプレート:Rp、本項では割愛する。

アルゴリズム

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

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

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

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

SGVB推定量の具体的な形

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

~(θ,ϕ,𝐱,(ε())=1,,L))=1L=1Llogpθ(𝐱|gϕ(𝐱,ε()))KL(qϕ(𝐳|𝐱)p(𝐳))   ...(L1、再掲)

の具体的な形を求める。

(P2)、(E1)、(D2)より、

(μE,σE2)=Eϕ(𝐱)(μD(),(σD())2)=Dθ(μE+σE2ε())

とすると、 pθ(𝐱|gϕ(𝐱,ε()))が正規分布𝒩(μD(),(σD())2I)の確率密度関数であることから、

logpθ(𝐱|gϕ(𝐱,ε()))=K2log2π12k=1K((xkμD,k())2(σD,k())2logσD,k())  

である。ここでテンプレート:Mvarテンプレート:Mvarのデータ長であり、テンプレート:Mvarテンプレート:Mvarテンプレート:Mvarはそれぞれテンプレート:Mvarテンプレート:Mvarテンプレート:Mvarの第テンプレート:Mvar成分である。

一方、(L1)の第2項を具体的に計算すると以下のようになる#原論文テンプレート:Rp

KL(qϕ(𝐱|𝐳)p(𝐳))=12j=1J(1μE,j2σE,j2+logσE,j2)

ここでテンプレート:Mvarテンプレート:Mvarのデータ長であり、テンプレート:Mvarテンプレート:Mvarはそれぞれテンプレート:Mvarテンプレート:Mvarの第テンプレート:Mvar成分である。


まとめると、

~(θ,ϕ,𝐱,(ε())=1,,L))=K2log2π1L=1Lk=1K((xkμD,k())2(σD,k())2logσD,k())12j=1J(1μE,j2σE,j2+logσE,j2)   ...(L2)

ここで、

(μE,σE2)=((μE,j)j=1,,J,((σE,j)j=1,,J)=Eϕ(𝐱)
(μD(),(σD())2)=((μD,j())j=1,,K,((σD,j())j=1,,K)=Dθ(μE+σE2ε())

アルゴリズム

以上の結果から、変分オートエンコーダーは以下のようになる:

学習:

  • オートエンコーディング変分ベイズアルゴリズムを実行。ただし=𝒩(𝟎,I)とし、~は(L2)のものを使う。

生成:

参考文献

関連項目