機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

周辺尤度によるモデル比較

周辺尤度

一般に、観測データ\mathcal{D}、パラメータ\thetaのとき、\thetaの事後分布は以下の式で表されます。

\begin{eqnarray}
p(\theta|{\mathcal D})=\frac{p({\mathcal D}|\theta)p(\theta)}{p(\mathcal D)}\tag{1}
\end{eqnarray}

(1)p(\mathcal D)を周辺尤度といい、モデルからデータ\mathcal Dが出現する尤もらしさを表しています。
(1)p(\mathcal D)について解きます。

\begin{eqnarray}
p(\mathcal D)=\frac{p({\mathcal D}|\theta)p(\theta)}{p(\theta|{\mathcal D})}\tag{2}
\end{eqnarray}

事後分布を求める時は、この周辺尤度は無視されますが、この記事では対数周辺尤度の値でモデルを比較します。

モデル比較

モデルはy={\bf w}^\top{\boldsymbol\phi}({\bf x})とします。

(2)より、周辺尤度は以下のようになります。

\begin{eqnarray}
p({\bf t}|{\bf X})=\frac{p({\bf t}|{\bf X},{\bf w})p({\bf w})}{p({\bf w}|{\bf X},{\bf t})}\tag{3}
\end{eqnarray}

対数を取ります。

\begin{eqnarray}
\ln p({\bf t}|{\bf X})=\ln p({\bf t}|{\bf X},{\bf w})+\ln p({\bf w})-\ln p({\bf w}|{\bf X},{\bf t})\tag{4}
\end{eqnarray}

p({\bf t}|{\bf X},{\bf w})は尤度を、p({\bf w})は事前分布を、p({\bf w}|{\bf X},{\bf t})は事後分布を表します。

\begin{eqnarray}
&&p({\bf t}|{\bf X},{\bf w})=\prod_{n=1}^N\mathcal{N}(t_n|{\bf w}^\top{\boldsymbol\phi}({\bf x}_n),\beta^{-1})\tag{5}\\
&&p({\bf w})=\mathcal{N}({\bf w}|{\bf m}_0,{\bf S}_0)\tag{6}\\
&&p({\bf w}|{\bf X},{\bf t})=\mathcal{N}({\bf w}|{\bf m}_N,{\bf S}_N)\tag{7}\\
\end{eqnarray}

ただし、{\bf m}_N={\bf S}_N({\bf S}_0^{-1}{\bf m}_0+\beta{\boldsymbol\Phi{\bf t}}),\ {\bf S}_N^{-1}={\bf S}_0^{-1}+\beta{\boldsymbol\Phi}^\top{\boldsymbol\Phi}です。

\ln p({\bf t}|{\bf X},{\bf w})を展開します。

\begin{eqnarray}
\ln p({\bf t}|{\bf X},{\bf w})&=&\ln\prod_{n=1}^N\mathcal{N}(t_n|{\bf w}^\top{\boldsymbol\phi}({\bf x}_n),\beta^{-1})\\
&=&\sum_{n=1}^N\ln\mathcal{N}(t_n|{\bf w}^\top{\boldsymbol\phi}({\bf x}_n),\beta^{-1})\\
&=&-\frac{1}{2}\sum_{n=1}^N\left(\beta(t_n-{\bf w}^\top{\boldsymbol\phi}({\bf x}_n))^2+\ln\beta^{-1}+\ln2\pi\right)\\
&=&-\frac{1}{2}\sum_{n=1}^N\left(\beta t_n^2-2\beta t_n{\bf w}^\top{\boldsymbol\phi}({\bf x}_n)+\beta({\bf w}^\top{\boldsymbol\phi}({\bf x}_n))^2-\ln\beta+\ln2\pi\right)\tag{8}\\
\end{eqnarray}

\ln p({\bf w})を展開します。

\begin{eqnarray}
\ln p({\bf w})&=&\ln\mathcal{N}({\bf w}|{\bf m}_0,{\bf S}_0)\\
&=&-\frac{1}{2}\left(({\bf w}-{\bf m}_0)^\top{\bf S}_0^{-1}({\bf w}-{\bf m}_0)+\ln|{\bf S}_0|+D\ln2\pi\right)\\
&=&-\frac{1}{2}\left({\bf w}^\top{\bf S}_0^{-1}{\bf w}-2{\bf w}^\top{\bf S}_0^{-1}{\bf m}_0+{\bf m}_0^\top{\bf S}_0^{-1}{\bf m}_0+\ln|{\bf S}_0|+D\ln2\pi\right)\tag{9}\\
\end{eqnarray}

