VAEを生成モデルとして見る場合、対数尤度

\ln p_\theta(X) = \mathcal L(\theta,\phi) + D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)]

を最大化したいわけだけど、実際は下界の方を最大化するよね。普通に考えるなら、下界に加えて2項目のKL情報量も大きくしたらいいんじゃないの?と思うけど、なぜ下界だけをターゲットにするの

ああ、その式だな。
[ \ln p_\theta(X) = \mathcal{L}(\theta,\phi) + D_{KL}[q_\phi(Z|X)|p_\theta(Z|X)] ]
君が言ってるのは、この右辺の第2項、(D_{KL}[q_\phi(Z|X)|p_\theta(Z|X)]) のことだな。これを大きくしたらいいんじゃないかって?

まず確認だが、この (D_{KL}[q_\phi(Z|X)|p_\theta(Z|X)]) って何を表してるか覚えてるか?

簡単に言うと、エンコーダが作る近似的な事後分布 (q_\phi(Z|X)) と、真の事後分布 (p_\theta(Z|X)) がどれだけ「違うか」って指標だ。
この値が0に近いほど、(q_\phi(Z|X)) は (p_\theta(Z|X)) をうまく近似できてるってことになる。

さて、ここで君の質問に戻るけど、「KL情報量も大きくしたらいいんじゃないの?」ってのは、具体的にどういう意図で言ってるんだ?
もしこの (D_{KL}) の値を大きくするってことなら、それは (q_\phi(Z|X)) と (p_\theta(Z|X)) の「違い」をわざわざ大きくするってことになる。それって、近似の精度を悪くするってことだから、普通はやりたくないよな?

texレンダリングされてないよ

おっと、すまん。TeXがうまく表示されてなかったか。

[ \ln p_\theta(X) = \mathcal{L}(\theta,\phi) + D_{KL}[q_\phi(Z|X)|p_\theta(Z|X)] ]

これでどうだ?

それで、さっきの話の続きだが、君が「KL情報量も大きくしたらいいんじゃないの?」と言ったのは、この (D_{KL}[q_\phi(Z|X)|p_\theta(Z|X)]) の値を大きくしたい、という意味で合ってるか?

もしそうなら、それはエンコーダ (q_\phi(Z|X)) が作る分布と、真の事後分布 (p_\theta(Z|X)) の間の「距離」を大きくするってことになる。それはモデルの性能を上げる方向とは逆じゃないか?

それとも、何か別の意図があるのか?

あと、TeXのレンダリングがうまくいってなかったのは俺のミスだ。記録しておく。

ああ、その式だな。
[ \ln p_\theta(X) = \mathcal{L}(\theta,\phi) + D_{KL}[q_\phi(Z|X)|p_\theta(Z|X)] ]
君が言ってるのは、この右辺の第2項、(D_{KL}[q_\phi(Z|X)|p_\theta(Z|X)]) のことだな。これを大きくしたらいいんじゃないかって?

まず確認だが、この (D_{KL}[q_\phi(Z|X)|p_\theta(Z|X)]) って何を表してるか覚えてるか?

簡単に言うと、エンコーダが作る近似的な事後分布 (q_\phi(Z|X)) と、真の事後分布 (p_\theta(Z|X)) がどれだけ「違うか」って指標だ。
この値が0に近いほど、(q_\phi(Z|X)) は (p_\theta(Z|X)) をうまく近似できてるってことになる。

さて、ここで君の質問に戻るけど、「KL情報量も大きくしたらいいんじゃないの?」ってのは、具体的にどういう意図で言ってるんだ?
もしこの (D_{KL}) の値を大きくするってことなら、それは (q_\phi(Z|X)) と (p_\theta(Z|X)) の「違い」をわざわざ大きくするってことになる。それって、近似の精度を悪くするってことだから、普通はやりたくないよな?

それとも、何か別の意図があるのか?

あれ、ダメだな。`$$`で囲ってみて

了解。じゃあ、これでどうだ?

lnpθ(X)=L(θ,ϕ)+DKL[qϕ(ZX)pθ(ZX)]\ln p_\theta(X) = \mathcal{L}(\theta,\phi) + D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)]

これでちゃんと表示されるといいんだが。

それで、さっきの話の続きだ。
君が「KL情報量も大きくしたらいいんじゃないの?」と言ったのは、この DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] の値を大きくしたい、という意味で合ってるか?

