変分オートエンコーダーとは何ですか?また、どの学習タスクに使用されますか?


24

ごとに 、この、この答えは、オートエンコーダは、次元削減のためのニューラルネットワークを使用する技術であるように見えます。さらに、変分オートエンコーダー(「従来の」オートエンコーダーとの主な違い/利点)、およびこれらのアルゴリズムが使用される主な学習タスクも知りたいと思います。

回答:


37

変分オートエンコーダ(VAE)は実装とトレーニングが簡単ですが、ディープラーニングと変分ベイズの概念を組み合わせているため、それらの説明はまったく簡単ではありません。また、ディープラーニングと確率モデリングコミュニティは同じ概念に対して異なる用語を使用します。したがって、VAEを説明するとき、統計モデルの部分に集中して、実際に実装する方法についての手がかりを読者に残さないか、またはその逆に、ネットワークアーキテクチャと損失関数に集中するリスクがあります。Kullback-Leiblerの用語は薄い空気から引き出された。ここでは、モデルから始めますが、実際にそれを実際に実装するか、他の誰かの実装を理解するのに十分な詳細を与えて、ここで妥協を試みます。

VAEは生成モデルです

古典的な(スパース、ノイズ除去など)オートエンコーダーとは異なり、VAEはGANのような生成モデルです。生成モデルとは、入力空間xの確率分布p(x)を学習するモデルを意味します。これは、そのようなモデルをトレーニングした後、(近似の)p xからサンプリングできることを意味しますxp(x)ます。トレーニングセットが手書き数字(MNIST)で構成されている場合、トレーニング後の生成モデルは、トレーニングセット内の画像の「コピー」ではなくても、手書き数字のように見える画像を作成できます。

トレーニングセット内の画像の分布を学習すると、手書き数字のように見える画像は生成される可能性が高く、ジョリーロジャーまたはランダムノイズのように見える画像は発生する可能性が低くなります。つまり、ピクセル間の依存関係について学習することを意味します。画像が28×28=784画像がMNISTのピクセルのグレースケール画像である場合、モデルはピクセルが非常に明るい場合、いくつかの隣接ピクセルがまた、明るいピクセルの長い斜めの線がある場合、このピクセルの上に別のより小さな水平線のピクセルがあるかもしれません(7)など

VAEは潜在変数モデルです

VAEは、潜在変数モデル:この手段はx、784のピクセル強度(ランダムベクトル観測変数)は、ランダムベクトルの(おそらく非常に複雑な)関数としてモデル化されるzZ成分下位次元の、観測されていない(潜在的な)変数です。そのようなモデルはいつ意味がありますか?たとえば、MNISTの場合、手書き数字はxの次元よりもはるかに小さい次元の多様体に属していると考えられます。x、784ピクセルの強度のランダムな配置の大多数は手書きの数字のように見えません。直観的には、ディメンションは少なくとも10(桁数)になると予想されますが、各桁はさまざまな方法で記述できるため、おそらくより大きくなります。最終的な画像の品質には重要ではない違いもありますが(たとえば、グローバルな回転と平行移動)、重要な違いがあります。したがって、この場合、潜在モデルは理にかなっています。これについては後で詳しく説明します。驚くべきことに、次元が約10であるべきだという直観を教えても、間違いなく2つの潜在変数を使用してVAEでMNISTデータセットをエンコードできることに注意してください(結果はきれいではありません)。理由は、1つの実変数でさえ、無限に多くのクラスをエンコードできるからです。なぜなら、可能なすべての整数値などを想定できるからです。もちろん、クラス間でかなりのオーバーラップがある場合(MNISTの9と8または7とIなど)、2つの潜在変数の最も複雑な関数でさえ、各クラスの明確に識別可能なサンプルを生成するのは不十分です。これについては後で詳しく説明します。

VAEは、多変量パラメトリック分布q(z|x,λ)(ここで、λqのパラメーター)を想定し、多変量分布のパラメーターを学習します。zパラメトリックpdfの使用は、VAEのパラメーターの数がトレーニングセットの増加に制限なく増加するのを防ぎ、償却と呼ばれます VAEの用語集で(そうですね...)。

デコーダーネットワーク

enter image description here

VAEは生成モデルであり、新しい画像を生成するために実際に使用されるVAEの唯一の部分はデコーダーであるため、デコーダーネットワークから始めます。エンコーダネットワークは、推論(トレーニング)時にのみ使用されます。