\ln p({\bf w}|{\bf X},{\bf t})を展開します。

\begin{eqnarray}
\ln p({\bf w}|{\bf X},{\bf t})&=&\ln\mathcal{N}({\bf w}|{\bf m}_N,{\bf S}_N)\\
&=&-\frac{1}{2}\left(({\bf w}-{\bf m}_N)^\top{\bf S}_0^{-1}({\bf w}-{\bf m}_N)+\ln|{\bf S}_N|+D\ln2\pi\right)\\
&=&-\frac{1}{2}\left({\bf w}^\top{\bf S}_N^{-1}{\bf w}-2{\bf w}^\top{\bf S}_N^{-1}{\bf m}_N+{\bf m}^\top{\bf S}_N^{-1}{\bf m}_N+\ln|{\bf S}_N|+D\ln2\pi\right)\\
&=&-\frac{1}{2}\left({\bf w}^\top({\bf S}_0^{-1}+\beta{\boldsymbol\Phi}^\top{\boldsymbol\Phi}){\bf w}-2{\bf w}^\top({\bf S}_0^{-1}{\bf m}_0+\beta{\boldsymbol\Phi{\bf t}})+{\bf m}^\top{\bf S}_N^{-1}{\bf m}_N+\ln|{\bf S}_N|+D\ln2\pi\right)\\
&=&-\frac{1}{2}\left({\bf w}^\top\left({\bf S}_0^{-1}+\beta\sum_{n=1}^N{\boldsymbol\phi}({\bf x}_n){\boldsymbol\phi}({\bf x}_n)^\top\right){\bf w}-2{\bf w}^\top\left({\bf S}_0^{-1}{\bf m}_0+\beta\sum_{n=1}^Nt_n{\boldsymbol\phi}({\bf x}_n)\right)+{\bf m}^\top{\bf S}_N^{-1}{\bf m}_N+\ln|{\bf S}_N|+D\ln2\pi\right)\\
&=&-\frac{1}{2}\left({\bf w}^\top{\bf S}_0^{-1}{\bf w}+\beta\sum_{n=1}^N{\bf w}^\top{\boldsymbol\phi}({\bf x}_n){\boldsymbol\phi}({\bf x}_n)^\top{\bf w}-2{\bf w}^\top{\bf S}_0^{-1}{\bf m}_0-2\beta\sum_{n=1}^Nt_n{\bf w}^\top{\boldsymbol\phi}({\bf x}_n)+{\bf m}^\top{\bf S}_N^{-1}{\bf m}_N+\ln|{\bf S}_N|+D\ln2\pi\right)\\
&=&-\frac{1}{2}\left({\bf w}^\top{\bf S}_0^{-1}{\bf w}+\beta\sum_{n=1}^N\left({\bf w}^\top{\boldsymbol\phi}({\bf x}_n)\right)^2-2{\bf w}^\top{\bf S}_0^{-1}{\bf m}_0-2\beta\sum_{n=1}^Nt_n{\bf w}^\top{\boldsymbol\phi}({\bf x}_n)+{\bf m}^\top{\bf S}_N^{-1}{\bf m}_N+\ln|{\bf S}_N|+D\ln2\pi\right)\tag{10}\\
\end{eqnarray}

(8),(9),(10)(4)に代入します。

\begin{eqnarray}
\ln p({\bf t}|{\bf X})=-\frac{1}{2}\left(\sum_{n=1}^N(\beta t_n^2-\ln\beta+\ln2\pi)+{\bf m}_0^\top{\bf S}_0^{-1}{\bf m}_0+\ln|{\bf S}_0|-{\bf m}_N^\top{\bf S}_N^{-1}{\bf m}_N-\ln|{\bf S}_N|\right)\tag{11}
\end{eqnarray}

これで対数周辺尤度が計算できます。

データはy=\sin 2\pi xガウス分布に従うノイズを乗せており、モデルはy=w_0+w_1x+\cdots+w_Mx^Mとします。
このモデルのパラメータMを変えて、対数周辺尤度を計算した結果が以下です。

f:id:olj611:20210331034814p:plain:w500

M=3の時が最大になっています。
対数周辺尤度の最大化の観点からは、モデルはy=w_0+w_1x+w_2x^2+w_3x^3がよいと予想できます。

偉人の名言

f:id:olj611:20210323183227p:plain:w300
僕がやっていることで他の誰もやっていないことは、1回のリバウンドで3回も4回もジャンプしていることだ。
デニス・ロッドマン

参考文献

パターン認識機械学習 上巻
ベイズ推論による機械学習入門

動画

目次へ戻る