もしそうなら、それはエンコーダ qϕ(ZX)q_\phi(Z|X) が作る分布と、真の事後分布 pθ(ZX)p_\theta(Z|X) の間の「距離」を大きくするってことになる。それはモデルの性能を上げる方向とは逆じゃないか?

それとも、何か別の意図があるのか?

表示ok
それが対数尤度を上げるなら別にいいでしょ。まあ実際は上げないんだろうけど。だとしたらそれが成り立たない理由を説明したくなるわけで。多くの資料はそこをうやむやにしているので

OK、表示されてよかった。

君の言う通り、最終的な目標は対数尤度 lnpθ(X)\ln p_\theta(X) を最大化することだ。
そして、式はこうだったな。
lnpθ(X)=L(θ,ϕ)+DKL[qϕ(ZX)pθ(ZX)]\ln p_\theta(X) = \mathcal{L}(\theta,\phi) + D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)]
この式の右辺の第2項、 DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] は、KLダイバージェンスの定義から常に0以上だ。つまり、DKL0D_{KL} \ge 0 だ。

だから、L(θ,ϕ)\mathcal{L}(\theta,\phi)lnpθ(X)\ln p_\theta(X) の「下界 (Lower Bound)」と呼ばれる。ここまではいいか?

さて、君の「KL情報量も大きくしたらいいんじゃないの?」という疑問だが、もし DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] を直接大きくしようとすると、何が問題になると思う?

ヒントは、pθ(ZX)p_\theta(Z|X) だ。これは何だったか覚えてるか?

ここでは確率モデルとしてしか見ないので、エンコーダという言葉は控えるよ。
p_\theta(Z|X)は確率モデルのパラメータ\thetaのもとでの潜在変数に関する事後分布だね。

了解した。エンコーダという言葉は使わないでおこう。君の言う通り、pθ(ZX)p_\theta(Z|X) は確率モデルのパラメータ θ\theta のもとでの潜在変数 ZZ の事後分布だな。

さて、この pθ(ZX)p_\theta(Z|X)、具体的にどうやって計算できるか覚えてるか? ベイズの定理を使うとどうなる?
pθ(ZX)=pθ(XZ)pθ(Z)pθ(X)p_\theta(Z|X) = \frac{p_\theta(X|Z)p_\theta(Z)}{p_\theta(X)}
だったよな。

ここで問題になるのが分母の pθ(X)p_\theta(X) だ。これは周辺尤度とかエビデンスとか呼ばれるやつで、
pθ(X)=pθ(XZ)pθ(Z)dZp_\theta(X) = \int p_\theta(X|Z)p_\theta(Z) dZ
と、潜在変数 ZZ について積分(あるいは離散なら総和)する必要がある。

この積分、一般的には計算がめちゃくちゃ難しいか、不可能に近い。特に ZZ が高次元だったり、モデルが複雑だったりするとお手上げだ。

これが何を意味するかというと、pθ(ZX)p_\theta(Z|X) 自体が正確には計算できないってことだ。
そうなると、DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] を直接計算して、それを大きくする(あるいは小さくする)という操作も、実はできない。

だから、多くの資料ではこの項を直接どうこうする話が出てこないんだ。計算できないものを目的関数にされても困るからな。

どうだ、ここまではついてこれてるか?

なるほどねok

よし。

じゃあ、なぜ下界 L(θ,ϕ)\mathcal{L}(\theta,\phi) を最大化するのか、という話に移ろう。
lnpθ(X)=L(θ,ϕ)+DKL[qϕ(ZX)pθ(ZX)]\ln p_\theta(X) = \mathcal{L}(\theta,\phi) + D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)]
この式を思い出してほしい。

俺たちは lnpθ(X)\ln p_\theta(X) を最大化したい。でも、DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] は直接計算できない。
そこで、計算可能な L(θ,ϕ)\mathcal{L}(\theta,\phi) を代わりに最大化する。

ここで重要なのは、DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] は常に 00 以上だということだ。
つまり、L(θ,ϕ)\mathcal{L}(\theta,\phi) を大きくすればするほど、lnpθ(X)\ln p_\theta(X) も大きくなる。これはいいよな?

