Chainerのチュートリアルの中程に以下の記述がある。
上記のf.W.gradとf.b.gradを導出する。
計算される量は
\begin{equation}
Y = WX+B
\end{equation}
成分を取ると
\begin{equation}
y_{i m} = \sum_{j}w_{i j}x_{j m}+b_{i}
\end{equation}
$w_{\alpha \beta}$で微分を取ると
\begin{eqnarray}
\frac{\partial y_{i m}}{\partial w_{\alpha \beta}} &=& \sum_{j} \delta_{i \alpha}\delta_{\beta j} x_{j m} \\
&=&\delta_{i \alpha}x_{\beta m}
\end{eqnarray}
両辺 $i,m$ で和を取ると
\begin{eqnarray}
\sum_{im}\frac{\partial y_{im}}{\partial w_{\alpha \beta}} &=& \sum_{im}\delta_{i\alpha}x_{\beta m} \\
&=&\sum_{m}x_{\beta m}
\end{eqnarray}
この値を $\delta w_{\alpha \beta}$ と置く。
\begin{equation}
\delta w_{\alpha \beta}=\sum_{m}x_{\beta m}
\end{equation}
いま $m=(0,1)$ であるから
\begin{equation}
\delta w_{\alpha \beta}= x_{\beta 0}+x_{\beta 1}
\end{equation}
$\beta=(0,1,2)$ であるから
\begin{eqnarray}
\delta w_{\alpha 0}&=&x_{0 0}+x_{0 1} \\
\delta w_{\alpha 1}&=&x_{1 0}+x_{1 1} \\
\delta w_{\alpha 2}&=&x_{2 0}+x_{2 1}
\end{eqnarray}
$(x_{0 0},x_{1 0},x_{2 0})=(1,2,3)$, $(x_{0 1},x_{1 1},x_{2 1})=(4,5,6)$ であるから
\begin{eqnarray}
\delta w_{\alpha 0}&=& 5\\
\delta w_{\alpha 1}&=& 7 \\
\delta w_{\alpha 2}&=& 9
\end{eqnarray}
$\alpha=(0,1)$ であることを使えば次式を得る。
\begin{eqnarray}
\delta w &=&
\begin{pmatrix}
\delta w_{00} & \delta w_{01} & \delta w_{02}\\
\delta w_{10} & \delta w_{11} & \delta w_{12}
\end{pmatrix} \\
&=&
\begin{pmatrix}
5 & 7 & 9\\
5 & 7 & 9
\end{pmatrix}
\end{eqnarray}
これが f.W.grad である。次に $b_{j}$ で $y_{im}$ を微分する。
\begin{eqnarray}
\delta b_{j} &\equiv& \sum_{im} \frac{\partial y_{im}}{\partial b_{j}}\\
&=&\sum_{im} \delta_{ij} \\
&=&\sum_{m}\\
&=&2
\end{eqnarray}
$j=(0,1)$ であるから $(\delta b_{0},\delta b_{1})=(2,2)$ を得る。これが f.b.grad である。
0 件のコメント:
コメントを投稿