デコーダネットワークの目標は新しいランダムなベクトルを生成することであるx入力空間に属するX潜在ベクトルの実現から出発して、すなわち、新たな画像、z。これは、条件付き分布p(x|z)学習する必要があることを明確に意味します。VAEの場合、この分布は多変量ガウス1と見なされることがよくあります。

pϕ(x|z)=N(x|μ(z;ϕ),σ(z;ϕ)2I)

ϕは、エンコーダーネットワークの重み(およびバイアス)のベクトルです。ベクトルμ(z;ϕ)及びσ(z;ϕ)デコーダネットワークによってモデル化された複合体、未知の非線形関数である:ニューラルネットワークは、強力な非線形関数approximatorsあります。


コメントで@amoebaが指摘したように、デコーダーと古典的な潜在変数モデルとの間には顕著な類似性があります:因子分析。因子分析では、モデルを次のように仮定します。

x|zN(Wz+μ,σ2I), zN(0,I)

両方のモデル(FAとデコーダー)は、潜在変数z上の観測可能変数x条件付き分布がガウス分布であり、z自体が標準ガウス分布であると仮定しています。違いは、デコーダーはpの平均x | zzで線形であると仮定しないこと、また標準偏差が定数ベクトルであると仮定しないことです。それどころか、zの複雑な非線形関数としてモデル化します。この点で、非線形因子分析と見なすことができます。こちらをご覧くださいzzp(x|z)zzFAとVAEの間のこの関係についての洞察に富んだ議論。等方性共分散行列を持つFAはPPCAにすぎないため、これは線形オートエンコーダーがPCAに還元するというよく知られている結果とも関係しています。


私たちはどのように学ぶか:のは、デコーダに戻りましょうかϕ?直感的には、トレーニングセットD nx iを生成する可能性を最大化する潜在変数zが必要です。言い換えると、データが与えられた場合、zの事後確率分布を計算したいのです。xiDnz

p(z|x)=pϕ(x|z)p(z)p(x)

zの前にN(0,I)と仮定し、p x証拠)の計算は難しい(多次元積分)というベイジアン推論の通常の問題が残っています。さらに、ここでμ z ; ϕ は不明なので、とにかく計算できません。変分推論、変分オートエンコーダーに名前を付けるツールを入力してください。zp(x)μ(z;ϕ)

VAEモデルの変分推論

変分推論は、非常に複雑なモデルの近似ベイジアン推論を実行するツールです。それはあまりに複雑なツールではありませんが、私の答えはすでに長すぎて、VIの詳細な説明には入りません。興味がある場合は、この回答とその中の参照を見ることができます:

/stats//a/270569/58675

VIは、パラメトリック分布群q z | xλ p(z|x)近似値を探すと言うだけで十分です。q(z|x,λ)でです。上記のように、λはファミリのパラメータです。ターゲット分布p(z|x)q(z|x,λ)間のKullback-Leibler発散を最小化するパラメーターを探します。

minλD[p(z|x)||q(z|x,λ)]

繰り返しになりますが、Kullback-Leibler発散の定義には証拠が含まれているため、これを直接最小化することはできません。ELBO(エビデンスロウアーボンド)の紹介と代数的操作の後、最終的に次のようになります。

