LSTM
LSTM は直訳すると「長い短期記憶」となります。長い?短い?どっちなの?と迷いますが,短期記憶とはすぐに忘却してしまうようなその場限りの記憶です。短期記憶の影響を長期に渡って保持する能力を持つリカレントネットワークモデルです。2010年代になってから,このリカレントネットワークモデルの学習時に必要となる実用的な手法の提案がなされ,現実的な問題を解くことが可能になりました。音声認識,機械翻訳,ロボット制御,手書き文字生成,など応用範囲が広がりました。 以下に LSTM の概念図を示しました。
図で情報は下から上へと流れます。中央にセルと書いてある部分にリカレント結合(再帰結合)があります
LSTM はメモリセルと呼ばれる記憶素子と3つのゲート(門)から構成されています。3つもゲートには名前がついていて,入力ゲート,出力ゲート,忘却ゲートと言います。図では忘却ゲートは左から,入力ゲートと出力ゲートは右から中央に流れ込んできます。 ゲートに2種類の記号が使われていることを確認してください。一つはギリシャアルファベットのシグマσ,もう一種類は英語のアルファベットのgとhです。
さらに,ゲートの流れと合流する点に2種類あることも確認してください。 マルで囲まれた+の記号と,マルで囲まれた・の記号です。マルで囲まれた+は全部を足し合わせることを,マルで囲まれた・は掛け算を表しています。
青で書かれたピープホールの説明は後回しにして,説明を続けます。
セルへの入力は通常のニューラルネットワークの入力です。この他に3つのゲートにも入力が加わります。ですから入力と結びついている結合係数が通常のネットワークの4倍必要になります。セルへの入力+3つのゲートへの入力で4倍です。3つのゲートへの入力はゲートの開平のために使われます。
3つのゲートは情報をどの程度通すのかの制御に使われます。ゲートが閉じていれば,すなわち 0 に近づくので,情報は通りにくくなります。一方,ゲートが開いている状態は正の状態,シグモイド関数が1に近い場合です。 忘却ゲートが開いていると,1時刻前のセル自身の状態が自分の状態に影響を及ぼすことになります。すなわち忘却ゲートの役割は,直前の影響をどの程度考慮するかを定めることになります。通常のリカレントネットにはゲートがありません。ですからゲートに積極的な役割を与えることが,ゲート自身が結合係数を学習することで,情報の流れを制御します。
もう一つの注意点として実線と点線の区別に注目してください。実線は即時的に働く流れです。一方点線は時間遅延を表します。次の時刻に影響を及ぼすことを示しています。
最後に後回しにした青線で描かれたピープホールですが,セルの内容が直接ゲートを制御するために導入されました。セル自身がゲートを制御することで,より積極的にゲートの開平の効率向上を目指しています。
図では1つの LSTMブロックだけが描かれています。LSTMブロックが複数集まってLSTM層を構成します。LSTM層を多層化するとディープLSTMになります。多層のLSTMでは,時間的空間的に異なる抽象化が表象されると考えられます。
LSTMの学習についてはBPTTかRTRLが使われます。BPTTもRTRLも時間を遡って学習が行われます。 LSTについての中級者向け話題
外部サイト
- Understanding LSTM Networks: 英語ですが定評のあるLSTM解説 Colah さんのブログ
- LSTMネットワークの概要: 上の Colah さんのブログの翻訳のようです