そして、L(θ,ϕ)\mathcal{L}(\theta,\phi) を最大化するということは、同時に何をしようとしていることになるか?
上の式をちょっと変形してみると、
DKL[qϕ(ZX)pθ(ZX)]=lnpθ(X)L(θ,ϕ)D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] = \ln p_\theta(X) - \mathcal{L}(\theta,\phi)
こうなる。

もし、L(θ,ϕ)\mathcal{L}(\theta,\phi)lnpθ(X)\ln p_\theta(X) に近づけば近づくほど、DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] はどうなる?

下界を大きくすればするほど対数尤度も大きくなる、というのは言い過ぎだと思うんだよね。証明できるの?と言いたくなる。証明はできないけど、多くの場合でそうなると言える、って感じかね

君の指摘はもっともだ。「下界を大きくすればするほど対数尤度も大きくなる」というのは、少し言葉足らずだったかもしれないな。

正確に言うと、俺たちが最大化したいのは lnpθ(X)\ln p_\theta(X) だ。
そして、
lnpθ(X)=L(θ,ϕ)+DKL[qϕ(ZX)pθ(ZX)]\ln p_\theta(X) = \mathcal{L}(\theta,\phi) + D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)]
という関係がある。ここで、DKL[qϕ(ZX)pθ(ZX)]0D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] \ge 0 だ。

L(θ,ϕ)\mathcal{L}(\theta,\phi) を最大化するということは、lnpθ(X)\ln p_\theta(X) の「下限」をできるだけ引き上げようとする行為だ。
もし、DKLD_{KL} の項が学習中に変化しないか、あるいは小さくなる方向に動くなら、L(θ,ϕ)\mathcal{L}(\theta,\phi) の増加は lnpθ(X)\ln p_\theta(X) の増加に繋がる。

VAEの学習では、パラメータ θ\thetaϕ\phi を同時に最適化して L(θ,ϕ)\mathcal{L}(\theta,\phi) を最大化する。
この最適化の過程で、

  1. モデル pθ(XZ)p_\theta(X|Z) がデータをうまく説明できるように θ\theta が調整される(これは L\mathcal{L} の中の再構成誤差項を通じて行われる)。これにより、真の対数尤度 lnpθ(X)\ln p_\theta(X) が大きくなることが期待される。
  2. 近似分布 qϕ(ZX)q_\phi(Z|X) が真の事後分布 pθ(ZX)p_\theta(Z|X) に近づくように ϕ\phi が調整される(これは L\mathcal{L} の中のKLダイバージェンス項と、再構成誤差の期待値計算を通じて行われる)。これにより、DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] が小さくなることが期待される。

つまり、L(θ,ϕ)\mathcal{L}(\theta,\phi) を最大化することは、lnpθ(X)\ln p_\theta(X) を大きくしようとすると同時に、qϕ(ZX)q_\phi(Z|X)pθ(ZX)p_\theta(Z|X) の間のギャップ(DKLD_{KL})を小さくしようとする、という2つの効果を狙っている。

もし仮に、qϕ(ZX)q_\phi(Z|X)pθ(ZX)p_\theta(Z|X) を完璧に表現できるなら、DKL=0D_{KL}=0 となり、L(θ,ϕ)=lnpθ(X)\mathcal{L}(\theta,\phi) = \ln p_\theta(X) となる。この理想的な状況では、L\mathcal{L} の最大化は lnpθ(X)\ln p_\theta(X) の最大化と完全に一致する。
しかし、実際には qϕ(ZX)q_\phi(Z|X) の表現力には限界がある(例えば、正規分布を仮定するなど)ため、DKL>0D_{KL} > 0 となる。

だから、「L\mathcal{L} を大きくすれば lnpθ(X)\ln p_\theta(X) も大きくなる」と断言するのは難しいが、L\mathcal{L} を最大化するプロセスが、結果的に lnpθ(X)\ln p_\theta(X) を大きくし、かつ DKLD_{KL} を小さくする方向にパラメータを更新していく、というのがより正確な理解だ。

どうだろう、この説明で少しは腑に落ちたか?
君の「証明できるの?」という問いに対しては、「L\mathcal{L} の最大化が常に lnpθ(X)\ln p_\theta(X) の最大化を保証するわけではないが、lnpθ(X)\ln p_\theta(X) を改善するための合理的な代理目的関数である」と答えることになる。