ELBO(λ)=Eq(z|x,λ)[logp(x|z)]D[(q(z|x,λ)||p(z)]

ELBOは証拠の下限であるため(上​​記のリンクを参照)、ELBOを最大化することは、λ与えられたデータの尤度を最大化することとまったく同じではありません(結局、VIは近似ベイズ推定のためのツールです)が、正しい方向。

推論を行うために、パラメトリックファミリq(z|x,λ)を指定する必要があります。ほとんどのVAEでは、多変量の無相関のガウス分布を選択します

q(z|x,λ)=N(z|μ(x),σ2(x)I)

これはに対してp(x|z)行ったのと同じ選択ですが、別のパラメトリックファミリを選択した可能性もあります。前と同様に、ニューラルネットワークモデルを導入することにより、これらの複雑な非線形関数を推定できます。このモデルは入力画像を受け入れ、潜在変数の分布のパラメーターを返すため、エンコーダーネットワークと呼びます。前と同様に、ニューラルネットワークモデルを導入することにより、これらの複雑な非線形関数を推定できます。このモデルは入力画像を受け入れ、潜在変数の分布のパラメーターを返すため、エンコーダーネットワークと呼びます。

エンコーダーネットワーク

推論ネットワークとも呼ばれ、これはトレーニング時にのみ使用されます。

enter image description here

上記のように、エンコーダーはμ(x)σ(x)近似する必要があるため、たとえば24個の潜在変数がある場合、エンコーダーの出力はd=48ベクトルです。エンコーダーには重み(およびバイアス)θます。学ぶためにはθ、我々は最終的にパラメータの観点でELBOを書くことができθϕエンコーダとデコーダのネットワークだけでなく、トレーニングセットポイント:

ELBO(θ,ϕ)=iEqθ(z|xi,λ)[logpϕ(xi|z)]D[(qθ(z|xi,λ)||p(z)]

最終的に結論を出すことができます。ELBOの反対側は、の関数として、θϕ、VAEの損失関数として使用されます。SGDを使用してこの損失を最小限に抑えます。つまり、ELBOを最大化します。ELBOはエビデンスの下限であるため、これはエビデンスを最大化する方向に進み、トレーニングセットの画像と最適に類似した新しい画像を生成します。ELBOの最初の項は、トレーニングセットポイントの予想される負の対数尤度であるため、デコーダーがトレーニングに似た画像を生成するように促します。2番目の用語は正則化器として解釈できます。p z = Nに似た潜在変数の分布をエンコーダーが生成するように促します。p(z)=N(0,I)。おおよその後部間Kullabck-Leiblerダイバージェンスの最小化:しかし、第1の確率モデルを導入することで、我々は、式全体がどこから来るのか理解qθ(z|x,λ)とモデル事後p(z|x,λ)2

私たちが学んだ後はθϕ最大にすることによって、ELBO(θ,ϕ)、私たちは、エンコーダを捨てることができます。今から、ちょうどサンプル新しい画像を生成するためにzN(0,I)およびデコーダを通してそれを伝播します。デコーダーの出力は、トレーニングセットのものと同様の画像になります。

参考資料と詳細資料


1この仮定は厳密には必要ではありませんが、VAEの説明を簡素化します。ただし、アプリケーションによっては、pϕ(x|z)xp

2数学的な優雅さを備えたELBO表現は、VAE実践者にとっての2つの主要な痛みの原因を隠しています。一方、平均用語であるEqθ(z|xi,λ)[logpϕ(xi|z)]qθ(z|xi,λ)。関係するニューラルネットワークのサイズとSGDアルゴリズムの収束率が低いことを考えると、反復ごとに(実際には、さらに悪いミニバッチごとに)複数のランダムサンプルを描画する必要があるため、非常に時間がかかります。VAEユーザーは、単一(!)のランダムサンプルでその期待値を計算することにより、この問題を非常に実用的に解決します。もう1つの問題は、バックプロパゲーションアルゴリズムを使用して2つのニューラルネットワーク(エンコーダーとデコーダー)をトレーニングするために、エンコーダーからデコーダーへの順方向伝搬に含まれるすべてのステップを区別できる必要があることです。デコーダーは決定論的ではないため(その出力を評価するには多変量ガウス分布から描画する必要があります)、微分可能なアーキテクチャであるかどうかを尋ねても意味がありません。これに対する解決策は、再パラメータ化のトリックです。


1
コメントは詳細なディスカッション用ではありません。この会話はチャットに移動さました
gung-モニカの回復

2
+6。私はここに賞金を置いたので、うまくいけばあなたはいくつかの追加の賛成票を得るでしょう。この投稿で何かを改善したい場合は(書式設定のみであっても)今が良いタイミングです。すべての編集がこのスレッドをフロントページに突き上げ、より多くの人々に賞金に注意を払わせます。それとは別に、FAモデルのEM推定とVAEトレーニングの概念的な関係についてもう少し考えていました。VAEトレーニングがEMにどのように似ているかについて詳しく説明する講義スライドにリンクしますが、この答えにその直感の一部を取り入れることは素晴らしいことです。
アメーバは、モニカを復活させる

(私はそれについていくつか読んで、ここでFA / PPCAに焦点を当てた「直感的/概念的な」答えを書くことを考えています<-> EM <-> VAEトレーニングの観点からのVAE対応私は、だから私はむしろ他の誰かがそれを書いたのだ:-) ...公式の答えのための十分を知っている
アメーバは回復モニカ言う

報奨金をありがとう!いくつかの主要な編集が実装されました。ただし、EMについて十分に理解していないため、EMに関することは
扱い
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.