# Understanding LSTM Networks > [!abstract] 概要 > Christopher Olah が2015年に公開した、LSTM の長期依存問題、セル状態、三つのゲート、代表的な変種を図解する技術記事である。30papers は本文を転載せず、著者・年・原典への導線を掲載している。以下の技術内容は原典を最後まで確認して整理した。(Source: [[.raw/articles/30papers-understanding-lstms-2026-07-28.md]]) ## 掲載情報 - **30papers**: [Understanding LSTM Networks](https://30papers.com/papers/understanding-lstms/) - **原典**: [Understanding LSTM Networks](https://colah.github.io/posts/2015-08-Understanding-LSTMs/) - **著者**: [[Christopher Olah]] - **公開日**: 2015年8月27日 - **形式**: 図解付き技術記事 ## 問題設定 [[RNN]] はループを通じて前時刻の情報を次時刻へ渡すため、音声認識、言語モデル、翻訳、画像キャプションなどの系列処理に適する。時間方向へ展開すると、同じネットワークモジュールの複製が後続モジュールへ状態を渡す鎖として理解できる。(Source: [[.raw/articles/30papers-understanding-lstms-2026-07-28.md]]) 標準的な RNN は、必要な情報と利用地点が近ければ過去を利用できる。しかし両者の隔たりが大きい長期依存では、理論上は表現可能であっても実際の学習が困難になる。記事は、遠い文脈にある国名から後続の言語名を予測する例でこの差を説明する。(Source: [[.raw/articles/30papers-understanding-lstms-2026-07-28.md]]) ## LSTM の中核 [[LSTM]] は長期依存を学習するために設計された RNN の一種であり、標準 RNN の単純な反復モジュールを、相互作用する四つのニューラルネットワーク層を持つモジュールへ置き換える。(Source: [[.raw/articles/30papers-understanding-lstms-2026-07-28.md]]) ![[_attachments/30papers-understanding-lstms/fig01-lstm-chain.png]] LSTM の反復モジュールを時間方向に並べた全体像である。上側の水平線がセル状態、下側の経路が入力 $x_t$ と直前の隠れ状態 $h_{t-1}$ から各ゲートを計算する流れを示す。(Source: [原典](https://colah.github.io/posts/2015-08-Understanding-LSTMs/)) 中核はセル状態 $C_t$ である。セル状態は鎖全体をほぼ線形に横断し、ゲートが必要な情報だけを除去・追加する。ゲートはシグモイド層と要素積からなり、各成分を通す割合を0から1の範囲で決める。(Source: [[.raw/articles/30papers-understanding-lstms-2026-07-28.md]]) ## 三つのゲートと状態更新 ### 忘却ゲート 忘却ゲートは $h_{t-1}$ と $x_t$ を入力とし、セル状態の各成分をどの程度保持するかを決める。 $ f_t = \sigma(W_f [h_{t-1}, x_t] + b_f) $ 値1は完全な保持、値0は完全な破棄を意味する。(Source: [[.raw/articles/30papers-understanding-lstms-2026-07-28.md]]) ![[_attachments/30papers-understanding-lstms/fig02-forget-gate.png]] 忘却ゲート $f_t$ が直前のセル状態 $C_{t-1}$ を成分ごとに減衰させる。(Source: [原典](https://colah.github.io/posts/2015-08-Understanding-LSTMs/)) ### 入力ゲートと候補値 入力ゲート $i_t$ は更新する成分を選び、$\tanh$ 層は新しい候補値 $\tilde{C}_t$ を生成する。 $ i_t = \sigma(W_i [h_{t-1}, x_t] + b_i) $ $ \tilde{C}_t = \tanh(W_C [h_{t-1}, x_t] + b_C) $ 新しいセル状態は、保持した過去と選択した候補値の加算で得られる。 $ C_t = f_t * C_{t-1} + i_t * \tilde{C}_t $ (Source: [[.raw/articles/30papers-understanding-lstms-2026-07-28.md]]) ![[_attachments/30papers-understanding-lstms/fig03-cell-state-update.png]] 忘却ゲートによる過去の減衰と入力ゲートによる候補値の追加を、一つの加法的なセル状態更新として示す。(Source: [原典](https://colah.github.io/posts/2015-08-Understanding-LSTMs/)) ### 出力ゲート 出力ゲート $o_t$ はセル状態のどの成分を隠れ状態として公開するかを決める。 $ o_t = \sigma(W_o [h_{t-1}, x_t] + b_o) $ $ h_t = o_t * \tanh(C_t) $ セル状態そのものと、現在時刻に読み出す隠れ状態を分けることで、内部記憶を維持しながら必要な情報だけを出力できる。(Source: [[.raw/articles/30papers-understanding-lstms-2026-07-28.md]]) ## 変種 - **覗き穴結合(peephole connection)**: ゲートがセル状態も参照する構造 - **忘却・入力ゲートの結合**: 古い値を忘れる場合だけ新しい値を入力する構造 - **GRU**: 忘却ゲートと入力ゲートを更新ゲートに統合し、セル状態と隠れ状態も統合する単純化 - **Depth Gated RNN / Clockwork RNN**: 長期依存へ異なる構造から取り組む方式 記事が紹介する2015年時点の比較では、代表的な LSTM 変種の性能は概ね同程度であり、1万を超える RNN 構造の探索では特定タスクで LSTM を上回る構造も見つかっている。したがって、LSTM は唯一の構造ではなく、ゲート付き状態更新という設計空間の有力な基準点として位置づけられる。(Source: [[.raw/articles/30papers-understanding-lstms-2026-07-28.md]]) ## 歴史的位置づけ 記事は LSTM を RNN の成果を支えた大きな前進と評価し、次の前進としてアテンションを挙げる。2015年当時のこの見通しは、その後 [[Transformer]] が系列モデルの中心となった歴史を理解するうえで重要である。ただし、記事自体はアテンションを将来方向として紹介しており、後年の展開を実証したものではない。(Source: [[.raw/articles/30papers-understanding-lstms-2026-07-28.md]]) ## 関連 - [[LSTM]] - [[RNN]] - [[Christopher Olah]] - [[Transformer]] ## 出典 - [[.raw/articles/30papers-understanding-lstms-2026-07-28.md]] - [30papers 掲載ページ](https://30papers.com/papers/understanding-lstms/) - [Christopher Olah, “Understanding LSTM Networks”](https://colah.github.io/posts/2015-08-Understanding-LSTMs/)