LoginSignup
1
4

More than 5 years have passed since last update.

「詳解ディープラーニング」5章1節の数式を補うメモ

Posted at

このページはPC画面での表示を推奨しております。
処理が重く数式が表示されるまで時間がかかる場合があります。
個人による計算なので内容に誤りがある可能性があります。
その際は式の番号を指摘してくださると幸いでございます。
2017年9月あたりに書いたものです。

5: リカレントニューラルネットワーク

5.1: 基本のアプローチ

5.1.1: 時系列データ

    \begin{equation}
        f(t)= \sin \left( \frac{2\pi}{T} t \right) \ \  (t = 1, 2, ..., 2T)
    \end{equation}
    \tag{ 書籍内(5.1),  記事内(A1) }

5.1.2: 過去の隠れ層

入力層 -->> 隠れ層 ゲート

\boldsymbol{h}(t) = f(\boldsymbol{Ux}(t) + \boldsymbol{Wh}(t-1) + \boldsymbol{b})
\tag{ 書籍内(5.4),  記事内(A4) }
    \begin{align}
        \boldsymbol{h}(t) 
            &= 
                \left[
                    \begin{matrix}
                        h_1(t)\\
                        h_2(t)\\
                        \vdots\\
                        h_J(t)\\
                    \end{matrix}
                \right]
                &
        \boldsymbol{b}
            &= 
                \left[
                    \begin{array}{c}
                        b_1\\
                        b_2\\
                        \vdots\\
                        b_J\\
                    \end{array}
                \right]
                \\
        \boldsymbol{U}
            &=
                \left[
                    \begin{array}{cc}
                        u_{11} & u_{12} &\cdots &u_{1I}\\
                        u_{21} & u_{22} &\cdots & u_{2I}\\
                        \vdots & \vdots &\cdots & \vdots\\
                        u_{J1} & u_{J2} & \cdots & u_{JI}\\
                    \end{array}
                \right]
                \ \ \ \ \ \ &
        \boldsymbol{x}(t) 
            &= 
                \left(
                    \begin{array}{cc}
                        x_1(t)\\
                        x_2(t)\\
                        \vdots\\
                        x_I(t)\\
                    \end{array}
                \right)
                \\
        \boldsymbol{W}
            &= 
                \left[
                    \begin{array}{c}
                        w_{11} &w_{12} &\cdots &w_{1J}\\
                        w_{21} &w_{22} &\cdots &w_{2J}\\
                        \vdots &\vdots &\cdots &\vdots\\
                        w_{J1} &w_{J2} &\cdots &w_{JJ}\\
                    \end{array}
                \right]
                \ \ \ \ \ \ \ &
        \boldsymbol{h}(t-1)
            &= 
                \left[
                    \begin{array}{c}
                        h_1(t-1)\\
                        h_2(t-1)\\
                        \vdots\\
                        h_J(t-1)\\
                    \end{array}
                \right]
                \\
    \end{align}
    \tag{ 記事内(A4.1) }

隠れ層 -->> 出力層 ゲート

    \boldsymbol{y}(t) = g(V\boldsymbol{h}(t) + \boldsymbol{c} )
    \tag{ 書籍内(5.5),  記事内(A5) }
    \begin{align}
        \boldsymbol{y}(t)
            &= 
                \begin{bmatrix}
                    y_1(t)\\
                    y_2(t)\\
                    \vdots\\
                    y_L(t)\\
                \end{bmatrix}
            &
        \boldsymbol{c} 
            &= 
                \begin{bmatrix}
                    c_1(t)\\
                    c_2(t)\\
                    \vdots\\
                    c_L(t)\\
                \end{bmatrix}
        \\
        \boldsymbol{V}
            &= 
                \begin{bmatrix}
                    v_{11} & v_{12} & \cdots & v_{1J}\\
                    v_{21} & v_{22} & \cdots & v_{2J}\\
                    \vdots & \vdots & \cdots & \vdots\\
                    v_{L1} & v_{L2} & \cdots & v_{LJ}\\
                \end{bmatrix}
            &
        \boldsymbol{h}(t)
            &= 
                \begin{bmatrix}
                    h_1(t)\\
                    h_2(t)\\
                    \vdots\\
                    h_J(t)\\
                \end{bmatrix}
        \\
    \end{align}
    \tag{ 記事内(A5.1) }

変数定義

