VAEの再パラメーター化のトリックはどのように機能し、なぜそれが重要なのですか?


57

変分オートエンコーダー(VAE)の再パラメーター化トリックはどのように機能しますか?基礎となる数学を単純化せずに直感的で簡単な説明はありますか?そして、なぜ「トリック」が必要なのでしょうか?


5
答えの1つは、すべての正規分布がスケーリングされ、Normal(1、0)の変換されたバージョンであることに注意することです。Normal(mu、sigma)から描画するには、Normal(1、0)から描画し、sigma(スケール)で乗算し、mu(変換)を追加します。
修道士

@monk:(1,0)の代わりにNormal(0,1)である必要があります。そうでなければ、乗算とシフトは完全に干し草になります!
リカ

@ブリーズハ!はい、もちろんありがとう。
修道士

回答:


57

KingmaのNIPS 2015ワークショップスライドを読んだ後、ランダムノードを逆伝播するために再パラメーター化のトリックが必要であることに気付きました。

直感的には、VAEは元の形式で、真の事後のパラメトリックモデルq z ϕ x で近似されるランダムノードからサンプリングします。Backpropはランダムノードを通過できません。zq(zϕ,x)

新しいパラメータの導入私たちが再パラメータ化することを可能にするzのバックプロパゲーションは、確定ノードを流すことができるように。ϵz

オリジナルおよび再パラメータ化された形式


3
なぜ決定論が右側にあるのですか?z
bringingdownthegauss

2
そうではありませんが、それは「乱数の発生源」ではありません-この役割は引き継がれていϵ
quant_dev

この方法は2014年より前に複数回提案されていることに注意してください。blog.shakirm.com
2015/10

2
とてもシンプルで直感的!素晴らしい答えです!
セルヒ

2
残念ながら、そうではありません。ただし、元のフォームは、より高い分散で逆伝播できます。詳細は私の投稿から見つけることができます。
JP張

56

我々は、正規分布を有すると仮定によってパラメータ化されたθ、具体的にはq個のθX = Nをθ 1 。私たちは、以下の問題が解決したい θをqθqθ(x)=N(θ,1) これはもちろんかなり馬鹿げた問題であり、最適な θは明らかです。ただし、ここでは、このパラメータE q [ x 2 ]の勾配を計算する際に、再パラメータ化のトリックがどのように役立つかを理解したいだけです。

minθEq[x2]
θEq[x2]

θEq[x2]

θEq[x2]=θqθ(x)x2dx=x2θqθ(x)qθ(x)qθ(x)dx=qθ(x)θlogqθ(x)x2dx=Eq[x2θlogqθ(x)]

qθ(x)=N(θ,1)

θEq[x2]=Eq[x2(xθ)]

再パラメーター化のトリックは、勾配をとる分布がパラメーター依存しないように、期待値を書き換える方法です。これを実現するには、qの確率的要素をθから独立させる必要があります。そこで、我々は書くのxを通り 、X = θ + ε θqθx

x=θ+ϵ,ϵN(0,1)
Eq[x2]=Ep[(θ+ϵ)2]
pϵN(0,1)Eq[x2]
θEq[x2]=θEp[(θ+ϵ)2]=Ep[2(θ+ϵ)]

勾配を計算するこれらの2つの方法の分散を調べるIPythonノートブックを次に示します。 http://nbviewer.jupyter.org/github/gokererdogan/Notebooks/blob/master/Reparameterization%20Trick.ipynb


4
最初の方程式の「明白な」シータとは何ですか?
gwg

2
それを確認する1つの方法は、E [x ^ 2] = E [x] ^ 2 + Var(x)であることに注意することです。この場合はtheta ^ 2 + 1です。したがって、theta = 0はこの目的を最小化します。
ゴーカー

だから、それは問題に完全に依存していますか?たとえばmin_ \ theta E_q [| x | ^(1/4)]の場合、完全に異なる可能性がありますか?
アンヴァンロッサム

何が問題に依存していますか?最適なシータ?もしそうなら、はい、それは確かに問題次第です。
ゴーカー

θEq[x2]=Eq[x2(xθ)qθ(x)]θEq[x2]=Eq[x2(xθ)]

17

「再パラメータ化のトリック」の数学の合理的な例は、gokerの答えにありますが、動機付けが役立つ場合があります。(私はその答えにコメントする許可を持っていません。したがって、ここに別の答えがあります。)

Gθ

Gθ=θExqθ[]

Exqθ[Gθest(x)]

Gθest(x)=1qθ(x)θqθ(x)=θlog(qθ(x))

xqθGθestGθθ

GθestGθ

Gθxxqθ(x)1qθ(x)xGθqθGθestxqθθ、最適とはほど遠い場合があります(たとえば、任意に選択された初期値)。それは、彼がそれらを落とした場所の近くではなく、街灯の近くで彼が鍵を探す(それが彼が見る/サンプルできる場所だから)酔っ払った人の物語に少し似ています。