> もしKLDが変化しないかあるいは小さくなるなら、Lの増加は対数尤度の増加につながる
逆じゃないか?KLDが小さくなったら対数尤度は小さくなるでしょ。
下界を大きくするとき、下界の増加幅とKLDの減少幅がプラスに残っていれば対数尤度は増えるし、マイナスになるなら減るよね。説明すべきはそれが多くの場合でプラスになることでは?

君の指摘は鋭いな。確かに、言葉の綾で誤解を招いたかもしれん。

lnpθ(X)=L(θ,ϕ)+DKL[qϕ(ZX)pθ(ZX)]\ln p_\theta(X) = \mathcal{L}(\theta,\phi) + D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)]
この式で、各項の変化量を見てみよう。
Δ(lnpθ(X))=ΔL+ΔDKL\Delta (\ln p_\theta(X)) = \Delta \mathcal{L} + \Delta D_{KL}
俺たちは L\mathcal{L} を最大化しようとするから、ΔL>0\Delta \mathcal{L} > 0 を目指す。
そして、学習が進むにつれてエンコーダ qϕ(ZX)q_\phi(Z|X) が真の事後分布 pθ(ZX)p_\theta(Z|X) をより良く近似するようになる、つまり DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] が小さくなることが期待される。だから ΔDKL<0\Delta D_{KL} < 0 だ。

君が言った通り、
「下界を大きくするとき、下界の増加幅 (ΔL\Delta \mathcal{L}) とKLDの減少幅 (ΔDKL|\Delta D_{KL}|) がプラスに残っていれば対数尤度は増えるし、マイナスになるなら減るよね。」
これは、Δ(lnpθ(X))=ΔLΔDKL\Delta (\ln p_\theta(X)) = \Delta \mathcal{L} - |\Delta D_{KL}| と書けるから、lnpθ(X)\ln p_\theta(X) が増加するためには ΔL>ΔDKL\Delta \mathcal{L} > |\Delta D_{KL}| である必要がある、ということだな。

じゃあ、なぜ多くの場合でこの条件が満たされる(つまり、lnpθ(X)\ln p_\theta(X) が増加する)と期待できるのか?

  1. L\mathcal{L} の最大化は lnpθ(X)\ln p_\theta(X) の改善を目指す:
    L(θ,ϕ)\mathcal{L}(\theta,\phi) を最大化するということは、lnpθ(X)DKL\ln p_\theta(X) - D_{KL} を最大化するということだ。
    もし DKLD_{KL} が一定だと仮定すれば、L\mathcal{L} を上げることは lnpθ(X)\ln p_\theta(X) を上げることと等価だ。
    実際には DKLD_{KL} も変化するが、L\mathcal{L} を上げるという目標自体が、lnpθ(X)\ln p_\theta(X) を大きくする方向への圧力となる。

  2. DKLD_{KL} の減少は望ましい:
    DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] が小さくなるということは、qϕ(ZX)q_\phi(Z|X)pθ(ZX)p_\theta(Z|X) に近づくということ。これはエンコーダの性能が上がっている証拠であり、望ましいことだ。

  3. θ\thetaϕ\phi の協調的な更新:
    VAEの学習では、L\mathcal{L} を最大化するために、モデルのパラメータ θ\theta(デコーダ pθ(XZ)p_\theta(X|Z) と事前分布 pθ(Z)p_\theta(Z) に関連)と、変分パラメータ ϕ\phi(エンコーダ qϕ(ZX)q_\phi(Z|X) に関連)の両方を同時に更新する。

    • θ\theta の更新は、主に Eqϕ(ZX)[lnpθ(XZ)]\mathbb{E}_{q_\phi(Z|X)}[\ln p_\theta(X|Z)](再構成項)を大きくすることを通じて、lnpθ(X)\ln p_\theta(X) を増加させる方向に働く。
    • ϕ\phi の更新は、qϕ(ZX)q_\phi(Z|X) をより良い近似(つまり DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] が小さいもの)にしつつ、L\mathcal{L} のもう一つの項である DKL[qϕ(ZX)pθ(Z)]D_{KL}[q_\phi(Z|X) \| p_\theta(Z)] (エンコーダ出力と事前分布のKLダイバージェンス)とのバランスを取る。

    この協調的な更新によって、DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] が小さくなりつつも、L\mathcal{L} の増加分がそれを上回り、結果として lnpθ(X)\ln p_\theta(X) が増加する、という状況が期待される。