各モデルのパラメータも誤差逆伝播法で最適化できる

    E := E(U, V, W, \boldsymbol{b}, \boldsymbol{c})
    \boldsymbol{p}(t) := U\boldsymbol{x}(t) + W\boldsymbol{h}(t-1) + \boldsymbol{b}
    \tag{ 書籍内(5.6),  記事内(A6) }
    \boldsymbol{q}(t) := V\boldsymbol{h}(t) + \boldsymbol{c}
    \tag{ 書籍内(5.7),  記事内(A7) }
    \boldsymbol{e}_{h}(t) := \frac{\partial E}{\partial \boldsymbol{p}(t)}
    \tag{ 書籍内(5.8),  記事内(A8) }
    \boldsymbol{e}_{o}(t) := \frac{\partial E}{\partial \boldsymbol{q}(t)}
    \tag{ 書籍内(5.9),  記事内(A9) }

各パラメータの勾配

    \begin{align}
        \frac{ \partial E}{ \partial \boldsymbol{U} }
            &=      % 1
                \frac{ \partial E}{ \partial
                    \left[
                        \begin{array}{c}
                            u_{11} & \cdots & u_{1I} \\
                            \vdots & \cdots & \vdots \\
                            u_{J1} & \cdots & u_{JI}
                        \end{array}
                    \right]
                }
                \tag{ 記事内(A10.1) }
                \\
            &=     % 2
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial u_{11} } & \cdots & \frac{ \partial E}{ \partial u_{1I} } \\
                        \vdots & \cdots & \vdots \\
                        \frac{ \partial E}{ \partial u_{J1} } & \cdots & \frac{ \partial E}{ \partial u_{JI} }
                    \end{array}
                \right]
                \tag{ 記事内(A10.2) }
                \\
            &=     % 3
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial \boldsymbol{u_{1} }^T } \\
                        \vdots \\
                        \frac{ \partial E}{ \partial \boldsymbol{u_{J} }^T }
                    \end{array}
                \right]
                    \\
                &
                    \left( \ 
                        \boldsymbol{U} 
                            = \left[ 
                                \begin{array}{c}
                                    \boldsymbol{u_1} & \cdots & \boldsymbol{u_J}
                                \end{array}
                            \right]^T
                            = \left[ 
                                \begin{array}{c}
                                    \boldsymbol{u_1}^T \\
                                    \vdots \\
                                    \boldsymbol{u_J}^T
                                \end{array}
                            \right]
                    \right)
                \tag{ 記事内(A10.3) }
                \\
            &=     % 4
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial p_1}
                            \frac{ \partial p_1(t)}{ \partial \boldsymbol{u_{1} }^T } \\
                        \vdots \\
                        \frac{ \partial E}{ \partial p_J}
                            \frac{ \partial p_J(t)}{ \partial \boldsymbol{u_{J} }^T } \\
                    \end{array}
                \right]
                    \\
                &
                    \left( \ 
                        \because \ 
                        \boldsymbol{u}_i^Tを引数に持つのは、p_1, \cdots, p_J のうちで p_i のみ
                    \right)
                \tag{ 記事内(A10.4) }
                \\
            &=     % 5
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial p_1(t)}
                            \boldsymbol{x}(t)^T \\
                        \vdots \\
                        \frac{ \partial E}{ \partial p_J(t)}
                            \boldsymbol{x}(t)^T
                        \end{array}
                \right]
                \tag{ 記事内(A10.5) }
                \\
            &=     % 6
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial p_1(t)} \\
                        \vdots \\
                        \frac{ \partial E}{ \partial p_J(t)}
                        \end{array}
                \right] \boldsymbol{x}(t)^T
                \tag{ 記事内(A10.7) }
                \\
            &=     % 7
                \frac{ \partial E}{ \boldsymbol{p}(t) }
                \boldsymbol{x}(t)^T
                \tag{ 記事内(A10.8) }
                \\
            &=     % 8
                \boldsymbol{e}_h(t)
                \boldsymbol{x}(t)^T
                \tag{ 書籍内(5.10),  記事内(A10) }
                \\
    \end{align}

