🎓 レベル:発展 | 重要度:B(標準)
📎 前提:確率的変分推論と再パラメータ化 | 関連:オートエンコーダとVAE(機械学習)
要点(BLUF)
- VAE(変分オートエンコーダ)の目的関数は、変分推論の ELBO そのもの。。
- エンコーダが 、デコーダが 、学習は再パラメータ化トリック(確率的変分推論と再パラメータ化)。KL 項はガウス同士なら閉形式です。
- ベイズ VI と深層生成モデルは同じ枠組み。実装で VAE の KL 正則化項の閉形式を検証します。
1. VAE は変分推論である
VAE は、各データ が潜在変数 から生成されたとみる確率モデルです。
の事後 は NN デコーダのせいで解析的に解けません。そこで変分推論: で事後を近似し、ELBO を最大化します(変分推論の考え方)。VAE の新しさは、 を各 ごとに最適化する代わりに、 を1つのエンコーダ NN で出すこと(償却推論 / amortized inference)。これで大量データに一気にスケールします。
2. ELBO の2項分解:再構成 − 正則化
VAE の ELBO(1データ点)は、 を入れて整理すると、解釈の良い2項に分かれます。
- 再構成項:エンコードした からデコーダが をどれだけ正確に戻せるか(大きいほど良い)。
- KL 正則化項:潜在の事後 を事前 へ引き戻す。潜在空間が滑らかで生成に使える形に整う。
この「再構成 − 正則化」は、ベイズの「尤度 × 事前」の対数版そのもの。VAE は ELBO を について同時に勾配上昇し、勾配は再パラメータ化 で流します。
3. コード:KL 正則化項の閉形式
VAE の KL 項は、ガウスの変分事後 と標準正規事前 の間なので、閉形式で書けます(だから VAE では KL をモンテカルロせず解析式で計算)。
import numpy as np
from scipy import stats
def kl_closed(mu, s): return 0.5*(s**2 + mu**2 - 1 - np.log(s**2))
def kl_mc(mu, s, N=2000000, seed=0):
rng = np.random.default_rng(seed); z = rng.normal(mu, s, N)
return np.mean(stats.norm(mu, s).logpdf(z) - stats.norm(0, 1).logpdf(z))
print("KL(N(μ,σ²) || N(0,1)) の 閉形式 vs モンテカルロ:")
for (mu, s) in [(0.0, 1.0), (1.0, 1.0), (0.0, 0.5), (2.0, 0.3)]:
print(f" μ={mu}, σ={s}: 閉形式={kl_closed(mu, s):.4f} MC={kl_mc(mu, s):.4f}")
出力:
KL(N(μ,σ²) || N(0,1)) の 閉形式 vs モンテカルロ:
μ=0.0, σ=1.0: 閉形式=0.0000 MC=0.0000
μ=1.0, σ=1.0: 閉形式=0.5000 MC=0.5009
μ=0.0, σ=0.5: 閉形式=0.3181 MC=0.3183
μ=2.0, σ=0.3: 閉形式=2.7490 MC=2.7497
出力の意味:閉形式とモンテカルロが一致します。( が事前と同じ)で KL が最小——KL 項は「潜在をなるべく標準正規へ寄せろ」という正則化として働きます。 が事前 から離れる・ が から外れるほど罰が増える。VAE はこの解析的 KL のおかげで、正則化項の勾配を低分散・低コストで計算でき、再構成項だけ再パラメータ化サンプルで推定します。
4. ベイズVIとVAEの対応
| ベイズ変分推論 | VAE |
|---|---|
| 近似する事後 | 潜在の事後 |
| 変分分布 | エンコーダ (NN・償却) |
| 尤度 | デコーダ (NN) |
| ELBO | ELBO 再構成 KL |
| 再パラメータ化(確率的変分推論と再パラメータ化) | 同じ trick で誤差逆伝播 |
flowchart LR X["データ x"] --> E["エンコーダ q(z|x)<br/>=変分分布"] E --> Z["z = μ+σ·ε(再パラメータ化)"] Z --> D["デコーダ p(x|z)<br/>=尤度"] D --> R["再構成項"] E --> K["KL(q(z|x)||p(z))<br/>=正則化項"] R --> L["ELBO = 再構成 − KL"] K --> L
要するに、第6章で学んだ変分推論は、深層生成モデルの中核技術と同じ数理です。詳しい NN 構造・実装は機械学習サイトの オートエンコーダとVAE に譲ります(フレームワーク API は要最新確認)。
まとめ(Phase 6)
第6章では、事後を最適化で近似する変分推論を学びました——ELBO と KL の分解(変分推論の考え方)、平均場と CAVI の分散過小評価(平均場近似と座標上昇法)、再パラメータ化による確率的 VI(確率的変分推論と再パラメータ化)、そして VAE との同一構造(本ノート)。MCMC(第4章)が「厳密だが遅い」のに対し、VI は「速いが近似」。両輪が揃いました。次章では、これらの計算法を道具に、回帰・一般化線形モデルをベイズで組み立てます。
⚠️ よくある誤解
- 「VAE はオートエンコーダの一種で、ベイズと無関係」ではない:目的関数は変分推論の ELBO そのもの。KL 正則化が確率モデルの証です。
- 「KL 項は経験的な正則化」ではない:ELBO の厳密な構成要素(事前 との KL)。勝手に足した罰則ではありません。
- 「VAE の事後は正確」ではない:平均場ガウス の近似なので、VI の分散過小評価(平均場近似と座標上昇法)を引き継ぎます。
- 「再構成だけ良ければよい」ではない:KL を無視すると潜在空間が崩れ生成に使えない(KL 項の役割)。両項のバランスが要。
関連ノート
- 確率的変分推論と再パラメータ化
- 変分推論の考え方(ELBOの導出)
- オートエンコーダとVAE(機械学習・VAE の実装と構造)
- 経験ベイズ(周辺尤度最大化=経験ベイズとELBOの関係)
- 第6章 変分推論 目次
- ベイズ統計テキスト 全体目次