本記事はPRML「パターン認識と機械学習<上>第7版」(C.M.ビショップ著)の演習問題の基本問題・標準問題を解説したページになります。数式を打ち込む手間が面倒だったので,画像ファイルでアップしています。
また,数学的に厳密な議論はしていません。その代わり,初学者がつまづきやすいポイントを重点的にお伝えしていくつもりです。PRML解答/解説の目次もご覧ください。
こちらの問題の誤植をzyunpe様よりご指摘いただきました。多クラス分類の尤度関数はカテゴリカル確率ですので,式(4.107)で表されます。訂正後の解答を最初に示して,その後に訂正前の解答を示しておきます。
5.5(訂正後)
式(4.107)に基づく対数尤度関数は以下のように表されます。なお,演習問題の文中では尤度関数が$p(t_k=1|\mathbf{x})$と表されていますが,これはニューラルネットワークの重みを省略していますので,正確には$p(\mathbf{t_k=1 | \mathbf{x}, \mathbf{w}})$です。また,$t_k=1$はベクトルを用いて$\mathbf{t}$と表すことができますので,結局$p(t_k=1 | \mathbf{x}, \mathbf{w})=p(\mathbf{\mathbf{t} | \mathbf{x}, \mathbf{w}})$になります。
\begin{align}
\log y_k(\mathbf{x}, \mathbf{w})
&= \log p(\mathbf{t}|\mathbf{x}, \mathbf{w})\\
&= \log \prod_{n=1}^{N}
\prod_{k=1}^{K}
y_{nk}^{t_{nk}} \\
&= \sum_{n=1}^{N}
\sum_{k=1}^{K}
t_{nk} \log y_{nk}
\end{align}
したがって,対数尤度の最大化は交差エントロピー誤差関数(5.24)を最小化することと等価です。なお,尤度最大化とクロスエントロピー最小化の議論は以下のページでも行っています。
5.5(訂正前)
負の対数尤度を計算するだけです。
問題文では多クラスニューラルネットワークモデルについて,と言っているので,
使用する尤度関数は(5.22)ではなく,(4.107)で表されるものが正しいようです.
私もテキストの「(→演習5.5)」記載位置から,K個の2クラス分類問題のネットワーク
に対して適用すればいいのかと思いましたが,PRML公式の回答を見ると違うようです.
また,Beginaidさんの回答では,ln()を取る際に,2項目の(1-yk)にln()がかかっていない
ので,(5.24)と同じ式に変形できてしまったのかなと思いました.
最後になりますが,初めてコメントさせていただきます.
独学でPRMLを読んでいるので,いつも大変参考にさせていただいています.
これからも参考にさせていただきます.
zyunpe様
ご指摘ありがとうございます!
本文を修正いたしました。
参考にしていただき光栄です。
誤植等あるとは存じていますが,またご指摘等いただけますと幸いです。