はじめに
本記事は, 機械学習の教科書の決定版ともいえる, Christopher Bishop先生による『Pattern Recognition and Machine Learning (パターン認識と機械学習)』, 通称PRMLの演習問題の解答を記したものです. これは, 生物測定学研究室の輪読会でPRMLを取り扱っており, その勉強の一環として演習問題を解いたときのもので, 匿名の有志の学生による解答をこちらのアカウントから代わりに投稿させていただいています. (なお一部数式の表現などを修正してあります.)
問題
5.20(基本) 出力ユニットは $K$ 個でその活性関数はソフトマックス関数, 誤差関数は交差エントロピーであるネットワークについて, 二乗和誤差関数の場合の結果 $(5.84)$ に対応する, ネットワークのヘッセ行列の外積による近似式を導け.
参考
「出力ユニットはK個でその活性関数はソフトマックス関数,誤差関数は交差エントロピーであるネットワーク」とは、簡単に言えばクラス分類を行うネットワークである。このネットワークについての誤差関数の微分 $\nabla E(\mathbf w)$ については、
\begin {align*}
{\nabla}_{\mathbf{w}_j} E(\mathbf w) = \sum_{n=1}^N (y_{nj} - t_{nj}) \mathbf\phi_n
\tag{4.109改変}
\end {align*}
であることが知られている。更に、ソフトマックス関数の場合、
\begin {align*}
\frac{\partial y_k}{\partial a_j} = y_k(I_{kj} - y_j)
\tag{4.106}
\end {align*}
である。
また、本文の内容より、
\mathbf{b}_n {\equiv}\nabla{y_n} = \nabla{a_n}
であり、
\mathbf{\phi}_n = \frac{\partial a_n}{\partial \mathbf{w}} = \mathbf{b}_n
である。
解法
そのまま $(4.109)$ をさらに微分して、$(5.83)$ のようにヘッセ行列を求めて、その第1項を取り出す。
\nabla \nabla E = \sum_{n=1}^N\{ \sum_{j=1}^N y_n(I_{nj} - y_{nj}) \}\nabla{y_n}(\nabla{y_n})^{\rm{T}}+\sum_{n=1}^N (y_{nj} - t_{nj}) \nabla\nabla{y_n}
よって、ここの第1項を取り出すと、
\begin {align*}
\mathbf{H} \simeq \sum_{j=1}^N y_n(I_{nj} - y_{nj}) \mathbf{b}_n {\mathbf{b}_n}^{\rm{T}}
\tag{5.85に似た式}
\end {align*}
■
参考
http://sioramen.sub.jp/prml_wiki/lib/exe/fetch.php/wiki/ensyu5.20.pdf 答えの検算として見ました。