長・短期記憶
複数のLSTMユニットのアーキテクチャが存在する。一般的なアーキテクチャは、セル(LSTMユニットの記憶部分)と大抵ゲートと呼ばれるLSTMユニット内部の情報の流れの3つの「調整器」(入力ゲート、出力ゲート、忘却ゲート)から構成される。LSTMユニットの一部の変異型はこれらのゲートの1つ以上を持たない、あるいは別のゲートを持つこともある。例えばゲート付き回帰型ユニット(GRU)は出力ゲートを持たない。
直感的には、「セル」は入力配列中の要素間の依存性を追跡するために必要である。「入力ゲート」はセルへの新たな値の流れの度合いを制御し、「忘却ゲート」はセル中に値が留まる度合いを制御し、「出力ゲート」はセル中の値がLSTMユニットの出力活性化を計算するために使われる度合いを制御する。LSTM「ゲート」の活性化関数にはロジスティック関数(英語版)が使われることが多い。
LSTMゲートへの、そしてLSTMからの結合が存在し、そのうちいくつかは回帰結合(リカレント)している。訓練中に学習される必要があるこれらの結合の重みが、ゲートがどのように動作するかを決定する。
一般的なLSTMユニットは、記憶セル、入力ゲート、出力ゲート、および忘却ゲートから構成される。記憶セルは任意の時間間隔にわたって値を記憶し、3つの「ゲート」は記憶セルを出入りする情報の流れを制御する。
LSTMネットワークは時系列データに基づく分類、処理(英語版)、予測によく適している。これは、LSTMネットワークが時系列中の重要な事象間の未知の期間の時間差となることができるためである。LSTMは、従来のRNNを訓練する際に遭遇しうる勾配爆発および消失問題に対処するために開発された。ギャップの長さに対する相対的な鈍感さが、多数の応用におけるRNNや隠れマルコフモデル、その他の系列学習法に対するLSTMの優位性である。
LSTMは2010年代まで主流の地位にあったが、2017年以降は更に高性能なTransformerという基盤モデルに取って代わられていった。
右図は覗き穴結合を持つLSTMユニット(すなわち覗き穴LSTM)の図式的な表現である。覗き穴結合によって、ゲートが定誤差カルーセル(CEC。その活性化がセル状態である)へアクセスすることが可能となる。 h t − 1 {\displaystyle h_{t-1}} は使われず、ほんどの場所で c t − 1 {\displaystyle c_{t-1}} が代わりに使われる。
f t = σ g ( W f x t + U f c t − 1 + b f ) i t = σ g ( W i x t + U i c t − 1 + b i ) o t = σ g ( W o x t + U o c t − 1 + b o ) c t = f t ∘ c t − 1 + i t ∘ σ c ( W c x t + U c c t − 1 + b c ) h t = o t ∘ σ h ( c t ) {\displaystyle {\begin{aligned}f_{t}&=\sigma _{g}(W_{f}x_{t}+U_{f}c_{t-1}+b_{f})\\i_{t}&=\sigma _{g}(W_{i}x_{t}+U_{i}c_{t-1}+b_{i})\\o_{t}&=\sigma _{g}(W_{o}x_{t}+U_{o}c_{t-1}+b_{o})\\c_{t}&=f_{t}\circ c_{t-1}+i_{t}\circ \sigma _{c}(W_{c}x_{t}+U_{c}c_{t-1}+b_{c})\\h_{t}&=o_{t}\circ \sigma _{h}(c_{t})\end{aligned}}}