「機械学習/変分ベイズ法」の編集履歴(バックアップ)一覧はこちら
「機械学習/変分ベイズ法」(2009/11/28 (土) 00:09:06) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
#contents(fromhere=true)
**この項の問題点
この項は未完成であり重大な間違いを含んでいる可能性があります。
数学的な厳密さはありません。式変形の途中で確率分布や確率密度関数がきちんと定義されているのか疑わしいです。また全体的に説明不足です。
**概要
**問題設定
各記号については[[EMアルゴリズム>機械学習/EMアルゴリズム]]の項を参照してください。
**導出
全ての確率パラメータ$$\theta$$に事前分布$$p(\theta)$$が与えられた、完全なベイズモデルを考えます。
ここでの目的は周辺尤度$$p(y)$$と事後分布$$p(x,\theta \mid y)$$を求めることです。
対数周辺尤度$${\rm L}(y)=\log p(y)$$を変形していきます。
#math(){{{{{
\begin{eqnarray}
{\rm L}(y) &=& \log p(y)\\
&=& \log \int \sum_{x} p(x,y,\theta) d\theta \\
&=& \log \int \sum_{x} q(x,\theta) \frac{p(x,y,\theta)}{q(x,\theta)} d\theta \\
&\geq& \int \sum_{x} q(x,\theta) \log \frac{p(x,y,\theta)}{q(x,\theta)} d\theta \\
&=& \int \sum_{x} q(x,\theta) \log p(x,y,\theta) d\theta - \int \sum_{x} q(x,\theta) \log q(x,\theta) d\theta \\
&=& E_{q}[\log p(x,y,\theta)] + H[q] \\
&=& F[q]
\end{eqnarray}
}}}}}
上の式の途中でJensenの不等式を用いています。$${\rm H}[q]$$はエントロピーです。差は$$q(x,\theta)$$と$$p(x,\theta \mid y)$$のKullback–Leiblerダイバージェンスとなります。
#math(){{{{{
\begin{eqnarray}
{\rm L}(y) - {\rm F}[q] = {\rm KL}(q \parallel p)
\end{eqnarray}
}}}}}
現在の目的は、対数周辺尤度$$\log p(y)$$と事後分布$$p(x,\theta \mid y)$$の二つを求めることです。上の式を見ると$$F[q]$$の最大化とKullback–Leiblerダイバージェンスの最小化は等価(if and only if)です。またその時、$$F[q]$$は対数周辺尤度$$\log p(y)$$に近づき、Kullback–Leiblerダイバージェンスを小さくするという意味で、テスト分布$$q(x,\theta)$$は事後分布$$p(x,\theta \mid y)$$に近づきます。つまり、周辺尤度$$p(y)$$と事後分布$$p(x,\theta \mid y)$$を求めるという二つの目的を達成するには、$$F[q]$$の最大化(もしくはKullback–Leiblerダイバージェンスの最小化)を行えばよいのです。(詳しい説明が必要)
以下では$$F[q]$$を最大化していくことにします。しかしながら、単純に$$q(x,\theta)$$を事後分布$$p(x,\theta \mid y)$$とすることは困難です。そこで$$q(x,\theta)$$の分布系に制約を設け、その制約の中で$$F[q]$$を最大化することにします。ここでは$$q(x,\theta) = q(x)q(\theta)$$を満たすという制約を考えます。これにより$$q(x)$$と$$q(\theta)$$は独立なので、それぞれにおいて最大化を行います。(詳しい説明が必要)
簡単化のため、$$q_x = q(x)$$、$$q_\theta = q(\theta)$$とします。
#math(){{{{{
\begin{eqnarray}
F[q] &=& F[q_x , q_\theta]\\
&=& \int \sum_{x} q(x)q(\theta) \log p(x,y,\theta) d\theta - \int \sum_{x} q(x)q(\theta) \log q(x)q(\theta) d\theta \\
&=& \int \sum_{x} q(x)q(\theta) \log p(x,y \mid \theta) d\theta + \int \sum_{x} q(x)q(\theta) \log p(\theta) d\theta - \int \sum_{x} q(x)q(\theta) \log q(x) d\theta - \int \sum_{x} q(x)q(\theta) \log q(\theta) d\theta \\
&=& \int \sum_{x} q(x)q(\theta) \log p(x,y \mid \theta) d\theta + \int q(\theta) \log p(\theta) d\theta - \sum_{x} q(x) \log q(x) - \int q(\theta) \log q(\theta) d\theta \\
&=& E_{q_x q_\theta}[\log p(x,y \mid \theta)] + E_{q_\theta}[\log p(\theta)] + H[q_x] + H[q_\theta]
\end{eqnarray}
}}}}}
$$F[q]$$の中で$$q(x)$$と$$q(\theta)$$の最大化に寄与する項を取り出すと以下のようになります。
#math(){{{{{
\begin{eqnarray}
F_{q_\theta}[q_x] &=& E_{q_x q_\theta}[\log p(x,y \mid \theta)] + H[q_x] + const \\
F_{q_x}[q_\theta] &=& E_{q_x q_\theta}[\log p(x,y \mid \theta)] + E_{q_\theta}[\log p(\theta)] + H[q_\theta] + const
\end{eqnarray}
}}}}}
Euler–Lagrange方程式を用いて最大化します。この場合は微分項を含まないので、Lagrange multiplierを用いたような単純な形になります。制約条件は$$\sum_{x} q(x) = 1$$および$$\int q(\theta) d\theta = 1$$です。(詳しい説明が必要)
$$q_\theta$$において最大化。
#math(){{{{{
\begin{eqnarray}
J_{q_x}[q_\theta] &=& F_{q_x}[q_\theta] + \lambda(\int q(\theta) d\theta - 1) \\
&=& E_{q_x q_\theta}[\log p(x,y \mid \theta)] + E_{q_\theta}[\log p(\theta)] + H[q_\theta] + \lambda(\int q(\theta) d\theta - 1) + const\\
\end{eqnarray}
}}}}}
#math(){{{{{
\begin{eqnarray}
\frac{\partial J_{q_x}[q_\theta]}{\partial q_\theta} = E_{q_x}[\log p(x,y \mid \theta)] + \log p(\theta) - \log q(\theta) - 1 + \lambda = 0\\
\end{eqnarray}
}}}}}
#math(){{{{{
\begin{eqnarray}
q(\theta) \propto p(\theta) \exp \{ E_{q_x}[\log p(x,y \mid \theta)] \}\\
\end{eqnarray}
}}}}}
$$q_x$$において最大化。
#math(){{{{{
\begin{eqnarray}
J_{q_\theta}[q_x] &=& F_{q_\theta}[q_x] + \lambda(\sum_{x} q(x) - 1)\\
&=& E_{q_x q_\theta}[\log p(x,y \mid \theta)] + H[q_x] + \lambda(\sum_{x} q(x) - 1) + const\\
\end{eqnarray}
}}}}}
#math(){{{{{
\begin{eqnarray}
\frac{\partial J_{q_\theta}[q_x]}{\partial q_x} = E_{q_\theta}[\log p(x,y \mid \theta)] - \log q(x) - 1 + \lambda = 0\\
\end{eqnarray}
}}}}}
#math(){{{{{
\begin{eqnarray}
q(x) \propto \exp \{ E_{q_\theta}[\log p(x,y \mid \theta)] \}\\
\end{eqnarray}
}}}}}
まとめると以下のようになります。(右辺と左辺がイコールでないのは正規化が必要であることを表しています)
#math(){{{{{
\begin{eqnarray}
q(\theta) &\propto& p(\theta) \exp \{ \sum_{x} q(x) \log p(x,y \mid \theta) \} \\
q(x) &\propto& \exp \{ \int q(\theta) \log p(x,y \mid \theta) d\theta \} \\
\end{eqnarray}
}}}}}
上の式を見てもらえれば分かるように、この二つの式は互いに依存しあっており完全な解析解にはなっていません。つまり$$q(\theta)$$を求めるためには$$q(x)$$が必要であり、$$q(x)$$を求めるためには$$q(\theta)$$が必要です。EMアルゴリズムと同様に初期値を与え、繰り返しにより$$F[q]$$を増加させていきます。(詳しい説明が必要)
----
#contents(fromhere=true)
**この項の問題点
この項は未完成であり重大な間違いを含んでいる可能性があります。
数学的な厳密さはありません。式変形の途中で確率分布や確率密度関数がきちんと定義されているのか疑わしいです。また全体的に説明不足です。
**概要
**問題設定
各記号については[[EMアルゴリズム>機械学習/EMアルゴリズム]]の項を参照してください。
**導出
全ての確率パラメータ$$\theta$$に事前分布$$p(\theta)$$が与えられた、完全なベイズモデルを考えます。ここでの目的は周辺尤度$$p(y)$$と事後分布$$p(x,\theta \mid y)$$を求めることです。対数周辺尤度$${\rm L}(y)=\log p(y)$$を変形していきます。
#math(){{{{{
\begin{eqnarray}
{\rm L}(y) &=& \log p(y)\\
&=& \log \int \sum_{x} p(x,y,\theta) d\theta \\
&=& \log \int \sum_{x} q(x,\theta) \frac{p(x,y,\theta)}{q(x,\theta)} d\theta \\
&\geq& \int \sum_{x} q(x,\theta) \log \frac{p(x,y,\theta)}{q(x,\theta)} d\theta \\
&=& \int \sum_{x} q(x,\theta) \log p(x,y,\theta) d\theta - \int \sum_{x} q(x,\theta) \log q(x,\theta) d\theta \\
&=& E_{q}[\log p(x,y,\theta)] + H[q] \\
&=& F[q]
\end{eqnarray}
}}}}}
上の式の途中でJensenの不等式を用いています。$${\rm H}[q]$$はエントロピーです。差は$$q(x,\theta)$$と$$p(x,\theta \mid y)$$のKullback–Leiblerダイバージェンスとなります。
#math(){{{{{
\begin{eqnarray}
{\rm L}(y) - {\rm F}[q] = {\rm KL}(q \parallel p)
\end{eqnarray}
}}}}}
現在の目的は、対数周辺尤度$$\log p(y)$$と事後分布$$p(x,\theta \mid y)$$の二つを求めることです。上の式を見ると$$F[q]$$の最大化とKullback–Leiblerダイバージェンスの最小化は等価(if and only if)です。またその時、$$F[q]$$は対数周辺尤度$$\log p(y)$$に近づき、Kullback–Leiblerダイバージェンスを小さくするという意味で、テスト分布$$q(x,\theta)$$は事後分布$$p(x,\theta \mid y)$$に近づきます。つまり、周辺尤度$$p(y)$$と事後分布$$p(x,\theta \mid y)$$を求めるという二つの目的を達成するには、$$F[q]$$の最大化(もしくはKullback–Leiblerダイバージェンスの最小化)を行えばよいのです。(詳しい説明が必要)
以下では$$F[q]$$を最大化していくことにします。しかしながら、単純に$$q(x,\theta)$$を事後分布$$p(x,\theta \mid y)$$とすることは困難です。そこで$$q(x,\theta)$$の分布系に制約を設け、その制約の中で$$F[q]$$を最大化することにします。ここでは$$q(x,\theta) = q(x)q(\theta)$$を満たすという制約を考えます。これにより$$q(x)$$と$$q(\theta)$$は独立なので、それぞれにおいて最大化を行います。(詳しい説明が必要)
簡単化のため、$$q_x = q(x)$$、$$q_\theta = q(\theta)$$とします。
#math(){{{{{
\begin{eqnarray}
F[q] &=& F[q_x , q_\theta]\\
&=& \int \sum_{x} q(x)q(\theta) \log p(x,y,\theta) d\theta - \int \sum_{x} q(x)q(\theta) \log q(x)q(\theta) d\theta \\
&=& \int \sum_{x} q(x)q(\theta) \log p(x,y \mid \theta) d\theta + \int \sum_{x} q(x)q(\theta) \log p(\theta) d\theta - \int \sum_{x} q(x)q(\theta) \log q(x) d\theta - \int \sum_{x} q(x)q(\theta) \log q(\theta) d\theta \\
&=& \int \sum_{x} q(x)q(\theta) \log p(x,y \mid \theta) d\theta + \int q(\theta) \log p(\theta) d\theta - \sum_{x} q(x) \log q(x) - \int q(\theta) \log q(\theta) d\theta \\
&=& E_{q_x q_\theta}[\log p(x,y \mid \theta)] + E_{q_\theta}[\log p(\theta)] + H[q_x] + H[q_\theta]
\end{eqnarray}
}}}}}
$$F[q]$$の中で$$q(x)$$と$$q(\theta)$$の最大化に寄与する項を取り出すと以下のようになります。
#math(){{{{{
\begin{eqnarray}
F_{q_\theta}[q_x] &=& E_{q_x q_\theta}[\log p(x,y \mid \theta)] + H[q_x] + const \\
F_{q_x}[q_\theta] &=& E_{q_x q_\theta}[\log p(x,y \mid \theta)] + E_{q_\theta}[\log p(\theta)] + H[q_\theta] + const
\end{eqnarray}
}}}}}
Euler–Lagrange方程式を用いて最大化します。この場合は微分項を含まないので、Lagrange multiplierを用いたような単純な形になります。制約条件は$$\sum_{x} q(x) = 1$$および$$\int q(\theta) d\theta = 1$$です。(詳しい説明が必要)
$$q_\theta$$において最大化。
#math(){{{{{
\begin{eqnarray}
J_{q_x}[q_\theta] &=& F_{q_x}[q_\theta] + \lambda(\int q(\theta) d\theta - 1) \\
&=& E_{q_x q_\theta}[\log p(x,y \mid \theta)] + E_{q_\theta}[\log p(\theta)] + H[q_\theta] + \lambda(\int q(\theta) d\theta - 1) + const\\
\end{eqnarray}
}}}}}
#math(){{{{{
\begin{eqnarray}
\frac{\partial J_{q_x}[q_\theta]}{\partial q_\theta} = E_{q_x}[\log p(x,y \mid \theta)] + \log p(\theta) - \log q(\theta) - 1 + \lambda = 0\\
\end{eqnarray}
}}}}}
#math(){{{{{
\begin{eqnarray}
q(\theta) \propto p(\theta) \exp \{ E_{q_x}[\log p(x,y \mid \theta)] \}\\
\end{eqnarray}
}}}}}
$$q_x$$において最大化。
#math(){{{{{
\begin{eqnarray}
J_{q_\theta}[q_x] &=& F_{q_\theta}[q_x] + \lambda(\sum_{x} q(x) - 1)\\
&=& E_{q_x q_\theta}[\log p(x,y \mid \theta)] + H[q_x] + \lambda(\sum_{x} q(x) - 1) + const\\
\end{eqnarray}
}}}}}
#math(){{{{{
\begin{eqnarray}
\frac{\partial J_{q_\theta}[q_x]}{\partial q_x} = E_{q_\theta}[\log p(x,y \mid \theta)] - \log q(x) - 1 + \lambda = 0\\
\end{eqnarray}
}}}}}
#math(){{{{{
\begin{eqnarray}
q(x) \propto \exp \{ E_{q_\theta}[\log p(x,y \mid \theta)] \}\\
\end{eqnarray}
}}}}}
まとめると以下のようになります。(右辺と左辺がイコールでないのは正規化が必要であることを表しています)
#math(){{{{{
\begin{eqnarray}
q(\theta) &\propto& p(\theta) \exp \{ \sum_{x} q(x) \log p(x,y \mid \theta) \} \\
q(x) &\propto& \exp \{ \int q(\theta) \log p(x,y \mid \theta) d\theta \} \\
\end{eqnarray}
}}}}}
上の式を見てもらえれば分かるように、この二つの式は互いに依存しあっており完全な解析解にはなっていません。つまり$$q(\theta)$$を求めるためには$$q(x)$$が必要であり、$$q(x)$$を求めるためには$$q(\theta)$$が必要です。EMアルゴリズムと同様に初期値を与え、繰り返しにより$$F[q]$$を増加させていきます。(詳しい説明が必要)
----