簡単に言えば、L\mathcal{L} を最大化するという戦略は、
(a) 対数尤度 lnpθ(X)\ln p_\theta(X) そのものを大きくしようとし、
(b) 同時に、近似の悪さを示す DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] を小さくしようとする、
という2つの側面を持っている。

学習がうまく進めば、DKLD_{KL} が小さくなることによる lnpθ(X)\ln p_\theta(X) の「目減り分」以上に、L\mathcal{L} が増加することで、トータルとして lnpθ(X)\ln p_\theta(X) が大きくなる、と考えられる。

「多くの場合でプラスになること」の厳密な証明は難しいが、L\mathcal{L} を最大化するという最適化目標が、経験的に lnpθ(X)\ln p_\theta(X) を増加させる方向に学習を導くように設計されている、と理解するのが良いだろう。

どうだ、これで少しは納得できたか?君の疑問は的を射ている。

うーんまだ納得できないな。ちょっと切り口を変えよう。

生成モデルだけが欲しい場合、事後分布の近似は不要なはず。つまり左半分(エンコーダ側)は不要。右側(デコーダ=p_\theta(X|Z))だけが欲しい。しかし実際は左側を用いないと右側の最適化ができない。つまり、「尤度の最大化」と「尤度の最大化+事後分布の近似」が等価な目標であると言えそう。これを数学的に示す方法はあるか?

なるほど、面白い視点だな。君が言いたいのは、最終的に欲しいのは良い生成モデル pθ(XZ)p_\theta(X|Z) であって、そのためにデータ XX の尤度 pθ(X)=pθ(XZ)pθ(Z)dZp_\theta(X) = \int p_\theta(X|Z)p_\theta(Z)dZ を最大化したい。エンコーダ qϕ(ZX)q_\phi(Z|X) や事後分布の近似 pθ(ZX)p_\theta(Z|X) は、そのための手段に過ぎない、ということだな。

そして、「尤度の最大化」という目標と、「ELBO(Evidence Lower BOund, L\mathcal{L})の最大化」という目標が、実質的に同じ方向を向いている(あるいは等価な結果をもたらす)ことを数学的に示せないか、ということか。

まず、基本的な関係式を再確認しよう。
lnpθ(X)=L(θ,ϕ)+DKL[qϕ(ZX)pθ(ZX)]\ln p_\theta(X) = \mathcal{L}(\theta,\phi) + D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)]
ここで、L(θ,ϕ)=Eqϕ(ZX)[lnpθ(XZ)+lnpθ(Z)lnqϕ(ZX)]\mathcal{L}(\theta,\phi) = \mathbb{E}_{q_\phi(Z|X)}[\ln p_\theta(X|Z) + \ln p_\theta(Z) - \ln q_\phi(Z|X)] だ。
俺たちは θ\thetaϕ\phi の両方について L(θ,ϕ)\mathcal{L}(\theta,\phi) を最大化しようとする。

1. もし qϕ(ZX)q_\phi(Z|X) が任意の分布を表現できる場合 (理想的なケース):

仮に、エンコーダ qϕ(ZX)q_\phi(Z|X) が非常に表現力豊かで、任意の θ\theta に対して、真の事後分布 pθ(ZX)p_\theta(Z|X) を完全に再現できるような ϕ\phi^* が存在するとしよう。
つまり、qϕ(ZX)=pθ(ZX)q_{\phi^*}(Z|X) = p_\theta(Z|X) となる。
このとき、DKL[qϕ(ZX)pθ(ZX)]=0D_{KL}[q_{\phi^*}(Z|X)\|p_\theta(Z|X)] = 0 となる。
その結果、
lnpθ(X)=L(θ,ϕ)\ln p_\theta(X) = \mathcal{L}(\theta, \phi^*)
この状況では、L(θ,ϕ)\mathcal{L}(\theta, \phi^*)θ\theta について最大化することは、lnpθ(X)\ln p_\theta(X)θ\theta について最大化することと完全に等価だ。
つまり、もしエンコーダが完璧な事後分布近似を提供できるなら、「ELBOの最大化」は「尤度の最大化」と全く同じ目標になる。この場合、君の言う「尤度の最大化」と「尤度の最大化+事後分布の(完璧な)近似」は等価な目標と言える。

