各レイヤの重みとバイアスの初期値をランダムに生成します。np.zeros(V)各パラメータの形状については各レイヤの記事を、初期値の設定については1巻の6.2節を参照してください。作成したパラメータを渡して、各レイヤのインスタンスを作成します。h_{N-1,H-1}^{(T-1)})$が、Decoderの0番目のLSTMレイヤに入力します(この$T$はEncoder側の時系列サイズです)。TimeLSTMクラスのset_state()メソッドに$\mathbf{h}_{T-1}$を渡します。ここでは、$\mathbf{h}_{T-1}$を簡易的に作成します。h_{N-1,H-1}^{(t-1)})$」を使うのでした。同様に「Decoderの0番目の隠れ状態$\mathbf{h}_0$」の計算において、(1つ前の隠れ状態のように)「Encoderの隠れ状態$\mathbf{h}_{T-1}$」を使います。TimeLSTMクラスのインスタンス内では、T個のLSTMレイヤが作成されます。各LSTMレイヤで計算される隠れ状態は、TimeLSTMのインスタンス変数hとして保存されます。set_state()メソッドによって、隠れ状態(インスタンス変数)hを書き換えられます。以上でRNNを構築できました。次は順伝播の処理を確認します。各レイヤの順伝播を計算します。x_{N-1,T-1,D-1})$です。h_{N-1,T-1,H-1})$です。y_{N-1,T-1,V-1})$です。Lossレイヤに入力します。Softmaxレイヤによって正規化されたデータを$\mathbf{ys}$で表すこともあります。以上が順伝播の処理です。続いて、逆伝播の処理を確認します。\Bigr)$が入力します。\mathbf{ys}}$を簡易的に作成して、各レイヤの逆伝播を逆順に計算します。