(5.11) ( (5.10)と同様のプロセス )

    \begin{align}
        \frac{ \partial E}{ \partial \boldsymbol{V} }
            &=      % 1
                \frac{ \partial E}{ \partial
                    \left[
                        \begin{array}{c}
                            v_{11} & \cdots & v_{1I} \\
                            \vdots & \cdots & \vdots \\
                            v_{L1} & \cdots & v_{LI}
                        \end{array}
                    \right]
                }
                \tag{ 記事内(A11.1) }
                \\
            &=     % 2
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial v_{11} } & \cdots & \frac{ \partial E}{ \partial v_{1I} } \\
                        \vdots & \cdots & \vdots \\
                        \frac{ \partial E}{ \partial v_{L1} } & \cdots & \frac{ \partial E}{ \partial v_{LI} }
                    \end{array}
                \right]
                \tag{ 記事内(A11.2) }
                \\
            &=     % 3
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial \boldsymbol{v_{1} }^T } \\
                        \vdots \\
                        \frac{ \partial E}{ \partial \boldsymbol{v_{L} }^T }
                    \end{array}
                \right]
                    \\
                &
                    \left( \ 
                        \boldsymbol{V} 
                            = \left[ 
                                \begin{array}{c}
                                    \boldsymbol{v_1} & \cdots & \boldsymbol{v_L}
                                \end{array}
                            \right]^T
                            = \left[ 
                                \begin{array}{c}
                                    \boldsymbol{v_1}^T \\
                                    \vdots \\
                                    \boldsymbol{v_L}^T
                                \end{array}
                            \right]
                    \right)
                \tag{ 記事内(A11.3) }
                \\
            &=     % 4
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial q_1}
                            \frac{ \partial q_1(t)}{ \partial \boldsymbol{v_{1} }^T } \\
                        \vdots \\
                        \frac{ \partial E}{ \partial q_L}
                            \frac{ \partial q_L(t)}{ \partial \boldsymbol{v_{L} }^T } \\
                    \end{array}
                \right]
                    \\
                &
                    \left( \ 
                        \because \ 
                        \boldsymbol{v}_i^T を引数に持つのは、q_1, \cdots, q_L のうちで q_i のみ
                    \right)
                \tag{ 記事内(A11.4) }
                \\
            &=     % 5
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial q_1(t)}
                            \boldsymbol{h}(t)^T \\
                        \vdots \\
                        \frac{ \partial E}{ \partial q_L(t)}
                            \boldsymbol{h}(t)^T
                        \end{array}
                \right]
                \tag{ 記事内(A11.5) }
                \\
            &=     % 6
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial q_1(t)} \\
                        \vdots \\
                        \frac{ \partial E}{ \partial q_L(t)}
                        \end{array}
                \right] \boldsymbol{h}(t)^T
                \tag{ 記事内(A11.6) }
                \\
            &=     % 7
                \frac{ \partial E}{ \boldsymbol{q}(t) }
                \boldsymbol{h}(t)^T 
                \tag{ 記事内(A11.7) }
                \\
            &=     % 8
                \boldsymbol{e}_o(t)
                \boldsymbol{h}(t)^T
                \tag{ 書籍内(5.11),  記事内(A11) }
                \\
    \end{align}

(5.12) ( (5.10)と同様のプロセス )

    \begin{align}
        \frac{ \partial E}{ \partial \boldsymbol{W} }
            &=      % 1
                \frac{ \partial E}{ \partial
                    \left[
                        \begin{array}{c}
                            w_{11} & \cdots & w_{1I} \\
                            \vdots & \cdots & \vdots \\
                            w_{J1} & \cdots & w_{JI}
                        \end{array}
                    \right]
                }
                \tag{ 記事内(A12.1) }
                \\
            &=     % 2
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial w_{11} } & \cdots & \frac{ \partial E}{ \partial w_{1I} } \\
                        \vdots & \cdots & \vdots \\
                        \frac{ \partial E}{ \partial w_{J1} } & \cdots & \frac{ \partial E}{ \partial w_{JI} }
                    \end{array}
                \right]
                \tag{ 記事内(A12.2) }
                \\
            &=     % 3
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial \boldsymbol{w_{1} }^T } \\
                        \vdots \\
                        \frac{ \partial E}{ \partial \boldsymbol{w_{J} }^T }
                    \end{array}
                \right]
                    \\
                &
                    \left( \ 
                        \boldsymbol{W} 
                            = \left[ 
                                \begin{array}{c}
                                    \boldsymbol{w_1} & \cdots & \boldsymbol{w_J}
                                \end{array}
                            \right]^T
                            = \left[ 
                                \begin{array}{c}
                                    \boldsymbol{w_1}^T \\
                                    \vdots \\
                                    \boldsymbol{w_J}^T
                                \end{array}
                            \right]
                    \right)
                \tag{ 記事内(A12.3) }
                \\
            &=     % 4
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial p_1}
                            \frac{ \partial p_1(t)}{ \partial \boldsymbol{w_{1} }^T } \\
                        \vdots \\
                        \frac{ \partial E}{ \partial p_J}
                            \frac{ \partial p_J(t)}{ \partial \boldsymbol{w_{J} }^T } \\
                    \end{array}
                \right]
                    \\
                &
                    \left( \ 
                        \because \ 
                        \boldsymbol{w}_i^T を引数に持つのは、p_1, \cdots, p_J のうちで p_i のみ
                    \right) 
                \tag{ 記事内(A12.4) }
                \\
            &=     % 5
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial p_1(t)}
                            \boldsymbol{h}(t-1)^T \\
                        \vdots \\
                        \frac{ \partial E}{ \partial p_J(t)}
                            \boldsymbol{h}(t-1)^T
                        \end{array}
                \right]
                \tag{ 記事内(A12.5) }
                \\
            &=     % 6
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial p_1(t)} \\
                        \vdots \\
                        \frac{ \partial E}{ \partial p_J(t)}
                        \end{array}
                \right] \boldsymbol{h}(t-1)^T
                \tag{ 記事内(A12.6) }
                \\
            &=     % 7
                \frac{ \partial E}{ \boldsymbol{p}(t) }
                \boldsymbol{h}(t-1)^T
                \tag{ 記事内(A12.7) }
                \\
            &=     % 8
                \boldsymbol{e}_h(t)
                \boldsymbol{h}(t-1)^T
                \tag{ 書籍内(5.12),  記事内(A12) }
                \\
    \end{align}

