machine_learningヘッダファイルパッケージで用いている計算式

4. 交差エントロピー誤差\(E\)のモデルパラメータ\(W_{j,i}^{(m)}\)による微分

4.5. 計算式の簡単化

(Formula used in machine_learning header file package; 4. Derivative of the cross entropy error \(E\) with respect to model parameters \(W_{j,i}^{(m)}\); 4.5. Simpler formula)



前節までで以下の式が得られた。
The formula below were obtained in the previous sections.




式をより簡単にするために \[\begin{eqnarray} E_j^{(m,n)} &\equiv& \sum_{i’=0}^{J^{(M+1)}-1} \frac{t_{i’}^{(n)}}{x_{i’}^{(M+1,n)}} D_{i’,j}^{(m,n)} \nonumber \\ & & \left(m=0,\cdots,M; n=0,\cdots,N-1;j=0,\cdots,J^{(m+1)}-1\right) \label{eq.Ej} \end{eqnarray}\] とおく。(\ref{eq.Ej})を(\ref{eq.dEdW.useD})に代入すると \[\begin{eqnarray} \PartialDiff{E}{W_{j,i}^{(m)}} &=& -\frac{1}{N}\sum_{n=0}^{N-1} \left[\left(1-\delta_{iJ^{(m)}}\right)x_{i}^{(m,n)} +\delta_{iJ^{(m)}}\right] \nonumber \\ & & \left[\sum_{i’=0}^{J^{(M+1)}-1} \frac{t_{i’}^{(n)}}{x_{i’}^{(M+1,n)}} D_{i’,j}^{(m,n)} -\sum_{i’=0}^{J^{(M+1)}-1} \frac{t_{i’}^{(n)}}{x_{i’}^{(M+1,n)}} D_{i’,J^{(M+1)}-1}^{(M,n)}\delta_{mM}\right] \nonumber \\ &=& -\frac{1}{N}\sum_{n=0}^{N-1} \left[\left(1-\delta_{iJ^{(m)}}\right)x_{i}^{(m,n)} +\delta_{iJ^{(m)}}\right] \left[E_j^{(m,n)}-E_{J^{(M+1)}-1}^{(M,n)}\delta_{mM}\right] \nonumber \\ & & \left(m=0,\cdots,M; i=0,\cdots,J^{(m)}; j=0,\cdots,J^{(m+1)}-1; \right. \nonumber \\ & & \left. m\neq M \mbox{ or } j\neq J^{(m+1)}-1\right) \label{eq.dEdW.useEj} \end{eqnarray}\] となる。\(E_j^{(m,n)}\)は以下のように計算できる。 まず\(m=M\)のとき、(\ref{eq.D.M1})式より \[\begin{eqnarray} E_j^{(M,n)} &=& \sum_{i’=0}^{J^{(M+1)}-1} \frac{t_{i’}^{(n)}}{x_{i’}^{(M+1,n)}}D_{i’,j}^{(M,n)} \nonumber \\ &=& \sum_{i’=0}^{J^{(M+1)}-1} \frac{t_{i’}^{(n)}}{x_{i’}^{(M+1,n)}} \PartialDiff{f_{i’}^{(M)} \left(y_0^{(M,n)},\cdots,y_{J^{(M+1)}-1}^{(M,n)}\right)} {y_{j}^{(M,n)}} \nonumber \\ & & \left(n=0,\cdots,N-1;j=0,\cdots,J^{(M+1)}-1\right) \label{eq.Ej.M1} \end{eqnarray}\] が成り立つ。また\(m<M\)のとき、(\ref{eq.D.recursive})式より \[\begin{eqnarray} E_j^{(m,n)} &=& \sum_{i’=0}^{J^{(M+1)}-1} \frac{t_{i’}^{(n)}}{x_{i’}^{(M+1,n)}}D_{i’,j}^{(m,n)} \nonumber \\ &=& \sum_{i’=0}^{J^{(M+1)}-1} \frac{t_{i’}^{(n)}}{x_{i’}^{(M+1,n)}} \sum_{j’=0}^{J^{(m+2)}-1}D_{i’,j’}^{(m+1,n)} \nonumber \\ & & \sum_{i{’}{’}=0}^{J^{(m+1)-1}} W_{j’,i{’}{’}}^{(m+1)} \PartialDiff{f_{i{’}{’}}^{(m)} \left(y_0^{(m,n)},\cdots,y_{J^{(m+1)}-1}^{(m,n)}\right)} {y_{j}^{(m,n)}} \nonumber \\ &=& \sum_{j’=0}^{J^{(m+2)}-1} \sum_{i’=0}^{J^{(M+1)}-1} \frac{t_{i’}^{(n)}}{x_{i’}^{(M+1,n)}} D_{i’,j’}^{(m+1,n)} \nonumber \\ & & \sum_{i{’}{’}=0}^{J^{(m+1)-1}} W_{j’,i{’}{’}}^{(m+1)} \PartialDiff{f_{i{’}{’}}^{(m)} \left(y_0^{(m,n)},\cdots,y_{J^{(m+1)}-1}^{(m,n)}\right)} {y_{j}^{(m,n)}} \nonumber \\ &=& \sum_{j’=0}^{J^{(m+2)}-1}E_{j’}^{(m+1,n)} \sum_{i{’}{’}=0}^{J^{(m+1)-1}} W_{j’,i{’}{’}}^{(m+1)} \PartialDiff{f_{i{’}{’}}^{(m)} \left(y_0^{(m,n)},\cdots,y_{J^{(m+1)}-1}^{(m,n)}\right)} {y_{j}^{(m,n)}} \nonumber \\ & & \left(m=0,\cdots,M-1; n=0,\cdots,N-1;j=0,\cdots,J^{(m+1)}-1\right) \label{eq.Ej.recursive} \end{eqnarray}\] が成り立つ。 まず(\ref{eq.Ej.M1})を用いて\(E_j^{(M,n)}\)を求め、 次に\(m\)を1つずつ小さくしながら 漸化式(\ref{eq.Ej.recursive})を繰り返し用いれば 全ての\(m\)に対する\(E_j^{(m,n)}\)が求まる。 それらの結果を(\ref{eq.dEdW.useEj})に代入すれば \(\partial E/\partial W_{j,i}^{(m)}\)が求まる。 (\ref{eq.dEdW.useD})(\ref{eq.D.M1})(\ref{eq.D.recursive})を用いる場合と比べ、 (\ref{eq.dEdW.useEj})(\ref{eq.Ej.M1})(\ref{eq.Ej.recursive})を用いる方が \(i’\)に関する和の計算が(\ref{eq.Ej.M1})のみで済み、 計算量を大幅に削減できる。
To simplify the formula, let us introduce a new quantity \(E_j^{(m,n)}\) defined by Eq. (\ref{eq.Ej}). Inserting this equation into (\ref{eq.dEdW.useD}) results in (\ref{eq.dEdW.useEj}). The values of \(E_j^{(m,n)}\) can be computed as follows. When \(m=M\), Eq. (\ref{eq.D.M1}) gives (\ref{eq.Ej.M1}). When \(m<M\), Eq. (\ref{eq.Ej.recursive}) is derived based on Eq. (\ref{eq.D.recursive}). First calculating \(E_j^{(M,n)}\) using Eq. (\ref{eq.Ej.M1}) and then repeatedly using the recursive equation (\ref{eq.Ej.recursive}) yields \(E_j^{(m,n)}\) for all \(m\). Inserting these results into (\ref{eq.dEdW.useEj}), we can calculate \(\partial E/\partial W_{j,i}^{(m)}\). Compared to Eqs. (\ref{eq.dEdW.useD}), (\ref{eq.D.M1}), and (\ref{eq.D.recursive}), using Eqs. (\ref{eq.dEdW.useEj}), (\ref{eq.Ej.M1}), and (\ref{eq.Ej.recursive}) significantly reduces the computational cost since the summation with regard to \(i’\) appears only in (\ref{eq.Ej.M1}).