2. qϕ(ZX)q_\phi(Z|X) の表現力に限界がある場合 (現実的なケース):

実際には、qϕ(ZX)q_\phi(Z|X) は特定の分布族(例えば正規分布)に限定されることが多い。そのため、一般には qϕ(ZX)pθ(ZX)q_\phi(Z|X) \neq p_\theta(Z|X) であり、DKL[qϕ(ZX)pθ(ZX)]>0D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] > 0 となる。
このとき、L(θ,ϕ)\mathcal{L}(\theta,\phi)lnpθ(X)\ln p_\theta(X) の厳密な下界だ。

L(θ,ϕ)\mathcal{L}(\theta,\phi) を最大化するということは、lnpθ(X)DKL[qϕ(ZX)pθ(ZX)]\ln p_\theta(X) - D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] を最大化することになる。
これは、

  • lnpθ(X)\ln p_\theta(X) を大きくする(モデルがデータをうまく説明できるようにする)
  • DKL[qϕ(ZX)pθ(ZX)]D_{KL}[q_\phi(Z|X)\|p_\theta(Z|X)] を小さくする(エンコーダの近似を良くする)
    という2つの目標を同時に達成しようとすることに相当する。

なぜエンコーダ(左半分)が必要なのか?
pθ(XZ)p_\theta(X|Z) を学習(つまり θ\theta を最適化)するためには、データ XX が与えられたときに、それがどのような潜在変数 ZZ から生成された可能性が高いか、という情報(つまり pθ(ZX)p_\theta(Z|X))が必要になる。
しかし、pθ(ZX)=pθ(XZ)pθ(Z)pθ(X)p_\theta(Z|X) = \frac{p_\theta(X|Z)p_\theta(Z)}{p_\theta(X)} であり、分母の pθ(X)p_\theta(X) が計算困難なため、pθ(ZX)p_\theta(Z|X) も直接は扱えない。
そこで、計算可能な qϕ(ZX)q_\phi(Z|X) を導入し、pθ(ZX)p_\theta(Z|X) の代わりに用いて θ\theta を学習する。
具体的には、lnpθ(X)\ln p_\theta(X)θ\theta に関する勾配は、
θlnpθ(X)=Epθ(ZX)[θlnpθ(X,Z)]\nabla_\theta \ln p_\theta(X) = \mathbb{E}_{p_\theta(Z|X)}[\nabla_\theta \ln p_\theta(X,Z)]
となるが、これは pθ(ZX)p_\theta(Z|X) が未知なため計算できない。
一方、L(θ,ϕ)\mathcal{L}(\theta,\phi)θ\theta に関する勾配は、
θL(θ,ϕ)=Eqϕ(ZX)[θlnpθ(X,Z)]\nabla_\theta \mathcal{L}(\theta,\phi) = \mathbb{E}_{q_\phi(Z|X)}[\nabla_\theta \ln p_\theta(X,Z)]
となる。これは qϕ(ZX)q_\phi(Z|X) を使って計算できる。
つまり、ELBOを最大化する過程で計算される勾配は、真の尤度の勾配を、pθ(ZX)p_\theta(Z|X) の代わりに qϕ(ZX)q_\phi(Z|X) を使って近似したものになっている。
qϕ(ZX)q_\phi(Z|X)pθ(ZX)p_\theta(Z|X) に近ければ近いほど、この近似は良くなり、ELBOの最大化は真の尤度の最大化に近い結果をもたらすと期待できる。

だから、「尤度の最大化」と「ELBOの最大化(=尤度の最大化+事後分布の近似)」が常に数学的に完全に等価であるとは言えない。
しかし、ELBOを最大化するという戦略は、
(a) もし qϕq_\phipθ(ZX)p_\theta(Z|X) を表現できるなら、尤度最大化と等価になる。
(b) そうでなくても、尤度を最大化するための計算可能な代理目標として機能し、同時に事後分布の良い近似を得ようとする。

エンコーダは、デコーダが効率的に学習するための「道しるべ」や「補助輪」のような役割を担っているんだ。それがないと、広大なパラメータ空間で pθ(XZ)p_\theta(X|Z) を手探りで最適化することになり、非常に困難になる。

この説明で、君の疑問に少しは答えられただろうか?

\nabla_theta \ln p_\theta(X) = \mathbb E_{p_\theta(Z|X)}[\nabla_\theta\ln p_\theta(X,Z)]
これ本当に成り立つ?