(5.13) ( (5.10)と同様のプロセス )

    \begin{align}
        \frac{ \partial E}{ \partial \boldsymbol{b}}
            &=      % 1
                \frac{ \partial E}{ \partial
                    \left[
                        \begin{array}{c}
                            b_{1} \\
                            \vdots \\
                            b_{J}
                        \end{array}
                    \right]
                }
                \tag{ 記事内(A13.1) }
                \\
            &=     % 2
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial b_{1} } \\
                        \vdots \\
                        \frac{ \partial E}{ \partial b_{J} } 
                    \end{array}
                \right]
                \tag{ 記事内(A13.2) }
                \\
            &=     % 3
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial p_1}
                            \frac{ \partial p_1(t)}{ \partial b_{1} } \\
                        \vdots \\
                        \frac{ \partial E}{ \partial p_J}
                            \frac{ \partial p_J(t)}{ \partial w_{J} } \\
                    \end{array}
                \right]
                    \\
                &
                    \left( \ 
                        \because \ 
                        b_i を引数に持つのは、p_1, \cdots, p_J のうちで p_i のみ
                    \right)
                \tag{ 記事内(A13.3) }
                \\
            &=     % 4
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial p_1(t)} \cdot 1 \\
                        \vdots \\
                        \frac{ \partial E}{ \partial p_J(t)} \cdot 1
                        \end{array}
                \right]
                \tag{ 記事内(A13.4) }
                \\
            &=     % 5
                \left[
                    \begin{array}{c}
                        \frac{ \partial E}{ \partial p_1(t)} \\
                        \vdots \\
                        \frac{ \partial E}{ \partial p_J(t)}
                        \end{array}
                \right]
                \tag{ 記事内(A13.5) }
                \\
            &=     % 6
                \frac{ \partial E}{ \partial \boldsymbol{p}(t) }
                \tag{ 記事内(A13.6) }
                \\
            &=     % 7
                \boldsymbol{e}_h(t) \\
                \tag{ 書籍内(5.13),  記事内(A13) }
                \\
    \end{align}

(5.14) ( (5.13)と同様のプロセス )

    \begin{align}
        \frac{ \partial E}{ \partial \boldsymbol{c}}
            &=     % 1
                \boldsymbol{e}_o(t) 
                    & (略)
                \tag{ 書籍内(5.14),  記事内(A14) }
                \\
    \end{align}

誤差関数E

出力層における活性化関数は、恒等写像 $g( \cdot )$ と定めるので、

    \begin{align}
        \boldsymbol{y}(t)
            &= g( \ \boldsymbol{q}(t) \ ) \\
            &= \boldsymbol{q}(t) \\
    \end{align}

