「少し前のことしか覚えられない」のが素朴なRNNの弱点でした。LSTMは、記憶専用の通り道と3つのゲートを備えることでこの弱点を克服し、長い文脈の学習を可能にした代表的モデルです。構成要素を1つずつ整理して理解しましょう。
📖 ひと言でいうと
LSTM(Long Short Term Memory)とは、RNNの一種で、情報を長期間保持する「セル状態」と、情報の出し入れを制御する3つのゲート(忘却ゲート・入力ゲート・出力ゲート)により、長期的な依存関係を学習できるようにしたモデルです。
例えるなら、優秀な秘書付きのノートです。セル状態は長期保存用のノート本体、3つのゲートは秘書の判断に当たります。秘書は「古いメモのどれを消すか(忘却)」「新しい情報のどれを書き込むか(入力)」「今の仕事にどのメモを見せるか(出力)」を毎回判断します。この管理のおかげで、大事な情報は何十ステップ先まで残り、不要な情報は溜まりません。
🖼 1枚でわかるLSTM
📘 公式テキストの説明
LSTM(Long Short Term Memory)は、リカレントニューラルネットワーク(RNN)の一種で、時系列データや自然言語処理など、時間的な依存関係を持つデータの解析に適している。従来のRNNは、長期的な依存関係を学習する際に勾配消失問題に直面し、長期間の情報を保持することが難しかった。LSTMはこの問題を解決するために設計され、長期的な情報の保持と短期的な情報の更新を効果的に行う。LSTMの基本構造は、セル状態(cell state)と3つのゲート(忘却ゲート、入力ゲート、出力ゲート)から成り立つ。セル状態は、情報を長期間保持する役割を担い、ゲートは情報の追加や削除を制御する。忘却ゲートは、過去の情報のうち不要な部分を削除し、入力ゲートは新たな情報をセル状態に追加する。出力ゲートは、セル状態から必要な情報を取り出し、次のステップに伝達する。これらのゲートはシグモイド関数を用いて0から1の範囲で出力し、情報の取捨選択を行う。
かみ砕くと、LSTMの設計思想は「記憶の保管」と「記憶の操作」を分離することです。素朴なRNNは1本の隠れ状態に記憶も計算も混在させていたため、時刻が進むたびに記憶が変換で上書きされ、遠い過去の情報が薄れていきました。学習面でも、誤差逆伝播の掛け算の繰り返しで勾配が消える勾配消失問題により、長期の依存関係が学べませんでした。
LSTMは記憶専用のセル状態という「本線」を用意し、そこへの書き込み・消去・読み出しをすべてゲート経由に限定しました。ゲートはシグモイド関数で0〜1の「弁の開き具合」を出し、情報をどれだけ通すかを学習によって決めます。この構造により、必要な情報は変換を受けずに長距離を流れ、勾配も減衰しにくくなります。
🔍 しっかり理解する
1時刻分の処理を流れで追う
うち不要な部分を削除
選びセル状態に追加
次の時刻へ持ち越し
取り出し出力・次時刻へ
毎時刻この4ステップが繰り返されます。ポイントは、セル状態の更新が「消す(忘却)+足す(入力)」という加算的な編集であることです。全体を変換で塗り替えるのではなく、必要な部分だけ編集するため、触られなかった情報はそのまま何時刻でも生き残れます。
CEC: 勾配を減衰させない仕掛け
LSTMの中核構造はCEC(Constant Error Carousel、定誤差カルーセル)と呼ばれます。セル状態を維持し、誤差が時間をさかのぼる際に一定のまま伝播されることを保証する仕組みです。素朴なRNNでは1時刻ごとに重みが掛け算され誤差が指数的に縮みましたが、CECの経路では誤差が減衰せずに流れるため、遠い過去まで学習信号が届きます。「LSTMが勾配消失問題を回避できる理由はCEC」という対応は試験でも問われるポイントです。
3つのゲートを取り違えないために
ゲートの名前と機能を対応づけて整理します。
- 忘却ゲート: セル状態の過去の情報のうち、不要な部分を削除する(どれだけ忘れるか)
- 入力ゲート: 新たな情報をセル状態に追加する(どれだけ書き込むか)
- 出力ゲート: セル状態から必要な情報を取り出して次のステップに伝達する(どれだけ読み出すか)
3つとも操作の対象はセル状態です。「忘れる・書く・読む」という記憶操作の3点セットと覚えると、GRUの2ゲート(リセット・更新)との区別も明確になります。GRUはセル状態を持たず隠れ状態に一本化し、ゲートを2つに簡素化した後発の改良型(2014年)です。
💡 具体例で考える
LSTMは1997年にHochreiterとSchmidhuberによって提案されました。Transformerが登場する以前、系列データを扱うディープラーニングの主役は長らくLSTMで、スマートフォンの音声認識、機械翻訳、文章の自動生成など、実サービスの中核で使われてきました。
長期依存の具体例として、「私は子どものころフランスに住んでいたので、料理も好きだし、今でも◯◯語を流ちょうに話せる」という文の◯◯を予測する場面を考えます。答えの手がかり「フランス」は文のかなり前方にあり、間に無関係な情報も挟まっています。素朴なRNNではこの距離で記憶が薄れてしまいますが、LSTMなら入力ゲートが「フランス=重要」と判断してセル状態に書き込み、途中の情報で上書きせずに保持し、◯◯の位置で出力ゲートが取り出す、という分担で正しく「フランス語」につなげられます。
⚠️ よくある誤解・紛らわしい用語
- GRUとのゲート構成の混同 — LSTMは忘却・入力・出力の3ゲート+セル状態、GRUはリセット・更新の2ゲートでセル状態なし。「LSTMにリセットゲートがある」「GRUに出力ゲートがある」は誤りです。
- セル状態と隠れ状態の混同 — LSTMは長期記憶を運ぶセル状態と、各時刻の出力に使われる隠れ状態の2本を持ちます。「記憶の本線」がセル状態です。
- 「長期記憶だけのモデル」ではない — 名前(Long Short Term Memory)のとおり、長期的な情報の保持と短期的な情報の更新の両立が狙いです。
- ゲートは0/1のスイッチではない — シグモイド関数により0から1の連続値で「通す量」を調整します。学習によって開き具合そのものが最適化されます。
- 勾配消失問題との関係 — LSTMは「RNNの勾配消失問題への構造的な解決策」であり、学習アルゴリズム(BPTT)を置き換えるものではありません。学習には引き続きBPTTが使われます。
📝 試験でのポイント
- 「セル状態と3つのゲート(忘却・入力・出力)から成る」という構成要素の問題が最頻出です。ゲート名の入れ替え選択肢に注意しましょう。
- 各ゲートの機能(忘却=不要な過去の削除/入力=新情報の追加/出力=必要な情報の取り出し)の対応づけを問う形式が想定されます。
- 「従来RNNの勾配消失問題を解決するために設計された」という登場文脈と、中核構造CECの役割(誤差を一定のまま伝播)を結びつけて覚えましょう。
- GRUとの対比(ゲート数・セル状態の有無・計算効率)は、両キーワードにまたがる定番の出題ポイントです。
📚 まとめ
- LSTMは、従来RNNの勾配消失問題を解決するために設計されたRNNの改良型で、長期的な情報の保持と短期的な更新を両立します。
- 基本構造はセル状態+3つのゲート(忘却・入力・出力)。ゲートはシグモイド関数で0〜1の開き具合を出し、情報を取捨選択します。
- 中核のCECが誤差を減衰させずに伝播させることで、長期的な依存関係の学習を可能にしています。
- 後発の簡素版GRU(2ゲート・セル状態なし)との構成の違いは、試験前に必ず確認しておきましょう。
