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ϕ(Z∣X)∥pθ(Z∣X)]
これでちゃんと表示されるといいんだが。
それで、さっきの話の続きだ。
君が「KL情報量も大きくしたらいいんじゃないの?」と言ったのは、この DKL[qϕ(Z∣X)∥pθ(Z∣X)] の値を大きくしたい、という意味で合ってるか?
もしそうなら、それはエンコーダ qϕ(Z∣X) が作る分布と、真の事後分布 pθ(Z∣X) の間の「距離」を大きくするってことになる。それはモデルの性能を上げる方向とは逆じゃないか?
それとも、何か別の意図があるのか?
表示ok それが対数尤度を上げるなら別にいいでしょ。まあ実際は上げないんだろうけど。だとしたらそれが成り立たない理由を説明したくなるわけで。多くの資料はそこをうやむやにしているので
OK、表示されてよかった。
君の言う通り、最終的な目標は対数尤度 lnpθ(X) を最大化することだ。
そして、式はこうだったな。
lnpθ(X)=L(θ,ϕ)+DKL[qϕ(Z∣X)∥pθ(Z∣X)]
この式の右辺の第2項、 DKL[qϕ(Z∣X)∥pθ(Z∣X)] は、KLダイバージェンスの定義から常に0以上だ。つまり、DKL≥0 だ。
だから、L(θ,ϕ) は lnpθ(X) の「下界 (Lower Bound)」と呼ばれる。ここまではいいか?
さて、君の「KL情報量も大きくしたらいいんじゃないの?」という疑問だが、もし DKL[qϕ(Z∣X)∥pθ(Z∣X)] を直接大きくしようとすると、何が問題になると思う?
ヒントは、pθ(Z∣X) だ。これは何だったか覚えてるか?
ここでは確率モデルとしてしか見ないので、エンコーダという言葉は控えるよ。 p_\theta(Z|X)は確率モデルのパラメータ\thetaのもとでの潜在変数に関する事後分布だね。
了解した。エンコーダという言葉は使わないでおこう。君の言う通り、pθ(Z∣X) は確率モデルのパラメータ θ のもとでの潜在変数 Z の事後分布だな。
さて、この pθ(Z∣X)、具体的にどうやって計算できるか覚えてるか? ベイズの定理を使うとどうなる?
pθ(Z∣X)=pθ(X)pθ(X∣Z)pθ(Z)
だったよな。
ここで問題になるのが分母の pθ(X) だ。これは周辺尤度とかエビデンスとか呼ばれるやつで、
pθ(X)=∫pθ(X∣Z)pθ(Z)dZ
と、潜在変数 Z について積分(あるいは離散なら総和)する必要がある。
この積分、一般的には計算がめちゃくちゃ難しいか、不可能に近い。特に Z が高次元だったり、モデルが複雑だったりするとお手上げだ。
これが何を意味するかというと、pθ(Z∣X) 自体が正確には計算できないってことだ。
そうなると、DKL[qϕ(Z∣X)∥pθ(Z∣X)] を直接計算して、それを大きくする(あるいは小さくする)という操作も、実はできない。
だから、多くの資料ではこの項を直接どうこうする話が出てこないんだ。計算できないものを目的関数にされても困るからな。
どうだ、ここまではついてこれてるか?
なるほどねok
よし。
じゃあ、なぜ下界 L(θ,ϕ) を最大化するのか、という話に移ろう。
lnpθ(X)=L(θ,ϕ)+DKL[qϕ(Z∣X)∥pθ(Z∣X)]
この式を思い出してほしい。
俺たちは lnpθ(X) を最大化したい。でも、DKL[qϕ(Z∣X)∥pθ(Z∣X)] は直接計算できない。
そこで、計算可能な L(θ,ϕ) を代わりに最大化する。
ここで重要なのは、DKL[qϕ(Z∣X)∥pθ(Z∣X)] は常に 0 以上だということだ。
つまり、L(θ,ϕ) を大きくすればするほど、lnpθ(X) も大きくなる。これはいいよな?
そして、L(θ,ϕ) を最大化するということは、同時に何をしようとしていることになるか?
上の式をちょっと変形してみると、
DKL[qϕ(Z∣X)∥pθ(Z∣X)]=lnpθ(X)−L(θ,ϕ)
こうなる。
もし、L(θ,ϕ) が lnpθ(X) に近づけば近づくほど、DKL[qϕ(Z∣X)∥pθ(Z∣X)] はどうなる?
下界を大きくすればするほど対数尤度も大きくなる、というのは言い過ぎだと思うんだよね。証明できるの?と言いたくなる。証明はできないけど、多くの場合でそうなると言える、って感じかね
君の指摘はもっともだ。「下界を大きくすればするほど対数尤度も大きくなる」というのは、少し言葉足らずだったかもしれないな。
正確に言うと、俺たちが最大化したいのは lnpθ(X) だ。
そして、
lnpθ(X)=L(θ,ϕ)+DKL[qϕ(Z∣X)∥pθ(Z∣X)]
という関係がある。ここで、DKL[qϕ(Z∣X)∥pθ(Z∣X)]≥0 だ。
L(θ,ϕ) を最大化するということは、lnpθ(X) の「下限」をできるだけ引き上げようとする行為だ。
もし、DKL の項が学習中に変化しないか、あるいは小さくなる方向に動くなら、L(θ,ϕ) の増加は lnpθ(X) の増加に繋がる。
VAEの学習では、パラメータ θ と ϕ を同時に最適化して L(θ,ϕ) を最大化する。
この最適化の過程で、
- モデル pθ(X∣Z) がデータをうまく説明できるように θ が調整される(これは L の中の再構成誤差項を通じて行われる)。これにより、真の対数尤度 lnpθ(X) が大きくなることが期待される。
- 近似分布 qϕ(Z∣X) が真の事後分布 pθ(Z∣X) に近づくように ϕ が調整される(これは L の中のKLダイバージェンス項と、再構成誤差の期待値計算を通じて行われる)。これにより、DKL[qϕ(Z∣X)∥pθ(Z∣X)] が小さくなることが期待される。
つまり、L(θ,ϕ) を最大化することは、lnpθ(X) を大きくしようとすると同時に、qϕ(Z∣X) と pθ(Z∣X) の間のギャップ(DKL)を小さくしようとする、という2つの効果を狙っている。
もし仮に、qϕ(Z∣X) が pθ(Z∣X) を完璧に表現できるなら、DKL=0 となり、L(θ,ϕ)=lnpθ(X) となる。この理想的な状況では、L の最大化は lnpθ(X) の最大化と完全に一致する。
しかし、実際には qϕ(Z∣X) の表現力には限界がある(例えば、正規分布を仮定するなど)ため、DKL>0 となる。
だから、「L を大きくすれば lnpθ(X) も大きくなる」と断言するのは難しいが、L を最大化するプロセスが、結果的に lnpθ(X) を大きくし、かつ DKL を小さくする方向にパラメータを更新していく、というのがより正確な理解だ。
どうだろう、この説明で少しは腑に落ちたか?
君の「証明できるの?」という問いに対しては、「L の最大化が常に lnpθ(X) の最大化を保証するわけではないが、lnpθ(X) を改善するための合理的な代理目的関数である」と答えることになる。
> もしKLDが変化しないかあるいは小さくなるなら、Lの増加は対数尤度の増加につながる 逆じゃないか?KLDが小さくなったら対数尤度は小さくなるでしょ。 下界を大きくするとき、下界の増加幅とKLDの減少幅がプラスに残っていれば対数尤度は増えるし、マイナスになるなら減るよね。説明すべきはそれが多くの場合でプラスになることでは?
君の指摘は鋭いな。確かに、言葉の綾で誤解を招いたかもしれん。
lnpθ(X)=L(θ,ϕ)+DKL[qϕ(Z∣X)∥pθ(Z∣X)]
この式で、各項の変化量を見てみよう。
Δ(lnpθ(X))=ΔL+ΔDKL
俺たちは L を最大化しようとするから、ΔL>0 を目指す。
そして、学習が進むにつれてエンコーダ qϕ(Z∣X) が真の事後分布 pθ(Z∣X) をより良く近似するようになる、つまり DKL[qϕ(Z∣X)∥pθ(Z∣X)] が小さくなることが期待される。だから ΔDKL<0 だ。
君が言った通り、
「下界を大きくするとき、下界の増加幅 (ΔL) とKLDの減少幅 (∣ΔDKL∣) がプラスに残っていれば対数尤度は増えるし、マイナスになるなら減るよね。」
これは、Δ(lnpθ(X))=ΔL−∣ΔDKL∣ と書けるから、lnpθ(X) が増加するためには ΔL>∣ΔDKL∣ である必要がある、ということだな。
じゃあ、なぜ多くの場合でこの条件が満たされる(つまり、lnpθ(X) が増加する)と期待できるのか?
-
L の最大化は lnpθ(X) の改善を目指す:
L(θ,ϕ) を最大化するということは、lnpθ(X)−DKL を最大化するということだ。
もし DKL が一定だと仮定すれば、L を上げることは lnpθ(X) を上げることと等価だ。
実際には DKL も変化するが、L を上げるという目標自体が、lnpθ(X) を大きくする方向への圧力となる。 -
DKL の減少は望ましい:
DKL[qϕ(Z∣X)∥pθ(Z∣X)] が小さくなるということは、qϕ(Z∣X) が pθ(Z∣X) に近づくということ。これはエンコーダの性能が上がっている証拠であり、望ましいことだ。 -
θ と ϕ の協調的な更新:
VAEの学習では、L を最大化するために、モデルのパラメータ θ(デコーダ pθ(X∣Z) と事前分布 pθ(Z) に関連)と、変分パラメータ ϕ(エンコーダ qϕ(Z∣X) に関連)の両方を同時に更新する。- θ の更新は、主に Eqϕ(Z∣X)[lnpθ(X∣Z)](再構成項)を大きくすることを通じて、lnpθ(X) を増加させる方向に働く。
- ϕ の更新は、qϕ(Z∣X) をより良い近似(つまり DKL[qϕ(Z∣X)∥pθ(Z∣X)] が小さいもの)にしつつ、L のもう一つの項である DKL[qϕ(Z∣X)∥pθ(Z)] (エンコーダ出力と事前分布のKLダイバージェンス)とのバランスを取る。
この協調的な更新によって、DKL[qϕ(Z∣X)∥pθ(Z∣X)] が小さくなりつつも、L の増加分がそれを上回り、結果として lnpθ(X) が増加する、という状況が期待される。
簡単に言えば、L を最大化するという戦略は、
(a) 対数尤度 lnpθ(X) そのものを大きくしようとし、
(b) 同時に、近似の悪さを示す DKL[qϕ(Z∣X)∥pθ(Z∣X)] を小さくしようとする、
という2つの側面を持っている。
学習がうまく進めば、DKL が小さくなることによる lnpθ(X) の「目減り分」以上に、L が増加することで、トータルとして lnpθ(X) が大きくなる、と考えられる。
「多くの場合でプラスになること」の厳密な証明は難しいが、L を最大化するという最適化目標が、経験的に lnpθ(X) を増加させる方向に学習を導くように設計されている、と理解するのが良いだろう。
どうだ、これで少しは納得できたか?君の疑問は的を射ている。
うーんまだ納得できないな。ちょっと切り口を変えよう。 生成モデルだけが欲しい場合、事後分布の近似は不要なはず。つまり左半分(エンコーダ側)は不要。右側(デコーダ=p_\theta(X|Z))だけが欲しい。しかし実際は左側を用いないと右側の最適化ができない。つまり、「尤度の最大化」と「尤度の最大化+事後分布の近似」が等価な目標であると言えそう。これを数学的に示す方法はあるか?
なるほど、面白い視点だな。君が言いたいのは、最終的に欲しいのは良い生成モデル pθ(X∣Z) であって、そのためにデータ X の尤度 pθ(X)=∫pθ(X∣Z)pθ(Z)dZ を最大化したい。エンコーダ qϕ(Z∣X) や事後分布の近似 pθ(Z∣X) は、そのための手段に過ぎない、ということだな。
そして、「尤度の最大化」という目標と、「ELBO(Evidence Lower BOund, L)の最大化」という目標が、実質的に同じ方向を向いている(あるいは等価な結果をもたらす)ことを数学的に示せないか、ということか。
まず、基本的な関係式を再確認しよう。
lnpθ(X)=L(θ,ϕ)+DKL[qϕ(Z∣X)∥pθ(Z∣X)]
ここで、L(θ,ϕ)=Eqϕ(Z∣X)[lnpθ(X∣Z)+lnpθ(Z)−lnqϕ(Z∣X)] だ。
俺たちは θ と ϕ の両方について L(θ,ϕ) を最大化しようとする。
1. もし qϕ(Z∣X) が任意の分布を表現できる場合 (理想的なケース):
仮に、エンコーダ qϕ(Z∣X) が非常に表現力豊かで、任意の θ に対して、真の事後分布 pθ(Z∣X) を完全に再現できるような ϕ∗ が存在するとしよう。
つまり、qϕ∗(Z∣X)=pθ(Z∣X) となる。
このとき、DKL[qϕ∗(Z∣X)∥pθ(Z∣X)]=0 となる。
その結果、
lnpθ(X)=L(θ,ϕ∗)
この状況では、L(θ,ϕ∗) を θ について最大化することは、lnpθ(X) を θ について最大化することと完全に等価だ。
つまり、もしエンコーダが完璧な事後分布近似を提供できるなら、「ELBOの最大化」は「尤度の最大化」と全く同じ目標になる。この場合、君の言う「尤度の最大化」と「尤度の最大化+事後分布の(完璧な)近似」は等価な目標と言える。
2. qϕ(Z∣X) の表現力に限界がある場合 (現実的なケース):
実際には、qϕ(Z∣X) は特定の分布族(例えば正規分布)に限定されることが多い。そのため、一般には qϕ(Z∣X)=pθ(Z∣X) であり、DKL[qϕ(Z∣X)∥pθ(Z∣X)]>0 となる。
このとき、L(θ,ϕ) は lnpθ(X) の厳密な下界だ。
L(θ,ϕ) を最大化するということは、lnpθ(X)−DKL[qϕ(Z∣X)∥pθ(Z∣X)] を最大化することになる。
これは、
- lnpθ(X) を大きくする(モデルがデータをうまく説明できるようにする)
- DKL[qϕ(Z∣X)∥pθ(Z∣X)] を小さくする(エンコーダの近似を良くする)
という2つの目標を同時に達成しようとすることに相当する。
なぜエンコーダ(左半分)が必要なのか?
pθ(X∣Z) を学習(つまり θ を最適化)するためには、データ X が与えられたときに、それがどのような潜在変数 Z から生成された可能性が高いか、という情報(つまり pθ(Z∣X))が必要になる。
しかし、pθ(Z∣X)=pθ(X)pθ(X∣Z)pθ(Z) であり、分母の pθ(X) が計算困難なため、pθ(Z∣X) も直接は扱えない。
そこで、計算可能な qϕ(Z∣X) を導入し、pθ(Z∣X) の代わりに用いて θ を学習する。
具体的には、lnpθ(X) の θ に関する勾配は、
∇θlnpθ(X)=Epθ(Z∣X)[∇θlnpθ(X,Z)]
となるが、これは pθ(Z∣X) が未知なため計算できない。
一方、L(θ,ϕ) の θ に関する勾配は、
∇θL(θ,ϕ)=Eqϕ(Z∣X)[∇θlnpθ(X,Z)]
となる。これは qϕ(Z∣X) を使って計算できる。
つまり、ELBOを最大化する過程で計算される勾配は、真の尤度の勾配を、pθ(Z∣X) の代わりに qϕ(Z∣X) を使って近似したものになっている。
qϕ(Z∣X) が pθ(Z∣X) に近ければ近いほど、この近似は良くなり、ELBOの最大化は真の尤度の最大化に近い結果をもたらすと期待できる。
だから、「尤度の最大化」と「ELBOの最大化(=尤度の最大化+事後分布の近似)」が常に数学的に完全に等価であるとは言えない。
しかし、ELBOを最大化するという戦略は、
(a) もし qϕ が pθ(Z∣X) を表現できるなら、尤度最大化と等価になる。
(b) そうでなくても、尤度を最大化するための計算可能な代理目標として機能し、同時に事後分布の良い近似を得ようとする。
エンコーダは、デコーダが効率的に学習するための「道しるべ」や「補助輪」のような役割を担っているんだ。それがないと、広大なパラメータ空間で pθ(X∣Z) を手探りで最適化することになり、非常に困難になる。
この説明で、君の疑問に少しは答えられただろうか?
\nabla_theta \ln p_\theta(X) = \mathbb E_{p_\theta(Z|X)}[\nabla_\theta\ln p_\theta(X,Z)] これ本当に成り立つ?
ああ、その式か。
∇θlnpθ(X)=Epθ(Z∣X)[∇θlnpθ(X,Z)]
これは確かに成り立つ。証明はそんなに複雑じゃない。見てみるか?
まず、左辺の ∇θlnpθ(X) は、対数尤度の勾配だな。
対数の微分から、
∇θlnpθ(X)=pθ(X)1∇θpθ(X)
と書ける。
次に、周辺尤度 pθ(X) は、同時確率 pθ(X,Z) を Z について積分(あるいは離散なら和を取る)したものだから、
pθ(X)=∫pθ(X,Z)dZ
これを代入すると、
∇θpθ(X)=∇θ∫pθ(X,Z)dZ
微分と積分の順序を交換できると仮定すると(通常、確率モデルではこの仮定は成り立つ)、
∇θpθ(X)=∫∇θpθ(X,Z)dZ
ここまではいいか?
ここでちょっとしたトリックを使う。
∇θlnf(x)=f(x)1∇θf(x) という関係から、∇θf(x)=f(x)∇θlnf(x) と書ける。
これを使うと、
∇θpθ(X,Z)=pθ(X,Z)∇θlnpθ(X,Z)
となる。
これをさっきの式に代入すると、
∇θpθ(X)=∫pθ(X,Z)∇θlnpθ(X,Z)dZ
さあ、これを最初の ∇θlnpθ(X) の式に戻してみよう。
∇θlnpθ(X)=pθ(X)1∫pθ(X,Z)∇θlnpθ(X,Z)dZ
∇θlnpθ(X)=∫pθ(X)pθ(X,Z)∇θlnpθ(X,Z)dZ
ここで、pθ(X)pθ(X,Z) は何だか覚えてるか?
これは条件付き確率 pθ(Z∣X) の定義そのものだ。
だから、
∇θlnpθ(X)=∫pθ(Z∣X)∇θlnpθ(X,Z)dZ
この右辺は、まさに pθ(Z∣X) という分布の下での ∇θlnpθ(X,Z) の期待値の形になっている。
つまり、
∇θlnpθ(X)=Epθ(Z∣X)[∇θlnpθ(X,Z)]
これで示せたな。
この式変形は、尤度関数の勾配を計算する上で非常に重要で、「対数微分トリック (log-derivative trick)」とか「REINFORCEアルゴリズムの勾配の導出」なんかでも使われるテクニックだ。
どうだ、納得できたか?