機械学習基礎理論独習

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

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

PRML演習問題 8.21(標準) www

問題

因子グラフにおいて、積和メッセージパッシングアルゴリズムを実行した後、
(8.72) を適用することにより、各因子 f_s({\bf x}_s) に関連する変数 {\bf x}_s 全体上の
周辺分布 p({\bf x}_s) が計算できることを示せ。

参照

\begin{eqnarray}
\mu_{x_m\rightarrow f_s}(x_m)\equiv\sum_{X_{sm}}G_m(x_m,X_{sm})\tag{8.67}
\end{eqnarray}

\begin{eqnarray}
p({\bf x}_s)=f_s({\bf x}_s)\prod_{i\in{\rm ne}(f_s)}\mu_{x_i\rightarrow f_s}(x_i)\tag{8.72}
\end{eqnarray}

解答

{\bf x}_s は因数ノード f_s に隣接する変数ノードとし、{\bf x}_s=\{x_1,\ldots,x_L\} とします。
X_s は変数ノード {\bf x}_s を通して、因子ノード f_s に接続される部分木に属する全ての変数を表すものとします。

p({\bf x}_s)p({\bf x}){\bf x}\backslash{\bf x}_s で周辺化することにより求まるので、次式が成立します。

\begin{eqnarray}
p({\bf x}_s)=\sum_{{\bf x}\backslash{\bf x}_s}p({\bf x})\tag{1}
\end{eqnarray}

(8.72) を変形します。

\begin{eqnarray}
p({\bf x}_s)&=&f_s({\bf x}_s)\prod_{i\in{\rm ne}(f_s)}\mu_{x_i\rightarrow f_s}(x_i)\\
&=&f_s({\bf x}_s)\prod_{i\in{\rm ne}(f_s)}\underbrace{\sum_{X_{si}}G_i(x_i,X_{si})}_{(8.67)}\\
&=&f_s({\bf x}_s)\left(\sum_{X_{s1}}G_1(x_1,X_{s1})\right)\cdots\left(\sum_{X_{sI}}G_I(x_I,X_{sI})\right)\\
&=&f_s({\bf x}_s)\sum_{X_s}\prod_{i\in{\rm ne}(f_s)}G_i(x_i,X_{si})\\
&=&\sum_{X_s}f_s({\bf x}_s)\prod_{i\in{\rm ne}(f_s)}G_i(x_i,X_{si})\\
&=&\sum_{X_s}f_s({\bf x}_s)\prod_{i\in{\bf x}\backslash{\bf x}_s}f_i({\bf x}_i)\\
&=&\sum_{X_s}\prod_{i}f_i({\bf x}_i)\\
&=&\sum_{X_s}p({\bf x})\\
&=&\sum_{{\bf x}\backslash{\bf x}_s}p({\bf x})\tag{2}
\end{eqnarray}

(1),(2) より、式 (8.72) が示せました。

目次へ戻る