らんだむな記憶

blogというものを体験してみようか!的なー

RNN (5)

https://github.com/oreilly-japan/deep-learning-from-scratch-3/blob/master/steps/step59.py#L45の部分は具体的にどういう次元のデータが生成されているのであろうか?数式的には

\begin{align} h_t = \tanh (h_{t-1} W_h + x_t W_x + b) \end{align}

で表される部分である。(正確にはこの $h_t$ は次の全結合層で 1 次元に圧縮される)

print(model.rnn.h.shape, model.rnn.h2h.W.shape, x.shape, model.rnn.x2h.W.shape)

で中身を確認してみると

(1, 100) (100, 100) (1, 1) (1, 100)

が得られる。 $h_{t-1}$ は 1x100 次元, $W_h$ は 100x100 次元, $x_t$ は 1x1 次元, $W_x$ は 1x100 次元であるというわけだ。なるほど。

\begin{align} \R^{1} \longrightarrow \R^{100} \longrightarrow \R^{1} \end{align}

というデータの変換が行われているわけだ。