以下の論文を読む準備をします。論文の内容に入っていないのでその0です。
今日読むのはこの論文…。タイトルは…テンソル化したLSTM? LSTMというのは…Long Short-Term Memory…ロングでショート?
「長く(long)保持できる短期記憶(Short-Term Memory)」だよ。最初のLSTMの論文は以下だね。
RNN、聞いたことがある。出力したものを、次の入力へ…それが再帰。だから…順番に考えると…RNNはまず を受け取って を出す。次に を受け取るけど、このときさっき出力した も受け取って、どっちのデータもつかって、 を出す。次は と を受け取って を出す。…これを繰り返すと、最後に が出てくる。 を受け取って を出すことは、再帰のないニューラルネットワークでもできるけど…RNNは、各 番目のデータまでで、「ひとまずその時点での出力 」をして、それを次に引き継いでいる。こうすると、どの時点でも出力が取り出せる…言い換えると、入力データの長さが変わってもいい。それに…順番に観測されるデータを受け取る度に情報が積み重なっていくのが上手く表現できるのかも…。
でも、問題があるんだ。特に入力データ列が長いと、学習が不安定になったりできなくなったりすることがある。絵理さんがいま言ったように、RNNは再帰のないニューラルネットワークでもできる学習を、ネットワーク構造に制約を加えて、パラメータどうしを共有させて学習しようとするものだよね。例えば100ステップのある入力データ でネットワーク学習するとするよ。ネットワークの重み をどの方向に更新すべきかについて、100個のデータが全部注文をつけてくるんだ。それも、RNNの誤差逆伝播法では後ろのステップに伝播する度に掛け合わさる。だから、誤差の絶対値の組合せによっては、誤差が に伝播する頃には、発散するか、消滅しちゃう。
じゃあ…どうすれば…。
そこでLSTMが提案されたんだ。LSTMは下図のような構造をしているよ。あ、LSTMの原理については わかるLSTM ~ 最近の動向と共に - Qiita を参考にしているけど、下図が間違っていたらプロデューサーのせいだからね。
※ Output Gate と Input Gate のテキストが逆になっていたのを修正しました(2017-01-17)。