🎓 レベル:発展 | 重要度:B(重要)
📎 前提:KLダイバージェンス | 関連:ベイズ統計・機械学習(変分推論・VAE)
要点(BLUF)
- 変分推論 は、計算困難なベイズ事後分布 を、扱いやすい分布族 で近似する方法。近似の良さを KL で測り、 を最小化します。
- 直接 KL を計算するには事後分布(=知りたいもの)が要るので、代わりに ELBO(証拠下界) を最大化します:
- は に依らない定数なので、ELBO 最大化=KL 最小化。かつ KL から ELBO (だから「下界」)。VAE など実装は機械学習・ベイズ分野へ。
1. なぜ ELBO か
ベイズ推論では事後 が欲しいですが、証拠 の積分が高次元で計算困難なことが多い。そこで近似分布 を持ち込み、 を事後にできるだけ近づけます。近さを KL で測ると ですが、これには未知の が含まれる。式変形すると
左辺は に依らない定数。よって ELBO を上げれば KL が下がる(和が一定だから)。ELBO は同時尤度と近似分布だけで計算でき、事後分布を知らなくても評価できます。これが変分推論を実行可能にする鍵です。
2. ELBO の2つの読み方
ELBO は2通りに分解でき、それぞれ直観を与えます。
第1項は「 が選ぶ でデータをどれだけうまく説明できるか」(再構成)、第2項は「 が事前 からどれだけ離れたか」の罰則。当てはまりと事前への近さのトレードオフで、これは AIC/MDL(情報量規準_AICとMDL)の「当てはまり vs 複雑さ」と同じ構図です。変分オートエンコーダ(VAE)の損失はまさにこの形。
3. コード:ELBO が事後平均で最大・対数証拠の下界(底 e, nat)
共役ガウス(事前 、尤度 、観測 )で真の事後が解析的に分かるので、ELBO を近似平均 について評価し、事後平均で最大かつ常に 以下になることを確かめます。
import numpy as np
from scipy.stats import norm
# 事前 N(0,1), 尤度 N(mu,1), 観測 x=2。真の事後は解析的(共役)
x_obs=2.0; sig2=1.0; tau0=1.0
s_post=1/(1/tau0+1/sig2) # 事後分散
mu_post=s_post*(0/tau0 + x_obs/sig2) # 事後平均
log_evidence=norm.logpdf(x_obs,0,np.sqrt(tau0+sig2)) # log p(x)
print(f"真の事後 N(mu={mu_post:.3f}, var={s_post:.3f}), log p(x)={log_evidence:.4f} nat")
# 近似 q=N(m, s_post) の平均 m を変えて ELBO を計算
def elbo(m, s):
rng=np.random.default_rng(0)
mu=rng.normal(m,np.sqrt(s),2000000) # q からサンプリングして期待値を近似
lp = norm.logpdf(x_obs,mu,1) + norm.logpdf(mu,0,1) - norm.logpdf(mu,m,np.sqrt(s))
return lp.mean()
print(f"{'q平均 m':>8}{'ELBO':>12}{'log p(x)-ELBO(=KL)':>22}")
for m in [0.0,0.5,1.0,mu_post,1.5]:
e=elbo(m,s_post)
print(f"{m:>8.3f}{e:>12.4f}{log_evidence-e:>22.4f}")
print(f"-> ELBO は m=事後平均{mu_post:.3f} で最大(KL最小=0)、常に log p(x) 以下")
出力:
真の事後 N(mu=1.000, var=0.500), log p(x)=-2.2655 nat
q平均 m ELBO log p(x)-ELBO(=KL)
0.000 -3.2642 0.9987
0.500 -2.5149 0.2494
1.000 -2.2655 0.0000
1.000 -2.2655 0.0000
1.500 -2.5161 0.2506
-> ELBO は m=事後平均1.000 で最大(KL最小=0)、常に log p(x) 以下
出力の意味:近似分布の平均 を真の事後平均 に合わせたとき ELBO が最大 となり、これは対数証拠 と一致(このとき近似が事後と完全一致するので KL)。 をずらすと ELBO は下がり、 がちょうど KL になっています( で 、 で )。ELBO は常に対数証拠以下の「下界」で、その差が近似の悪さ(KL)。だから ELBO を最大化すれば、証拠を知らなくても自動的に近似が事後に近づく——変分推論が成り立つ理由が数値で見えます。一般には事後と が一致しないので ELBO のままですが、その差を最小にする が最良の近似です。
4. 数式の直観的意味
変分推論は「難しい積分(証拠 )を、最適化に置き換える」発想です。ELBO はその橋で、情報理論的には「データの記述長()を、近似モデルで上から抑える符号長」とも読めます(無歪み符号化とKraft不等式 の交差エントロピー的な見方)。KL(KLダイバージェンス)の非対称性がここで効いていて、変分推論は (事後を で覆う向き)を使うため、近似 は事後の一つのモードに集中しがち(mode-seeking)。これは最尤で使う とは逆向きで、近似の性格が変わります。EM アルゴリズム・平均場近似・VAE・確率的変分推論といった実装と応用はベイズ統計・機械学習分野に委ね、ここでは「ELBO 最大化=KL 最小化=証拠の下界」という情報理論の核心だけを押さえます。
⚠️ よくある誤解
- 「ELBO は対数証拠と常に等しい」ではない:等しいのは が事後と一致するときだけ。一般には ELBO で、差が KL。
- 「変分推論は厳密な事後を与える」ではない:あくまで近似。選んだ分布族 の表現力が限界を決めます。
- 「KL の向きはどちらでもよい」ではない:変分推論は (mode-seeking)、最尤・EM は (mean-seeking)。向きで近似の挙動が変わります(KLダイバージェンス)。
- 「ELBO 最大化は大域最適に達する」ではない:ELBO は一般に非凸で、局所最適に陥りえます。初期化や手法に依存。
対応シミュレーション
- 本文のコードで ELBO の事後平均での最大性と対数証拠の下界性を実証済み。
関連ノート
- KLダイバージェンス(前提・KL とその非対称性)
- クロスエントロピーと最尤(最尤との KL の向きの違い)
- 情報量規準_AICとMDL(当てはまり vs 罰則の同じ構図)
- 第7章 機械学習・統計との接続 目次
- 情報理論 全体目次