結論
LSTMはRNNの一種で、隠れ状態だけで過去の情報を受け渡す単純なRNNに、記憶セルと3つのゲートを加え、情報の書き込み・保持・読み出しを調整できるようにしたものです。記憶セルを足し算で更新する経路があるため、単純なRNNで起きやすい勾配消失が緩和され、時間的に離れた入力との関係を学習しやすくなります。
比較表
| 観点 | RNN | LSTM |
|---|---|---|
| 英語 | recurrent neural network | long short-term memory |
| 代表例・提案 | エルマンネットワーク(1990年)、ジョルダンネットワーク | 1997年にHochreiterとSchmidhuberが提案。忘却ゲートは2000年の研究で追加 |
| 過去の情報を保つ場所 | 隠れ状態だけ | 隠れ状態と、それとは別の記憶セル |
| 時刻ごとの更新 | 前の隠れ状態と入力にそれぞれ重みを掛けて足し、tanh関数などに通して隠れ状態を作り直す | 記憶セル=忘却ゲート×前の記憶セル+入力ゲート×新しい候補。隠れ状態=出力ゲート×tanh(記憶セル) |
| ゲート | なし | 入力ゲート・忘却ゲート・出力ゲート(シグモイド関数で0から1の割合を出す) |
| 長期の依存関係 | BPTTで重みと微分が繰り返し掛かり、勾配消失が起きやすい。遠い過去の入力との関係を学びにくい | 記憶セルを通る足し算の経路で誤差が伝わりやすく、離れた時刻の関係も学びやすい |
| 勾配爆発 | 起こりうる。勾配クリッピングで抑える | 起こりうる。勾配クリッピングを併用することが多い |
| パラメータ数(入力と隠れ状態の大きさが同じとき) | 重みとバイアスが1組 | 3つのゲートと新しい候補の分で4組(単純なRNNの約4倍) |
| 学習方法 | BPTT | BPTT(同じく時間方向に展開して誤差逆伝播法を適用する) |
| シラバス項目 | 技術分野 項目22 回帰結合層 | 技術分野 項目22 回帰結合層(CECは項目27 自然言語処理のキーワード) |
| G検定での問われ方 | 隠れ状態の受け渡し、BPTT、勾配消失・勾配爆発の原因、エルマンネットワークとジョルダンネットワークの違い | 3つのゲートの役割、記憶セルの更新計算、CECが勾配消失を防ぐ理由、GRUとの違い |
最終確認日:2026年11月1日
それぞれの説明
単純なRNN
RNNは、各時刻の隠れ状態を次の時刻へ持ち越して、時系列データの前後関係を扱うネットワークです。ゲートを持たない基本の形を、LSTMなどと区別して単純なRNNと呼びます。各時刻では、前の隠れ状態と現在の入力にそれぞれ重みを掛けて足し、tanh関数などに通して、隠れ状態を毎回作り直します。
学習には、時間方向に展開して誤差逆伝播法を適用するBPTTを使います。誤差が時刻をさかのぼるたびに、同じ重みと活性化関数の微分が掛け合わされます。掛かる値が1より小さい状態が続くと勾配は急速に0に近づき(勾配消失)、1より大きい状態が続くと発散します(勾配爆発)。そのため、遠い過去の入力と現在の出力の関係を学習しにくいという弱点があります。
LSTM
LSTMは、この弱点を補うために1997年に提案されたRNNの一種です。隠れ状態とは別に記憶セルを持ち、現在広く使われる形では、入力ゲート・忘却ゲート・出力ゲートの3つで情報の出し入れを調整します。忘却ゲートは、2000年の研究で加わりました。各ゲートはシグモイド関数で0から1の割合を出し、その値を情報に掛けます。
記憶セルは、忘却ゲートで調整した前の内容に、入力ゲートで調整した新しい情報を足し算で加えて更新されます。毎時刻すべてを作り直す単純なRNNと違い、内容を保ったまま運ぶ経路があるので、誤差も過去へ伝わりやすくなります。1997年の元の論文は、記憶セルが重み1の自己結合で内容を運ぶ部分をCECと呼び、誤差を減衰させずに過去へ伝える仕組みとして説明しています。
違いのまとめ方
構造の差は「記憶セルとゲートがあるか」、効果の差は「長い期間の依存関係を学べるか」です。代償として、LSTMは入力と隠れ状態の大きさが同じなら重みが約4倍になり、計算も重くなります。勾配爆発はLSTMでも起こりうるので、勾配クリッピングを併用します。ゲートを2つに減らし、記憶セルを隠れ状態にまとめた簡略版がGRUです。
見分けるコツ
- LSTMはRNNと対立する手法ではなく、RNNの一種です。「RNNとLSTMの違い」は、正確には「単純なRNNとLSTMの違い」を指します。
- 「長期の依存関係を学習したい」「勾配消失を緩和したい」という場面なら、ゲート機構を持つLSTMやGRUが答えの候補です。勾配爆発への対策は勾配クリッピングで、ゲートとは分けて考えます。
- 前の記憶セルをどれだけ残すかは忘却ゲート、新しい候補をどれだけ書き込むかは入力ゲート、記憶セルの内容をどれだけ隠れ状態として出すかは出力ゲートが決めます。ゲートの名前だけで判断せず、どの値に掛かるかで確かめます。
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
単純なRNNでも、LSTMの記憶セルと同じく、前の時刻の隠れ状態をそのまま残し、そこに新しい情報を足し算で加えて次の隠れ状態を作る。
答えを見る
答え × 誤り
単純なRNNは、前の隠れ状態に重みを掛け、入力と合わせてtanh関数などに通すので、毎時刻すべてを作り直します。前の内容を残したまま足し算で更新するのは、LSTMの記憶セルです。この経路が勾配を過去へ伝えやすくします。
-
単純なRNNの隠れ層の活性化関数をReLU関数に替えれば、時刻をさかのぼる勾配の大きさは常に一定に保たれるので、長い系列でもLSTMを使う必要はなくなる。
答えを見る
答え × 誤り
ReLU関数の微分は正の範囲で1ですが、BPTTでは時刻ごとに同じ再帰の重みも掛かります。重みの大きさしだいで勾配はやはり消失や爆発を起こし、負の範囲では微分が0にもなります。
-
入力の次元数と隠れ状態の次元数をそろえて比べると、LSTM層の学習可能なパラメータの数は、単純なRNN層の約4倍になる。
答えを見る
答え ◯ 正しい
LSTMは、入力ゲート・忘却ゲート・出力ゲートと新しい候補の4か所で、単純なRNNと同じ形の重みとバイアスを1組ずつ持つためです。その分、1時刻あたりの計算も重くなります。
関連問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目22 回帰結合層)
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目27 自然言語処理)
- Jeffrey L. Elman, Finding Structure in Time, Cognitive Science 14(2), 179–211 (1990)
- Yoshua Bengio, Patrice Simard, Paolo Frasconi, Learning long-term dependencies with gradient descent is difficult, IEEE Transactions on Neural Networks 5(2), 157–166 (1994)
- Sepp Hochreiter, Jürgen Schmidhuber, Long Short-Term Memory, Neural Computation 9(8), 1735–1780 (1997)
- Felix A. Gers, Jürgen Schmidhuber, Fred Cummins, Learning to Forget: Continual Prediction with LSTM, Neural Computation 12(10), 2451–2471 (2000)
ほかの違い比較
- アジャイルとウォーターフォールの違い 進め方とAI開発での使い分け
- 赤池情報量規準(AIC)とベイズ情報量規準(BIC)の違い 罰則の重さ
- バギングとブースティングの違い 並列か逐次か、減らす誤差の違い
- バッチ正規化とレイヤー正規化の違い 平均と分散を計算する範囲の違い
- バッチ学習・ミニバッチ学習とオンライン学習の違い 更新回数とぶれ
- BERTとGPTの違い エンコーダとデコーダ、学習課題の違い
- CBOWとスキップグラムの違い 予測の向きと学習の速さ
- 分類問題と回帰問題の違い 出力の形で見分けるコツと評価指標
- CNN・RNNとTransformerの違い 得意なデータと計算の並列性
- 協調フィルタリングとコンテンツベースフィルタリングの違い 仕組み
- 共分散と相関係数の違い 式の関係と単位・値の範囲
- データ汚染とAdversarial Attackの違い 学習時か推論時かと対策
- 決定木とランダムフォレストの違い 解釈のしやすさと精度・安定性
- 深さ優先探索と幅優先探索の違い 調べる順番・最短解・メモリ
- 営業秘密と限定提供データの違い 3つの要件と刑事罰の有無
- Faster R-CNNとYOLOの違い 2段階型と1段階型、速度と精度
- GANと拡散モデル(Diffusion Model)の違い 学習と生成の仕組み
- GANとVAEの違い 識別器の有無と学習の仕組み
- GDPRと個人情報保護法の違い 法的根拠・本人の権利・制裁金
- 勾配降下法と誤差逆伝播法の違い 勾配を使う側と求める側
- グリッドサーチとランダムサーチの違い 試行回数の決まり方と効率
- ホールドアウト検証と交差検証の違い 分割回数・計算量・使い分け
- 画像分類(物体識別)と物体検出の違い 出力の形と使い分け
- 委託・第三者提供と共同利用の違い 同意の要否と受け手が使える範囲
- k-means法と階層的クラスタリングの違い クラスタ数を決める時期と計算量
- 個人情報・個人データと保有個人データの違い 範囲の入れ子とかかる義務
- 個人情報と個人識別符号の違い 包含関係と当たる例・当たらない例
- L1正則化とL2正則化の違い 罰則の形と重みが0になるか
- 最小二乗法と最尤法の違い 推定の基準と結果が一致する条件
- LIMEとSHAPの違い 局所近似とシャープレイ値の使い分け
- LSTMとGRUの違い ゲートの数と記憶セルの有無
- 機械学習とディープラーニングの違い 包含関係と特徴量の決め方
- 平均絶対値誤差(MAE)と平均二乗誤差(MSE)の違い 外れ値への強さ
- 正規化と正則化の違い 目的と代表的な手法を表で整理
- 主成分分析(PCA)と特異値分解(SVD)の違い 目的と計算の関係
- 主成分分析(PCA)とt-SNEの違い 線形か非線形か、保つ構造の違い
- 適合率と再現率の違い 分母の違いと重視する場面
- プルーニング・量子化と蒸留の違い 何を減らすかと元モデルの扱い
- Q学習とSARSAの違い 更新式の1か所と方策オン・オフ
- Self-AttentionとSource-Target Attentionの違い Q・K・Vの出どころ
- セマンティック・インスタンスとパノプティックの違い 背景と個体の扱い
- 新規性と進歩性の違い 比べ方とAI発明での論点
- シグモイド関数とソフトマックス関数の違い 出力の合計と使い分け
- ソフトローとハードローの違い 法的拘束力の有無と日本・EUの例
- 強いAIと弱いAIの違い 心をもつと考えるかの違い
- 教師あり学習・教師なし学習と強化学習の違い 学習の手がかりと代表例
- 特許権と著作権の違い 発生・保護対象・期間とAIでの使い分け
- 匿名加工情報と仮名加工情報の違い 加工の程度と第三者提供の可否
- 転移学習とファインチューニングの違い 重みを固定するか更新するか
- 請負契約と準委任契約の違い 完成義務とAI開発での使い分け
- Zero-shotとFew-shotの違い 与える例の数と重みを更新しない点