以下の論文を読みます。
Zhen He, Shaobing Gao, Liang Xiao, Daxue Liu, Hangen He and David Barber. Wider and Deeper, Cheaper and Faster: Tensorized LSTMs for Sequence Learning. arXiv: 1711.01577, 2017. https://arxiv.org/abs/1711.01577
※ 以下、キャラクターが会話します。それぞれの原作とは関係ありません。内容の誤りは本ブログ筆者に帰属します。
(その4があれば)つづく
前回:その2 / 次回:まだ
RNN は、ステップ毎に「前回の特徴 + 今回の入力」を「今回の特徴」に変換することによって、ある系列の特徴を得ることを目指す。RNN層をスタックすれば特徴の特徴を得ることもできる。でも、層をスタックするほど実行時間も勾配消失(爆発)の危険も増大する。層を積み重ねずに深く特徴を抽出したいなら、ある層が抽出した特徴を次の層に渡すとき、次の時間ステップに渡すように歪めてしまう。つまり、「前回の浅い特徴 + 前回の深い特徴」を「今回の深い特徴」にする。これによって、前回の浅い特徴から今回の深い特徴まで架け橋ができる。時間ステップが経過する度、特徴は深くなる。さらに、後ろの層の特徴を参照してもいい。表現力も増す。
歪みのない Stacked RNN だったらそれでも大丈夫…。記憶セルは、時が流れても拡大も縮小もされない特徴を確保するための仕組み。時を遡っても誤差が拡大も縮小もされないことを保証する。でも、Tensorized RNN 上の誤差逆伝播では前のステップの同じ層にだけじゃない、前の層にも後ろの層にも誤差を伝播さなければならない…。
それはそうだけど…記憶セルのお陰で勾配消失(爆発)の懸念は払拭されたんじゃ…あ、伝播に支障をきたすのはもしかして重み係数のコンフリクトの方?