今日も元気にChatGPTに聞いてみます。
**変分ベイズ推定(Variational Bayesian Inference, VBI)**は、ベイズ推定において、事後分布を近似的に求めるための手法の一つです。ベイズ推定では、事前分布と観測データに基づいて事後分布を求めますが、実際の問題では、事後分布を解析的に正確に求めることが難しい場合が多くあります。変分ベイズ推定は、この事後分布を直接計算する代わりに、計算しやすい近似分布を使って推定を行います。
1. 変分ベイズ推定の目的
ベイズ推定では、観測データ X に基づいてパラメータ \theta の事後分布 P(\theta | X) を求めます。ベイズの定理によって事後分布は次のように表されます:
P(\theta | X) = \frac{P(X | \theta) P(\theta)}{P(X)}
ここで、P(\theta | X) は事後分布、P(X | \theta) は尤度、P(\theta) は事前分布、P(X) は周辺尤度です。しかし、周辺尤度 P(X) を計算するためには、以下の積分が必要です。
P(X) = \int P(X | \theta) P(\theta) d\theta
この積分は高次元のパラメータ空間を持つモデルでは計算が非常に難しくなるため、正確な事後分布を計算するのが困難です。
変分ベイズ推定では、事後分布を近似するために、ある簡単な関数族の中から近似分布 q(\theta) を使って事後分布を求めるというアプローチを取ります。これにより、計算が現実的な時間内に可能になります。
2. 変分ベイズ推定の流れ
変分ベイズ推定は、次の手順で事後分布を近似します。
ステップ1: 近似分布 q(\theta) の設定
事後分布 P(\theta | X) の代わりに、簡単に扱える関数族(通常はガウス分布など)から近似分布 q(\theta) を設定します。q(\theta) は事後分布に近い形になるように選ばれ、通常は次のようにパラメトリックな分布として仮定されます。
q(\theta) = q(\theta; \lambda)
ここで、\lambda は近似分布 q(\theta) のパラメータで、これを最適化して事後分布にできるだけ近づけます。
ステップ2: 変分推論
事後分布と近似分布の差を評価するために、カルバック・ライブラー(KL)ダイバージェンスという指標を使います。KLダイバージェンスは、2つの確率分布の差異を測る非対称な距離のようなものです。
KLダイバージェンス D_{KL}(q(\theta) || P(\theta | X)) は次のように定義されます。
D_{KL}(q(\theta) || P(\theta | X)) = \int q(\theta) \log \frac{q(\theta)}{P(\theta | X)} d\theta
変分ベイズ推定では、このKLダイバージェンスを最小化するように近似分布 q(\theta) のパラメータ \lambda を調整します。q(\theta) が事後分布に近づくほど、KLダイバージェンスは小さくなります。
ステップ3: エビデンス下界(ELBO)の最大化
直接的に P(X) を計算するのが困難なため、KLダイバージェンスの最小化は**エビデンス下界(Evidence Lower Bound, ELBO)**を最大化する問題に変換されます。ELBOは次のように表されます。
\text{ELBO} = \mathbb{E}_{q(\theta)}[\log P(X | \theta)] - D_{KL}(q(\theta) || P(\theta))
この式を最大化することで、KLダイバージェンスを最小化し、q(\theta) が事後分布に近くなるようにします。
ちょっといきなりELBOに飛んだのでわからなくなりました。P(X)の計算からKLやELBOの関係についてもう少し聞いてみます。
\log P(X) を KLダイバージェンスと ELBO に分解する途中式について、詳しく説明します。具体的には、変分ベイズ推定において、周辺尤度 P(X) のログを、近似分布を使ってどのように分解するのか、その過程を順を追って解説します。
背景
ベイズ推定では、事後分布 P(\theta | X) を計算したいのですが、周辺尤度 P(X) の計算が難しい問題がよくあります。これに対処するために、近似分布 q(\theta) を導入し、その近似を評価する方法として KLダイバージェンス と ELBO(エビデンス下界) を利用します。
最終的に、\log P(X) を KLダイバージェンスと ELBO の組み合わせに分解することで、効率的に近似を行います。
分解の目標
まず、\log P(X) を近似分布 q(\theta) を用いて次の形に分解することが目標です:
\log P(X) = D_{KL}(q(\theta) || P(\theta | X)) + \text{ELBO}
この式の左辺はデータ X の周辺尤度の対数で、右辺はKLダイバージェンスとELBOに分かれています。この分解の途中式を説明します。
周辺尤度 P(X) の導入
まず、ベイズの定理から事後分布は次のように表されます:
P(\theta | X) = \frac{P(X | \theta) P(\theta)}{P(X)}
ここで、P(X) は周辺尤度と呼ばれ、観測データ X が得られる確率を表します。これは、パラメータ \theta によらず全ての可能な \theta に対して尤度と事前分布を積分したものです:
P(X) = \int P(X | \theta) P(\theta) d\theta
周辺尤度のログの導入
次に、周辺尤度 P(X) の対数を考えます:
\log P(X) = \log \int P(X | \theta) P(\theta) d\theta
この積分は高次元の問題や複雑なモデルでは直接計算することが非常に難しいため、近似分布 q(\theta) を使ってこの式を変形します。
近似分布 q(\theta) の導入
直接計算が難しいので、近似分布 q(\theta) を導入し、\log P(X) の式を次のように書き換えます。このとき、対数の中の積分に近似分布 q(\theta) を掛けて分割します:
\log P(X) = \log \int q(\theta) \frac{P(X | \theta) P(\theta)}{q(\theta)} d\theta
この式は単に近似分布 q(\theta) を導入しただけですが、これによって計算がやりやすくなります。
Jensenの不等式の適用
次に、Jensenの不等式を使って、上記の式を対数の外に期待値として取り出します。Jensenの不等式を使うことで、次のように変形できます:
\log P(X) \geq \mathbb{E}_{q(\theta)} \left[ \log \frac{P(X | \theta) P(\theta)}{q(\theta)} \right]
この右辺が、ELBO(エビデンス下界)の定義です。つまり、周辺尤度 P(X) の対数は、近似分布 q(\theta) のもとで期待される値として下界(ELBO)を持ちます。
右辺の期待値 \mathbb{E}_{q(\theta)}[\cdot] は、近似分布 q(\theta) のもとでの期待値を表しています。これがELBOの基本形です。
ELBOの変形
次に、この期待値の式をELBOの形に変形していきます。右辺を分解して、次の2つの項に分けます:
\mathbb{E}_{q(\theta)} \left[ \log \frac{P(X | \theta) P(\theta)}{q(\theta)} \right] = \mathbb{E}_{q(\theta)}[\log P(X | \theta)] + \mathbb{E}_{q(\theta)} \left[ \log \frac{P(\theta)}{q(\theta)} \right]
- 第一項 \mathbb{E}_{q(\theta)}[\log P(X | \theta)] は、データの尤度に関する期待値です。これは、モデルがデータ X をどれだけよく説明しているかを示しています。
- 第二項 \mathbb{E}_{q(\theta)} \left[ \log \frac{P(\theta)}{q(\theta)} \right] は、事前分布 P(\theta) と近似分布 q(\theta) の間のKLダイバージェンスです。これは、q(\theta) が事前分布 P(\theta) からどれだけ離れているかを測ります。
第二項は、KLダイバージェンスとして次のように書き換えられます:
D_{KL}(q(\theta) || P(\theta)) = \mathbb{E}_{q(\theta)} \left[ \log \frac{q(\theta)}{P(\theta)} \right]
ELBOの分解
ELBOをさらに詳細に分解すると、次のようになります:
\text{ELBO} = \mathbb{E}_{q(\theta)}[\log P(X | \theta)] - D_{KL}(q(\theta) || P(\theta))
ここで:
- 第一項 \mathbb{E}_{q(\theta)}[\log P(X | \theta)] は、近似分布 q(\theta) に基づく観測データの尤度の期待値です。これはモデルがデータをどれだけよく説明しているかを示します。
- 第二項 D_{KL}(q(\theta) || P(\theta)) は、近似分布 q(\theta) と事前分布 P(\theta) のKLダイバージェンスで、q(\theta) が事前分布 P(\theta) からどれだけ離れているかを示します。
KLダイバージェンスとの関係
最後に、\log P(X) をKLダイバージェンスとELBOに分解します。P(\theta | X) と q(\theta) の間のKLダイバージェンスを次のように書きます:
D_{KL}(q(\theta) || P(\theta | X)) = \int q(\theta) \log \frac{q(\theta)}{P(\theta | X)} d\theta
これを用いると、次の関係が得られます:
\log P(X) = \text{ELBO} + D_{KL}(q(\theta) || P(\theta | X))
この式は、\log P(X) がKLダイバージェンスとELBOの和で表現できることを示しています。
(正直ここがあんまり理解できませんでした。文献を探してみようと思います。)
最終的な分解のまとめ
最終的に、\log P(X) は以下のように分解されます:
\log P(X) = D_{KL}(q(\theta) || P(\theta | X)) + \text{ELBO}
- KLダイバージェンス D_{KL}(q(\theta) || P(\theta | X)) は、近似分布 q(\theta) が真の事後分布 P(\theta | X) にどれだけ近いかを測る指標です。
- ELBO(エビデンス下界)は、\log P(X) の下界であり、これを最大化することでP(X) の近似が向上します。
まとめ
- 周辺尤度 P(X) の計算は難しいため、近似分布 q(\theta) を導入し、計算を簡単にする。
- Jensenの不等式を使って、\log P(X) をELBOに分解し、周辺尤度の下界を見つける。
- 最終的に、\log P(X) は KLダイバージェンス と ELBO に分解される。この分解を利用して、事後分布の計算を効率化します。
このアプローチにより、難しい積分問題を簡単に扱えるようになり、事後分布を近似することができます。
3. 変分ベイズ推定の特徴
-
計算の効率化: 事後分布を正確に計算するのが難しい問題に対して、計算可能な範囲での近似を提供します。これは、特に高次元の問題や複雑なモデルに対して有効です。
-
近似分布の選択: ガウス分布などの取り扱いが簡単な分布を選ぶことで、積分の計算を効率化し、現実的な時間内に推論が可能です。
-
KLダイバージェンス: KLダイバージェンスを最小化することで、近似分布と真の事後分布との距離を縮め、より良い推定を行います。