誤差関数 $E$ を2乗和誤差関数として以下のようにとる。(例)

    \begin{align}
        E 
            &:= \frac{1}{2} \sum_{t'=1}^T \| \ \boldsymbol{y}(t') - \boldsymbol{t}(t') \ \|^2
                \tag{ 書籍内番号(5.16), 記事内番号(A16) }
                    \\
            &
                ( \ 標準内積に関するノルム\ )
                \\
            &= \frac{1}{2} \sum_{t'=1}^T \sum_{l'=1}^L ( \ y_{l'}(t') - t_{l'}(t') \ )^2
                \tag{ 記事内番号(A16.1) }
                \\
    \end{align}

厳密に書くと

    \begin{align}
        E 
            &:= \frac{1}{2} \sum_{n=1}^N \sum_{t'=1}^T \| \ \boldsymbol{y_n}(t') - \boldsymbol{t_n}(t') \ \|^2
                \tag{ 記事内番号(A16.2) }
                \\
    \end{align}

5.1.3: Backpropagation Through Time ( BPTT )

p(t), q(t) の勾配

    \begin{align}
        \boldsymbol{e}_h(t)
            &=     % 1
                \frac{ \partial E}{ \partial \boldsymbol{p}(t)}
                \tag{ 記事内番号(A17.1) }
                \\
            &=     % 2
                \frac{ \partial E }{ \partial
                    \left[
                        \begin{array}{c}
                             p_1(t) \\
                             \vdots \\
                             p_J(t)
                        \end{array}
                    \right]
                }
                \tag{ 記事内番号(A17.2) }
                \\
            &=     % 3
                \left[
                    \begin{array}{c}
                        \frac{ \partial E }{ \partial p_1(t) } \\
                        \vdots \\
                        \frac{ \partial E }{ \partial p_J(t) } \\
                    \end{array}
                \right]
                \tag{ 記事内番号(A17.3) }
                \\
            &=     % 4
                \left[
                    \begin{array}{c}
                        \frac{ \partial E }{ \partial h_1(t) }
                            \frac{ \partial h_1(t) }{ \partial p_1(t) } 
                            \\
                        \vdots \\
                        \frac{ \partial E }{ \partial h_J(t)}
                            \frac{ \partial h_J(t) }{ \partial p_J(t) } 
                            \\
                    \end{array}
                \right]
                \tag{ 記事内番号(A17.4) }
                \\
            &=     % 5
                \left[
                    \begin{array}{c}
                        \left( 
                            \sum_{l=1}^L
                                \frac{ \partial E }{ q_l(t) }
                                \frac{ q_l(t) }{ h_1(t) }
                        \right)
                            \frac{ f( \ p_1(t) \ ) }{ \partial p_1(t) } 
                            \\
                        \vdots \\
                        \left( 
                            \sum_{l=1}^L
                                \frac{ \partial E }{ q_l(t) }
                                \frac{ q_l(t) }{ h_J(t) }
                        \right)
                            \frac{ f( \ p_J(t) \ ) }{ \partial p_J(t) } 
                            \\
                    \end{array}
                \right]
                    \\
            &
                    \left( \ 
                        E \ の要素で p_i(t) を引数に持つのは q_1(t), \cdots, q_L(t) \ だから、\sum_{l=1}^L を用いている
                    \right)
                \tag{ 記事内番号(A17.5) }
                \\
            &=     % 6
                \left[
                    \begin{array}{c}
                        \left( 
                            \sum_{l=1}^L
                                \frac{ \partial E }{ q_l(t) }
                                v_{l1}
                        \right)
                            f'( \ p_1(t) \ ) 
                            \\
                        \vdots \\
                        \left( 
                            \sum_{l=1}^L
                                \frac{ \partial E }{ q_l(t) }
                                v_{lJ}
                        \right)
                            f'( \ p_J(t) \ ) 
                            \\
                    \end{array}
                \right]
                \tag{ 記事内番号(A17.6) }
                \\
            &=     % 7
                \left[
                    \begin{array}{c}
                        \left( 
                            \boldsymbol{v'}_1^T
                            \frac{ \partial E}{ \partial \boldsymbol{q}(t) }
                        \right)
                            f'( \ p_1(t) \ ) 
                            \\
                        \vdots \\
                        \left( 
                            \boldsymbol{v'}_J^T
                            \frac{ \partial E}{ \partial \boldsymbol{q}(t) }
                        \right)
                            f'( \ p_J(t) \ ) 
                            \\
                    \end{array}
                \right]
                    \\
            &
                    \left( \ 
                        \boldsymbol{V} 
                            = [ \boldsymbol{v}_1, \cdots, \boldsymbol{v}_L ]^T
                            = \left[
                                \begin{array}{c}
                                    \boldsymbol{v}_1^T \\
                                    \vdots \\
                                    \boldsymbol{v}_L^T \\
                                \end{array}
                            \right]
                            = [ \boldsymbol{v'}_1, \cdots, \boldsymbol{v'}_L ]
                            = \left[
                                \begin{array}{c}
                                    \boldsymbol{v'}_1^T \\
                                    \vdots \\
                                    \boldsymbol{v'}_L^T \\
                                \end{array}
                            \right]^T
                        とする
                    \right)
                \tag{ 記事内番号(A17.7) }
                \\
            &=     % 8
                \left[
                    \begin{array}{c}
                        \boldsymbol{v'}_1^T
                        \boldsymbol{e}_o(t)
                        \\
                        \vdots \\
                        \boldsymbol{v'}_J^T
                        \boldsymbol{e}_o(t)
                        \\
                    \end{array}
                \right]
                \odot
                f'( \ \boldsymbol{p}(t) \ ) 
                    \\
            &
                    ( \ \odot はアダマール積(要素積) \ )
                \tag{ 記事内番号(A17.8) }
                \\
            &=     % 9
                \left[
                    \begin{array}{c}
                        \boldsymbol{v'}_1^T
                        \\
                        \vdots \\
                        \boldsymbol{v'}_J^T
                        \\
                    \end{array}
                \right]
                \boldsymbol{e}_o(t)
                \odot
                f'( \ \boldsymbol{p}(t) \ ) 
                \tag{ 記事内番号(A17.9) }
                \\
            &=     % 10
                \boldsymbol{V}^T
                \boldsymbol{e}_o(t)
                \odot
                f'( \ \boldsymbol{p}(t) \ ) 
                \tag{ 記事内番号(A17.10) }
                \\
            &=     % 11
                f'( \ \boldsymbol{p}(t) \ ) 
                \odot
                \boldsymbol{V}^T
                \boldsymbol{e}_o(t)
                    \\
            &
                    ( \ \because \ アダマール積は可換 \ )
                \tag{ 書籍内番号(5.17), 記事内番号(A17) }
                \\
    \end{align}
    \begin{align}
        \boldsymbol{e}_o(t)
            &=     % 1
                \frac{ \partial E}{ \partial \boldsymbol{q}(t)}
                \tag{ 記事内番号(A18.1) }
                \\
            &=   % 2
                \left[
                    \begin{array}{c}
                        \frac{ \partial \left( \frac{1}{2} \sum_{t'=1}^T \sum_{l'=1}^L ( \ y_{l'}(t') - t_{l'}(t') \ )^2 \right)}{ \partial q_1(t) } \\
                        \vdots \\
                        \frac{ \partial \partial \left( \frac{1}{2} \sum_{t'=1}^T \sum_{l'=1}^L ( \ y_{l'}(t') - t_{l'}(t') \ )^2 \right) }{ \partial q_L(t) } \\
                    \end{array}
                \right]
                \tag{ 記事内番号(A18.2) }
                \\
            &=   % 3
                \left[
                    \begin{array}{c}
                        \frac{ \partial \left( \frac{1}{2} \sum_{t'=1}^T \sum_{l'=1}^L ( \ y_{l'}(t') - t_{l'}(t') \ )^2 \right) }{ \partial y_1(t) }
                            \frac{ \partial y_1(t) }{ \partial q_1(t) }
                            \\
                        \vdots \\
                        \frac{ \partial \left( \frac{1}{2} \sum_{t'=1}^T \sum_{l'=1}^L ( \ y_{l'}(t') - t_{l'}(t') \ )^2 \right) }{ \partial y_L(t) }
                            \frac{ \partial y_L(t) }{ \partial q_L(t) }
                            \\
                    \end{array}
                \right]
                \tag{ 記事内番号(A18.3) }
                \\
            &=   % 4
                \left[
                    \begin{array}{c}
                        \frac{ \partial \left( \frac{1}{2} \sum_{t'=1}^T \sum_{l'=1}^L ( \ y_{l'}(t') - t_{l'}(t') \ )^2 \right) }{ \partial \left( \sum_{l'=1}^L ( \ y_{l'}(t) - t_{l'}(t) \ )^2 \right) }
                            \frac{ \partial \left( \sum_{l'=1}^L ( \ y_{l'}(t) - t_{l'}(t) \ )^2 \right) }{ \partial y_1(t) }
                            \frac{ \partial g( \ q_1(t) \ ) }{ \partial q_1(t) }
                            \\
                        \vdots \\
                        \frac{ \partial \left( \frac{1}{2} \sum_{t'=1}^T \sum_{l'=1}^L ( \ y_{l'}(t') - t_{l'}(t') \ )^2 \right) }{ \partial \left( \sum_{l'=1}^L ( \ y_{l'}(t) - t_{l'}(t) \ )^2 \right) }
                            \frac{ \partial \left( \sum_{l'=1}^L ( \ y_{l'}(t) - t_{l'}(t) \ )^2 \right) }{ \partial y_L(t) }
                            \frac{ \partial g( \ q_L(t) \ ) }{ \partial q_L(t) }
                            \\
                    \end{array}
                \right]
                \tag{ 記事内番号(A18.4) }
                \\
            &=   % 5
                \left[
                    \begin{array}{c}
                        \frac{1}{2}
                            \times 2 \times
                            \left( \ y_{1}(t) - t_{1}(t) \ \right)
                            g'( \ q_1(t) \ )
                            \\
                        \vdots \\
                        \frac{1}{2}
                            \times 2 \times
                            \left( \ y_{:}(t) - t_{L}(t) \ \right)
                            g'( \ q_L(t) \ )
                            \\
                    \end{array}
                \right]
                \tag{ 記事内番号(A18.5) }
                \\
            &=   % 6
                \left[
                    \begin{array}{c}
                        y_{1}(t) - t_{1}(t)
                            \\
                        \vdots \\
                         y_{L}(t) - t_{L}(t)
                            \\
                    \end{array}
                \right]
                \odot
                \left[
                    \begin{array}{c}
                        g'( \ q_1(t) \ ) \\
                        \vdots \\
                        g'( \ q_L(t) \ ) \\
                    \end{array}
                \right]
                \tag{ 記事内番号(A18.6) }
                \\
            &=   % 7
                \left( \ 
                    \boldsymbol{y}(t) - \boldsymbol{t}(t) \ 
                \right)
                \odot
                g'( \ \boldsymbol{q} \ )
                \tag{ 記事内番号(A18.7) }
                \\
            &=   % 8
                g'( \ \boldsymbol{q} \ )
                \odot
                \left( \ 
                    \boldsymbol{y}(t) - \boldsymbol{t}(t) \ 
                \right)
                    \\
            &
                    \ ( \ \because \ アダマール積は可換 \ )
                \tag{ 書籍内番号(5.18), 記事内番号(A18) }
                \\
    \end{align}

q(t-1) の勾配

    \boldsymbol{e}_h(t-1) = \frac{ \partial E }{ \partial \boldsymbol{p}(t-1) }
    \tag{ 書籍内番号(5.19), 記事内番号(A19) }

ここで以下のことを再度確認する。

    \begin{align}
        E
            &= \frac{1}{2} \sum_{t'=1}^T \left\| \boldsymbol{y}(t') - \boldsymbol{t}(t') \right\|^2 \\
            &= \frac{1}{2} \sum_{t'=1}^T \sum_{l'=1}^L \left( y_{l'}(t') - t_{l'}(t') \right)^2 \\\\
        \boldsymbol{y}(t)
            &= g( \ \boldsymbol{q}(t) \ ) \\
            &= g( \ \boldsymbol{V \ h}(t) + \boldsymbol{c} \ ) \\
            &= g( \ \boldsymbol{V} \ f( \ \boldsymbol{p}(t) \ ) + \boldsymbol{c} \ ) \\\\
        \boldsymbol{p}(t)
            &= \boldsymbol{U} \ \boldsymbol{x}(t) + \boldsymbol{W} \ \boldsymbol{h}(t-1) + \boldsymbol{b}\\
            &= \boldsymbol{U} \ \boldsymbol{x}(t) + \boldsymbol{W} \ f( \ \boldsymbol{p}(t-1) \ ) + \boldsymbol{b}\\
     \end{align}

そのうえで、再帰関係式を求めると

    \begin{align}
        \boldsymbol{e}_h(t-1) 
            &=   % 1
                \frac{ \partial E }{ \partial \boldsymbol{p}(t-1) }
                \tag{ 記事内番号(A22.1) }
                \\
            &=   % 2
                \left[
                    \begin{array}{c}
                        \frac{ \partial E }{ \partial p_1(t-1) } \\
                        \vdots \\
                        \frac{ \partial E }{ \partial p_J(t-1) } \\
                    \end{array}
                \right]
                \tag{ 記事内番号(A22.2) }
                \\
            &=   % 3
                \left[
                    \begin{array}{c}
                        \frac{ \partial E }{ \partial f( p_1(t-1) ) }
                            \frac{ \partial f( p_1(t-1) ) }{ \partial p_1(t-1) }
                            \\
                        \vdots \\
                        \frac{ \partial E }{ \partial f( p_J(t-1) ) }
                            \frac{ \partial f( p_J(t-1) ) }{ \partial p_J(t-1) }
                            \\
                    \end{array}
                \right]
                \tag{ 記事内番号(A22.3) }
                \\
            &=   % 4
                \left[
                    \begin{array}{c}
                        \sum_{j=1}^J 
                            \frac{ \partial E }{ \partial p_j(t) }
                                \frac{ \partial p_j(t) }{ \partial f( p_1(t-1) ) }
                                \frac{ \partial f( p_1(t-1) ) }{ \partial p_1(t-1) }
                            \\
                        \vdots \\
                        \sum_{j=1}^J 
                            \frac{ \partial E }{ \partial p_j(t) }
                                \frac{ \partial p_j(t) }{ \partial f( p_J(t-1) ) }
                                \frac{ \partial f( p_J(t-1) ) }{ \partial p_J(t-1) }
                            \\
                    \end{array}
                \right]
                \tag{ 記事内番号(A22.4) }
                \\
            &=   % 5
                \left[
                    \begin{array}{c}
                        \sum_{j=1}^J 
                            \frac{ \partial E }{ \partial p_j(t) }
                                w_{j1} \ 
                                f'( p_1(t-1) )
                            \\
                        \vdots \\
                        \sum_{j=1}^J 
                            \frac{ \partial E }{ \partial p_j(t) }
                                w_{jJ} \ 
                                f'( p_J(t-1) )
                            \\
                    \end{array}
                \right]
                \tag{ 記事内番号(A22.5) }
                \\
            &=   % 6
                \left[
                    \begin{array}{c}
                        \sum_{j=1}^J 
                            \frac{ \partial E }{ \partial p_j(t) }
                                w_{j1} \ 
                            \\
                        \vdots \\
                        \sum_{j=1}^J 
                            \frac{ \partial E }{ \partial p_j(t) }
                                w_{jJ} \ 
                            \\
                    \end{array}
                \right] \ 
                \odot
                f'( \boldsymbol{p}(t-1) )
                \tag{ 記事内番号(A22.6) }
                \\
            &=   % 7
                \left[
                    \begin{array}{c}
                            \boldsymbol{w}_{1}'
                                \frac{ \partial E }{ \partial \boldsymbol{p}(t) }
                            \\
                        \vdots \\
                            \boldsymbol{w}_{J}'
                                \frac{ \partial E }{ \partial \boldsymbol{p}(t) }
                            \\
                    \end{array}
                \right] \ 
                \odot
                f'( \boldsymbol{p}(t-1) )
                    \\
                &
                    \left( \
                        \boldsymbol{W}
                            = 
                                \left[
                                    \begin{array}{c}
                                        \boldsymbol{w}_1' & \cdots & \boldsymbol{w}_J'
                                    \end{array}
                                \right]
                            = 
                                \left[
                                    \begin{array}{c}
                                        \boldsymbol{w}_1'^T \\
                                        \vdots \\
                                        \boldsymbol{w}_J'^T \\
                                    \end{array}
                                \right]^T
                    \right)
                \tag{ 記事内番号(A22.7) }
                \\
            &=   % 8
                \boldsymbol{W}^T
                    \boldsymbol{e}_h(t)
                \odot
                f'( \boldsymbol{p}(t-1) )
                \tag{ 記事内番号(A22.8) }
                \\
            &=   % 9
                f'( \boldsymbol{p}(t-1) )
                \odot
                \boldsymbol{W}^T
                    \boldsymbol{e}_h(t)
                \tag{ 書籍内番号(??5.22??), 記事内番号(A22) }
                \\
    \end{align}

あれ?
テキストと違う答えになってしまった。。。(汗)
(テキストの内容は以下の通り)

    \begin{align}
        \boldsymbol{e}_h(t-1) 
            &=   % 1
                \frac{ \partial E }{ \partial \boldsymbol{p}(t) }
                \odot
                \frac{ \partial \boldsymbol{p}(t) }{ \partial \boldsymbol{p}(t-1) }
                \tag{ 書籍内番号(5.20) }
                \\
            &=   % 2
                \boldsymbol{e}_h(t)
                \odot
                \left( \ 
                    \frac{ \partial \boldsymbol{p}(t) }{ \partial\boldsymbol{h}(t-1) }
                    \frac{ \partial \boldsymbol{h}(t-1) }{ \partial \boldsymbol{p}(t-1) }
                \right)
                \tag{ 書籍内番号(5.21) }
                \\
            &=   % 3
                \boldsymbol{e}_h(t)
                \odot
                \boldsymbol{W}
                f'( \boldsymbol{p}(t-1) )
                \tag{ 書籍内番号(5.22) }
                \\
    \end{align}

私の解法で誤っている数式の記事内番号を教えてくださると助かります。

こちらの論文の内容によると私の解答であっている気がするのですが。。。

(?? その論文の内容にも細かいところにミスがある...かも?)(2017/08/08:追記)

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4