機械学習基礎理論独習

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

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

PRML演習問題 4.18(基本)

問題

ソフトマックス活性化関数の微分の結果 (4.106)を使って、
交差エントロピー誤差 (4.108) の勾配が (4.109) で与えられることを示せ。

参照

\begin{eqnarray}
\frac{\partial y_k}{\partial a_j}=y_k(I_{kj}-y_j)\tag{4.106}
\end{eqnarray}

\begin{eqnarray}
E({\bf w}_1,{\dots,{\bf w}_K})=\ln p({\bf T}|{\bf w}_1,{\dots,{\bf w}_K})=-\sum_{n=1}^N\sum_{k=1}^Kt_{nk}\ln y_{nk}\tag{4.108}
\end{eqnarray}

\begin{eqnarray}
\nabla_{{\bf w}_j}E({\bf w}_1,{\dots,{\bf w}_K})=\sum_{n=1}^N(y_{nj}-t_{nj}){\boldsymbol\phi}_n\tag{4.109}
\end{eqnarray}

解答

E({\bf w}_1,\ldots,{\bf w}_K){\bf w}_j偏微分します。

\begin{eqnarray}
\nabla_{{\bf w}_j}E({\bf w}_1,\ldots,{\bf w}_K)&=&\frac{\partial}{\partial{\bf w}_j}E({\bf w}_1,\ldots,{\bf w}_K)\\
&=&\frac{\partial}{\partial{\bf w}_j}\left(-\sum_{n=1}^N\sum_{k=1}^Kt_{nk}\ln y_{nk}\right)\\
&=&-\sum_{n=1}^N\sum_{k=1}^K\frac{\partial}{\partial{\bf w}_j}t_{nk}\ln y_{nk}\\
&=&-\sum_{n=1}^N\sum_{k=1}^Kt_{nk}\frac{\partial}{\partial y_{nk}}\ln y_{nk}\underbrace{\frac{\partial}{\partial a_j}y_{nk}}_{(4.106)}\frac{\partial}{\partial {\bf w}_j}a_j\\
&=&-\sum_{n=1}^N\sum_{k=1}^K\frac{t_{nk}}{y_{nk}}y_{nk}(I_{kj}-y_{nj}){\boldsymbol\phi}_n\\
&=&\sum_{n=1}^N\sum_{k=1}^K t_{nk}(y_{nj}-I_{kj}){\boldsymbol\phi}_n\\
&=&\sum_{n=1}^N\left(\sum_{k=1}^K t_{nk}y_{nj}{\bf x}_n-\sum_{k=1}^K t_{nk}I_{kj}{\boldsymbol\phi}_n\right)\tag{1}\\
\end{eqnarray}

(1) の4行目で a_k={\bf w}_k^\top{\boldsymbol\phi}_n とおきました。

(1)\sum_{k=1}^K t_{nk}y_{nj}{\boldsymbol\phi}_n\sum_{k=1}^K t_{nk}I_{kj}{\boldsymbol\phi}_n を別々に計算します。

\begin{eqnarray}
\sum_{k=1}^K t_{nk}y_{nj}{\boldsymbol\phi}_n&=&y_{nj}{\boldsymbol\phi}_n\sum_{k=1}^Kt_{nk}\\
&=&y_{nj}{\boldsymbol\phi}_n\tag{2}
\end{eqnarray}

(2)では\sum_{k=1}^K t_{nk}=1を使いました。

\begin{eqnarray}
\sum_{k=1}^K t_{nk}I_{kj}{\boldsymbol\phi}_n&=&{\boldsymbol\phi}_n\sum_{k=1}^K t_{nk}I_{kj}\\
&=&{\boldsymbol\phi}_n(t_{ni}I_{ij}+\cdots+t_{nj}I_{jj}+\cdots+t_{nK}I_{Kj})\\
&=&t_{nj}{\boldsymbol\phi}_n\tag{3}
\end{eqnarray}

(3)の2行目から3行目では、I_{jj}=1よりt_{nj}I_{jj}の項だけが残ることを用いました。

(2),(3)(1)に代入します。

\begin{eqnarray}
\nabla_{{\bf w}_j}E({\bf w}_1,\ldots,{\bf w}_K)&=&\sum_{n=1}^N(y_{nj}{\boldsymbol\phi}_n-t_{nj}{\boldsymbol\phi}_n)\\
&=&\sum_{n=1}^N(y_{nj}-t_{nj}){\boldsymbol\phi}_n\tag{4}
\end{eqnarray}

(4) より、題意が示せました。

目次へ戻る