回答:
変分オートエンコーダ(VAE)は実装とトレーニングが簡単ですが、ディープラーニングと変分ベイズの概念を組み合わせているため、それらの説明はまったく簡単ではありません。また、ディープラーニングと確率モデリングコミュニティは同じ概念に対して異なる用語を使用します。したがって、VAEを説明するとき、統計モデルの部分に集中して、実際に実装する方法についての手がかりを読者に残さないか、またはその逆に、ネットワークアーキテクチャと損失関数に集中するリスクがあります。Kullback-Leiblerの用語は薄い空気から引き出された。ここでは、モデルから始めますが、実際にそれを実際に実装するか、他の誰かの実装を理解するのに十分な詳細を与えて、ここで妥協を試みます。
古典的な(スパース、ノイズ除去など)オートエンコーダーとは異なり、VAEはGANのような生成モデルです。生成モデルとは、入力空間xの確率分布を学習するモデルを意味します。これは、そのようなモデルをトレーニングした後、(近似の)p (x)からサンプリングできることを意味しますます。トレーニングセットが手書き数字(MNIST)で構成されている場合、トレーニング後の生成モデルは、トレーニングセット内の画像の「コピー」ではなくても、手書き数字のように見える画像を作成できます。
トレーニングセット内の画像の分布を学習すると、手書き数字のように見える画像は生成される可能性が高く、ジョリーロジャーまたはランダムノイズのように見える画像は発生する可能性が低くなります。つまり、ピクセル間の依存関係について学習することを意味します。画像が画像がMNISTのピクセルのグレースケール画像である場合、モデルはピクセルが非常に明るい場合、いくつかの隣接ピクセルがまた、明るいピクセルの長い斜めの線がある場合、このピクセルの上に別のより小さな水平線のピクセルがあるかもしれません(7)など
VAEは、潜在変数モデル:この手段は、784のピクセル強度(ランダムベクトル観測変数)は、ランダムベクトルの(おそらく非常に複雑な)関数としてモデル化される成分下位次元の、観測されていない(潜在的な)変数です。そのようなモデルはいつ意味がありますか?たとえば、MNISTの場合、手書き数字はxの次元よりもはるかに小さい次元の多様体に属していると考えられます。、784ピクセルの強度のランダムな配置の大多数は手書きの数字のように見えません。直観的には、ディメンションは少なくとも10(桁数)になると予想されますが、各桁はさまざまな方法で記述できるため、おそらくより大きくなります。最終的な画像の品質には重要ではない違いもありますが(たとえば、グローバルな回転と平行移動)、重要な違いがあります。したがって、この場合、潜在モデルは理にかなっています。これについては後で詳しく説明します。驚くべきことに、次元が約10であるべきだという直観を教えても、間違いなく2つの潜在変数を使用してVAEでMNISTデータセットをエンコードできることに注意してください(結果はきれいではありません)。理由は、1つの実変数でさえ、無限に多くのクラスをエンコードできるからです。なぜなら、可能なすべての整数値などを想定できるからです。もちろん、クラス間でかなりのオーバーラップがある場合(MNISTの9と8または7とIなど)、2つの潜在変数の最も複雑な関数でさえ、各クラスの明確に識別可能なサンプルを生成するのは不十分です。これについては後で詳しく説明します。
VAEは、多変量パラメトリック分布(ここで、はのパラメーター)を想定し、多変量分布のパラメーターを学習します。パラメトリックpdfの使用は、VAEのパラメーターの数がトレーニングセットの増加に制限なく増加するのを防ぎ、償却と呼ばれます VAEの用語集で(そうですね...)。
VAEは生成モデルであり、新しい画像を生成するために実際に使用されるVAEの唯一の部分はデコーダーであるため、デコーダーネットワークから始めます。エンコーダネットワークは、推論(トレーニング)時にのみ使用されます。
デコーダネットワークの目標は新しいランダムなベクトルを生成することである入力空間に属する潜在ベクトルの実現から出発して、すなわち、新たな画像、。これは、条件付き分布学習する必要があることを明確に意味します。VAEの場合、この分布は多変量ガウス1と見なされることがよくあります。
は、エンコーダーネットワークの重み(およびバイアス)のベクトルです。ベクトル及びデコーダネットワークによってモデル化された複合体、未知の非線形関数である:ニューラルネットワークは、強力な非線形関数approximatorsあります。
コメントで@amoebaが指摘したように、デコーダーと古典的な潜在変数モデルとの間には顕著な類似性があります:因子分析。因子分析では、モデルを次のように仮定します。
両方のモデル(FAとデコーダー)は、潜在変数z上の観測可能変数条件付き分布がガウス分布であり、z自体が標準ガウス分布であると仮定しています。違いは、デコーダーはpの平均(x | z)がzで線形であると仮定しないこと、また標準偏差が定数ベクトルであると仮定しないことです。それどころか、zの複雑な非線形関数としてモデル化します。この点で、非線形因子分析と見なすことができます。こちらをご覧くださいFAとVAEの間のこの関係についての洞察に富んだ議論。等方性共分散行列を持つFAはPPCAにすぎないため、これは線形オートエンコーダーがPCAに還元するというよく知られている結果とも関係しています。
私たちはどのように学ぶか:のは、デコーダに戻りましょうか?直感的には、トレーニングセットD nでx iを生成する可能性を最大化する潜在変数が必要です。言い換えると、データが与えられた場合、zの事後確率分布を計算したいのです。
zの前にと仮定し、p (x)(証拠)の計算は難しい(多次元積分)というベイジアン推論の通常の問題が残っています。さらに、ここでμ (z ; ϕ )は不明なので、とにかく計算できません。変分推論、変分オートエンコーダーに名前を付けるツールを入力してください。
変分推論は、非常に複雑なモデルの近似ベイジアン推論を実行するツールです。それはあまりに複雑なツールではありませんが、私の答えはすでに長すぎて、VIの詳細な説明には入りません。興味がある場合は、この回答とその中の参照を見ることができます:
VIは、パラメトリック分布群q (z | x、λ )で近似値を探すと言うだけで十分です。でです。上記のように、はファミリのパラメータです。ターゲット分布と間のKullback-Leibler発散を最小化するパラメーターを探します。
繰り返しになりますが、Kullback-Leibler発散の定義には証拠が含まれているため、これを直接最小化することはできません。ELBO(エビデンスロウアーボンド)の紹介と代数的操作の後、最終的に次のようになります。
ELBOは証拠の下限であるため(上記のリンクを参照)、ELBOを最大化することは、与えられたデータの尤度を最大化することとまったく同じではありません(結局、VIは近似ベイズ推定のためのツールです)が、正しい方向。
推論を行うために、パラメトリックファミリを指定する必要があります。ほとんどのVAEでは、多変量の無相関のガウス分布を選択します
これはに対して行ったのと同じ選択ですが、別のパラメトリックファミリを選択した可能性もあります。前と同様に、ニューラルネットワークモデルを導入することにより、これらの複雑な非線形関数を推定できます。このモデルは入力画像を受け入れ、潜在変数の分布のパラメーターを返すため、エンコーダーネットワークと呼びます。前と同様に、ニューラルネットワークモデルを導入することにより、これらの複雑な非線形関数を推定できます。このモデルは入力画像を受け入れ、潜在変数の分布のパラメーターを返すため、エンコーダーネットワークと呼びます。
推論ネットワークとも呼ばれ、これはトレーニング時にのみ使用されます。
上記のように、エンコーダーはと 近似する必要があるため、たとえば24個の潜在変数がある場合、エンコーダーの出力はベクトルです。エンコーダーには重み(およびバイアス)ます。学ぶためには、我々は最終的にパラメータの観点でELBOを書くことができとエンコーダとデコーダのネットワークだけでなく、トレーニングセットポイント:
最終的に結論を出すことができます。ELBOの反対側は、の関数として、と、VAEの損失関数として使用されます。SGDを使用してこの損失を最小限に抑えます。つまり、ELBOを最大化します。ELBOはエビデンスの下限であるため、これはエビデンスを最大化する方向に進み、トレーニングセットの画像と最適に類似した新しい画像を生成します。ELBOの最初の項は、トレーニングセットポイントの予想される負の対数尤度であるため、デコーダーがトレーニングに似た画像を生成するように促します。2番目の用語は正則化器として解釈できます。p (z )= Nに似た潜在変数の分布をエンコーダーが生成するように促します。。おおよその後部間Kullabck-Leiblerダイバージェンスの最小化:しかし、第1の確率モデルを導入することで、我々は、式全体がどこから来るのか理解とモデル事後。2
私たちが学んだ後はと最大にすることによって、、私たちは、エンコーダを捨てることができます。今から、ちょうどサンプル新しい画像を生成するためにおよびデコーダを通してそれを伝播します。デコーダーの出力は、トレーニングセットのものと同様の画像になります。
1この仮定は厳密には必要ではありませんが、VAEの説明を簡素化します。ただし、アプリケーションによっては、
2数学的な優雅さを備えたELBO表現は、VAE実践者にとっての2つの主要な痛みの原因を隠しています。一方、平均用語である。関係するニューラルネットワークのサイズとSGDアルゴリズムの収束率が低いことを考えると、反復ごとに(実際には、さらに悪いミニバッチごとに)複数のランダムサンプルを描画する必要があるため、非常に時間がかかります。VAEユーザーは、単一(!)のランダムサンプルでその期待値を計算することにより、この問題を非常に実用的に解決します。もう1つの問題は、バックプロパゲーションアルゴリズムを使用して2つのニューラルネットワーク(エンコーダーとデコーダー)をトレーニングするために、エンコーダーからデコーダーへの順方向伝搬に含まれるすべてのステップを区別できる必要があることです。デコーダーは決定論的ではないため(その出力を評価するには多変量ガウス分布から描画する必要があります)、微分可能なアーキテクチャであるかどうかを尋ねても意味がありません。これに対する解決策は、再パラメータ化のトリックです。