変分推論(Variational Inference)の数理
解けない事後分布の積分を、最適化問題にすり替えて高速に近似する仕組みが分かれば、ELBO最大化とKL最小化が同じ操作だと腑に落ち、CAVI・SVI・VAEまで一本の原理で見通せます。
- 1.変分推論は真の事後分布p(z|x)を扱いやすい族qで近似する。ELBO(変分下界)の最大化が、qと真の事後とのKLダイバージェンス最小化と厳密に等価になるのが核心。
- 2.平均場近似は潜在変数を独立分解し、各因子を順に更新する座標上昇法(CAVI)で最適化する。各因子の最適解は他因子の期待値を取った対数同時分布の指数で閉じた形になる。
- 3.全データで期待値を取るCAVIは大規模データで重い。SVI(確率的VI)はミニバッチの自然勾配で局所・大域パラメータを交互更新し、スケールさせる。VAEはqをニューラルネットで償却したVIである。
問題設定:事後分布の積分が解けない
ベイズ推論では、観測 x を見たあとの潜在変数 z(パラメータや隠れ状態)への信念を、事後分布で表します。
p(z | x) = p(x | z)·p(z) / p(x), p(x) = ∫ p(x | z)·p(z) dz
分子は計算できますが、分母の周辺尤度 p(x) は z 全体にわたる積分で、混合モデルや深層生成モデルのように z が高次元・非共役だと解析的に解けません。事後分布は正規化定数 p(x) で割れないため、形は分かっても確率分布として扱えないのです。この困難の出方は MLE・MAP・ベイズ推論の関係 で触れた「積分が解けないから近似が要る」状況そのものです。
近似の二大流派は、事後からサンプルを引くMCMCと、事後を扱いやすい分布で近似する変分推論(VI)です。MCMCは漸近的に厳密ですが遅い。VIは推論を最適化問題にすり替えることで高速・大規模化に強く、深層学習との相性が良いのが特徴です。
ELBO:下界を押し上げる
VIの戦略は、扱いやすい分布族(変分族)q(z) を用意し、その中で真の事後 p(z|x) に最も近いものを選ぶことです。「近さ」はKLダイバージェンスで測ります。
KL( q(z) ‖ p(z|x) ) = E_q[ log q(z) − log p(z|x) ]
しかしこのKLには未知の p(z|x) が入っているので直接は最小化できません。そこで log p(x) を次のように分解します。
log p(x) = E_q[ log p(x,z) − log q(z) ] + KL( q(z) ‖ p(z|x) )
└──────── ELBO(q) ────────┘ └──── ≥ 0 ────┘
第1項を**変分下界(ELBO: Evidence Lower BOund)**と呼びます。log p(x) は q に依存しない定数で、KLは常に非負なので、ELBOは log p(x) の下界になります。ここから決定的な等価性が出ます。
log p(x) = ELBO(q) + KL(q‖p(z|x)) の左辺が q によらない定数である以上、ELBOを上げることはKLを下げることと厳密に等価です。真の事後を知らなくてもELBOは計算できる(同時分布 p(x,z) と q だけで書ける)ので、解けないKL最小化を、解けるELBO最大化に置き換えられる——これがVIの心臓部です。ELBOと log p(x) の差がそのまま近似の甘さ(KL)になります。
ELBOは目的別に2通りに書き直せます。
ELBO(q) = E_q[ log p(x|z) ] − KL( q(z) ‖ p(z) ) … 再構成 − 事前への正則化
= E_q[ log p(x,z) ] + H[q] … エネルギー + エントロピー
上段は「データをよく説明する」項と「事前から離れすぎない」項の綱引きで、この形がそのまま VAE の数理 の損失関数になります。下段のエントロピー H[q] は q が一点に潰れるのを防ぎます。
平均場近似:独立分解で扱いやすくする
変分族をどう選ぶか。最も基本的な選択が平均場(mean-field)近似で、潜在変数を互いに独立な因子の積に分解すると仮定します。
q(z) = Π_j q_j(z_j) (z_1, …, z_m が独立)
真の事後は変数間に相関を持つのが普通なので、これは強い仮定です。代償として最適化が劇的に簡単になります。各因子 q_j の関数形はあらかじめ固定せず、ELBOを最大にする形を変分法で導出します。q_j 以外を固定してELBOを q_j について最大化すると、最適因子は閉じた形で求まります。
log q_j*(z_j) = E_{q_{−j}}[ log p(x, z) ] + const
ここで E_{q_{−j}} は「z_j 以外の全因子で期待値を取る」操作です。右辺を指数化して正規化すれば q_j* が得られます。
モデルが指数型分布族かつ事前が共役なら、E_{q_{−j}}[log p(x,z)] は z_j について見慣れた分布の対数の形になり、q_j* は同じ族(ガウスならガウス、ディリクレならディリクレ)に閉じます。形を仮定しなくても更新式の中から自然に出てくるため、平均場VIは共役モデルで特に強力です。トピックモデルLDAの変分推論はこの典型例です。
CAVI:座標上昇で因子を順に更新
各因子の最適式は他因子の現在値に依存するため、一度には解けません。そこで因子を一つずつ、他を固定して順番に更新する**座標上昇変分推論(CAVI: Coordinate Ascent VI)**を使います。
収束するまで繰り返す:
for j = 1 .. m:
q_j(z_j) ∝ exp( E_{q_{−j}}[ log p(x, z) ] )
ELBO を計算して増加を確認
ELBOは各更新で単調増加し、座標上昇なので局所最適へ収束します(凸性は保証されないので初期値依存)。この構造は k-means・GMM・EMアルゴリズム のEMと瓜二つです。実際、EMは「潜在変数の事後 p(z|x) を厳密に求められる特殊ケースのVI」と見なせ、Eステップが q = p(z|x)(KL=0)、MステップがELBOのパラメータ最大化に対応します。事後が解けないときにそれを平均場 q で近似したものがCAVI、という関係です。
| 観点 | EM | CAVI(平均場VI) |
|---|---|---|
| 潜在の事後 | 厳密に p(z|x) を計算 | q(z)=Πq_j で近似 |
| Eステップ相当 | 事後を求める(KL=0) | 各 q_j を更新(KL>0 が残る) |
| 最大化する量 | 対数尤度(の下界) | ELBO |
| パラメータ | 点推定(MAP/MLE) | 分布として推定(不確実性込み) |
| 適用範囲 | 事後が解ける共役モデル | 事後が解けない一般モデル |
SVI:確率的勾配で大規模化する
CAVIの弱点は、因子を1回更新するたびに全データで期待値 E_{q_{−j}}[·] を取る点です。データ数 N が大きいと1イテレーションが重く、スケールしません。
確率的変分推論(SVI: Stochastic VI)はこれをミニバッチ化します。鍵はパラメータを2種に分けることです。データ点ごとの局所パラメータ(各 x_i の潜在 z_i)と、全データで共有する大域パラメータ(モデルパラメータ)。SVIは次を回します。
繰り返す:
1. データ点 i をランダムに1つ(またはミニバッチ)サンプル
2. その i の局所パラメータを CAVI で最適化
3. あたかも i が N 回現れたかのように大域パラメータの
「中間値」を作り、自然勾配で大域パラメータを更新
λ ← (1−ρ_t)·λ + ρ_t·λ̂ (ρ_t はステップ幅)
ステップ幅 ρ_t がロビンス・モンロー条件(Σρ_t = ∞、Σρ_t² < ∞)を満たせば収束します。SVIの理論的な要は自然勾配です。
ELBOを変分パラメータの普通の勾配(ユークリッド勾配)で上げると、分布間の距離と座標上の距離がずれて非効率になります。自然勾配は、フィッシャー情報行列でユークリッド勾配を補正し、**分布空間(KLで測った幾何)**での最急方向を指します。指数型分布族では自然勾配が自然パラメータと期待パラメータの差として簡潔に書け、フィッシャー行列の明示的な反転を避けられるため、SVIは実用的な速度を得ます。
VAEとの接続:償却推論とブラックボックスVI
CAVI/SVIはモデルごとに更新式を手で導く必要があり、非共役・深層モデルには使いにくい。ここで2つの一般化が効きます。
第一にブラックボックスVI。ELBOの勾配をモデル固有の式に頼らず、モンテカルロ推定で得ます。連続潜在変数なら再パラメータ化トリック(z = μ + σ⊙ε、ε~N(0,I))で q のサンプルに勾配を通し、低分散な勾配推定を実現します。詳細は VAE の数理 を参照してください。
第二に償却(amortized)推論。CAVIはデータ点ごとに局所パラメータを最適化し直しますが、VAEはエンコーダ q_φ(z|x) という1つのニューラルネットに「x を入れたら近似事後パラメータを返す」関数を学習させます。点ごとの最適化を関数近似で肩代わりするので、新しい x にも一回の順伝播で推論でき、勾配降下でφを学習できます。
| 手法 | 変分族 q の表現 | 最適化 | スケール/非共役対応 |
|---|---|---|---|
| CAVI | 平均場の閉形式因子 | 座標上昇・全データ | △(共役モデル向き) |
| SVI | 平均場+大域/局所分離 | 自然勾配・ミニバッチ | ○(大規模データ) |
| VAE(償却VI) | エンコーダNNが出力 | 確率的勾配・再パラメータ化 | ◎(深層・非共役) |
KLの方向(KL(q‖p))も性格を決めます。q が真の事後 p を過小被覆する向き——p がゼロに近い領域で q を大きくしないため、多峰の事後では1つの峰に張り付き、分散を過小評価しがちです。VIが「速いが不確実性を控えめに見積もる」と言われる根拠で、KLの非対称性を理解しておくべきポイントです(KLの定義は 情報理論とエントロピー を参照)。
まとめ:推論を最適化に変える一枚の地図
| 要素 | 正体 | 効く理由 |
|---|---|---|
| ELBO最大化 | KL(q‖p(z|x))最小化と等価 | log p(x) が定数なので下界を上げれば近づく |
| 平均場近似 | q=Πq_j の独立分解 | 各因子が閉形式で解け最適化が分解される |
| CAVI | 因子の座標上昇 | ELBO単調増加・EMの一般化 |
| SVI | 自然勾配+ミニバッチ | 全データ期待値を確率的に近似しスケール |
| VAE | 償却+再パラメータ化 | qをNNで関数近似し深層・非共役へ拡張 |
変分推論は「解けない積分(周辺化)」を「解ける最適化(ELBO最大化)」に変換する技術です。ELBO最大化とKL最小化の等価性が土台にあり、平均場で族を絞ってCAVIで解き、SVIでスケールさせ、VAEで深層モデルへ広げる——この一本の系譜を押さえると、ベイズ的な不確実性を実用的なコストで扱う設計判断ができるようになります。
AI/機械学習 Article
変分推論(Variational Inference)の数理を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
変分推論
比較で見る軸
難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 5
導入後に効く点
平均場近似は潜在変数を独立分解し、各因子を順に更新する座標上昇法(CAVI)で最適化する。各因子の最適解は他因子の期待値を取った対数同時分布の指数で閉じた形になる。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- AI/機械学習
- タグ数
- 5
判断チェックリスト
- 自社の用途が「変分推論 / ベイズ推論」に近いか確認する。
- 強みである「変分推論は真の事後分布p(z|x)を扱いやすい族qで近似する。ELBO(変分下界)の最大化が、qと真の事後とのKLダイバージェンス最小化と厳密に等価になるのが核心。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。