xϵpθGθp

Gθ=θEϵp[J(θ,ϵ)]=Eϵp[θJ(θ,ϵ)]
J(θ,ϵ)

θJ(θ,ϵ)pϵpθp

θJ(θ,ϵ)GθGθϵppϵJ

それがお役に立てば幸いです。


「1 /qθ(x)の係数は、これを考慮して推定値を拡大することですが、xのそのような値が表示されない場合、その拡大縮小は役に立ちません。」もっと説明してもらえますか?
czxttkl

qθxxGθest(x)1/qθ

10

まず、VAEで再パラメーター化のトリックが必要な理由を説明します。

VAEにはエンコーダーとデコーダーがあります。デコーダーは真の後部Z〜q(z∣ϕ、x)からランダムにサンプリングします。エンコーダーとデコーダーをニューラルネットワークとして実装するには、ランダムサンプリングを介して逆伝播する必要があります。これは、逆伝播がランダムノードを通過できないため問題です。この障害を克服するために、再パラメーター化トリックを使用します。

今、トリックに来ましょう。事後分布は正規分布しているため、別の正規分布で近似できます。Zを正規分布εで近似します。

ここに画像の説明を入力してください

しかし、これはどのように関連していますか?

今、代わりにその格言のZがからサンプリングされたQ(z|φ、x)は、私たちが言うことができZが、パラメータとる関数である(ε、(μ、L))及びこれらのμを、Lは、上位ニューラルネットワーク(エンコーダ)から来ています。したがって、バックプロパゲーションに必要なのは、µに対する偏導関数だけであり、Lおよびεは導関数の取得には無関係です。

ここに画像の説明を入力してください


この概念を理解するのに最適なビデオ。理解を深めるために完全なビデオを視聴することをお勧めしますが、再パラメータ化のトリックのみを理解したい場合は、8分から視聴してください。 youtube.com/channel/UCNIkB2IeJ-6AmZv7bQ1oBYg
シャーロック

9

確率的グラフィカルモデルに関するスタンフォードCS228コースで見つかった説明は非常に良いと思いました。ここで見つけることができます:https : //ermongroup.github.io/cs228-notes/extras/vae/

ここでは、便宜上/自分の理解のために重要な部分を要約/コピーしました(ただし、元のリンクを確認することを強くお勧めします)。

ϕEzq(z|x)[f(x,z)]

スコア関数推定器に精通している場合(REINFORCEはこの特殊なケースにすぎないと考えています)、それが解決する問題であることに気付くでしょう。ただし、スコア関数推定器の分散は大きく、モデルの学習に多くの場合困難をもたらします。

qϕ(z|x)

ϵp(ϵ)gϕ(ϵ,x)qϕ

例として、サンプリングする非常に単純なqを使用してみましょう。

zqμ,σ=N(μ,σ)
q
z=gμ,σ(ϵ)=μ+ϵσ
ϵN(0,1)

p(ϵ)

ϕEzq(z|x)[f(x,z)]=Eϵp(ϵ)[ϕf(x,g(ϵ,x))]

これは、重要な理由ではないが、ばらつきが小さい。説明については、付録のパートDを参照してくださいhttps : //arxiv.org/pdf/1401.4082.pdf


こんにちは、知っていますか、なぜ実装で、彼らは標準を2で割るのですか?(つまりstd = torch.exp(z_var / 2))再パラメータ化?
リカ

4

確率モデルがあります。そして、モデルのパラメータを回復したい。変分下限(VLB)を最適化する作業を減らします。これを行うには、次の2つのことを行う必要があります。

  • VLBを計算する
  • VLBの勾配を取得

著者は、両方にMonte Carlo Estimatorを使用することを提案しています。そして実際に、彼らはこのトリックを導入して、より正確なVLBのモンテカルログラディエントエスティメータを取得します。

それは単に数値的手法の改善です。


2

再パラメータ化のトリックは、勾配のMC推定量の分散を劇的に減らします。したがって、これは分散削減手法です。

ϕEq(z(i)x(i);ϕ)[logp(x(i)z(i),w)]

ϕEq(z(i)x(i);ϕ)[logp(x(i)z(i),w)]=Eq(z(i)x(i);ϕ)[logp(x(i)z(i),w)ϕlogqϕ(z)]
p(x(i)z(i),w)logp(x(i)z(i),w)は非常に大きく、値自体は負です。そのため、分散が大きくなります。

z(i)=g(ϵ(i),x(i),ϕ)

ϕEq(z(i)x(i);ϕ)[logp(x(i)z(i),w)]=Ep(ϵ(i))[ϕlogp(x(i)g(ϵ(i),x(i),ϕ),w)]

p(ϵ(i))p(ϵ(i))ϕ

z(i)z(i)=g(ϵ(i),x(i),ϕ)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.