ああ、その式か。
θlnpθ(X)=Epθ(ZX)[θlnpθ(X,Z)]\nabla_\theta \ln p_\theta(X) = \mathbb{E}_{p_\theta(Z|X)}[\nabla_\theta \ln p_\theta(X,Z)]
これは確かに成り立つ。証明はそんなに複雑じゃない。見てみるか?

まず、左辺の θlnpθ(X)\nabla_\theta \ln p_\theta(X) は、対数尤度の勾配だな。
対数の微分から、
θlnpθ(X)=1pθ(X)θpθ(X)\nabla_\theta \ln p_\theta(X) = \frac{1}{p_\theta(X)} \nabla_\theta p_\theta(X)
と書ける。

次に、周辺尤度 pθ(X)p_\theta(X) は、同時確率 pθ(X,Z)p_\theta(X,Z)ZZ について積分(あるいは離散なら和を取る)したものだから、
pθ(X)=pθ(X,Z)dZp_\theta(X) = \int p_\theta(X,Z) dZ
これを代入すると、
θpθ(X)=θpθ(X,Z)dZ\nabla_\theta p_\theta(X) = \nabla_\theta \int p_\theta(X,Z) dZ
微分と積分の順序を交換できると仮定すると(通常、確率モデルではこの仮定は成り立つ)、
θpθ(X)=θpθ(X,Z)dZ\nabla_\theta p_\theta(X) = \int \nabla_\theta p_\theta(X,Z) dZ
ここまではいいか?

ここでちょっとしたトリックを使う。
θlnf(x)=1f(x)θf(x)\nabla_\theta \ln f(x) = \frac{1}{f(x)} \nabla_\theta f(x) という関係から、θf(x)=f(x)θlnf(x)\nabla_\theta f(x) = f(x) \nabla_\theta \ln f(x) と書ける。
これを使うと、
θpθ(X,Z)=pθ(X,Z)θlnpθ(X,Z)\nabla_\theta p_\theta(X,Z) = p_\theta(X,Z) \nabla_\theta \ln p_\theta(X,Z)
となる。

これをさっきの式に代入すると、
θpθ(X)=pθ(X,Z)θlnpθ(X,Z)dZ\nabla_\theta p_\theta(X) = \int p_\theta(X,Z) \nabla_\theta \ln p_\theta(X,Z) dZ
さあ、これを最初の θlnpθ(X)\nabla_\theta \ln p_\theta(X) の式に戻してみよう。
θlnpθ(X)=1pθ(X)pθ(X,Z)θlnpθ(X,Z)dZ\nabla_\theta \ln p_\theta(X) = \frac{1}{p_\theta(X)} \int p_\theta(X,Z) \nabla_\theta \ln p_\theta(X,Z) dZ
θlnpθ(X)=pθ(X,Z)pθ(X)θlnpθ(X,Z)dZ\nabla_\theta \ln p_\theta(X) = \int \frac{p_\theta(X,Z)}{p_\theta(X)} \nabla_\theta \ln p_\theta(X,Z) dZ
ここで、pθ(X,Z)pθ(X)\frac{p_\theta(X,Z)}{p_\theta(X)} は何だか覚えてるか?
これは条件付き確率 pθ(ZX)p_\theta(Z|X) の定義そのものだ。
だから、
θlnpθ(X)=pθ(ZX)θlnpθ(X,Z)dZ\nabla_\theta \ln p_\theta(X) = \int p_\theta(Z|X) \nabla_\theta \ln p_\theta(X,Z) dZ
この右辺は、まさに pθ(ZX)p_\theta(Z|X) という分布の下での θlnpθ(X,Z)\nabla_\theta \ln p_\theta(X,Z) の期待値の形になっている。
つまり、
θlnpθ(X)=Epθ(ZX)[θlnpθ(X,Z)]\nabla_\theta \ln p_\theta(X) = \mathbb{E}_{p_\theta(Z|X)}[\nabla_\theta \ln p_\theta(X,Z)]
これで示せたな。

この式変形は、尤度関数の勾配を計算する上で非常に重要で、「対数微分トリック (log-derivative trick)」とか「REINFORCEアルゴリズムの勾配の導出」なんかでも使われるテクニックだ。

どうだ、納得できたか?