
この回でつかむこと
LSTMの記憶セルと3つのゲートの役割を言える。
長めの流れを覚えるLSTMって何だろう?
LSTM(Long Short-Term Memory、長・短期記憶)はRNNの一種です。忘却・入力・出力のゲートで情報の流れを調整し、長めの依存関係を扱いやすくします。ただし、どんな長さも必ず覚えられるわけではありません。

RNNは、ずっと前のことを忘れてしまうことがあるの?

そうなんだよ。LSTMは情報を残す道を用意し、何を忘れるかも調整するんだ。

ゲートという仕組みで、情報の通し方を決めるのですね。

AI先生 すべてを覚えるのでなく、残す情報を調整するんだよ。
LSTMはLong Short-Term Memory。記憶セルをゲートで調整する。 LSTM(Long Short-Term Memory、長・短期記憶)はRNNの一種です。忘却・入力・出力のゲートで情報の流れを調整し、長めの依存関係を扱いやすくします。ただし、どんな長さも必ず覚えられるわけではありません。
import torch
from torch import nn
lstm = nn.LSTM(input_size=1,hidden_size=4,batch_first=True)
x = torch.tensor([[[0.0],[0.5],[1.0]]])
out,(hidden,cell) = lstm(x)
print(out.shape,hidden.shape,cell.shape)なぜそうなる? 時刻ごとの出力に加え、最後のhiddenと記憶セルcellが返ります。
RNNと同じ窓を使える
データの切り出し方はRNNと共通です。変わるのは内部の計算と、記憶セルの扱いです。
values = torch.sin(torch.linspace(0,3.14,12))
windows = torch.stack([values[i:i+4] for i in range(8)]).unsqueeze(-1)
print(windows.shape)ここに注目 8件・4時刻・1特徴の形です。次の値を正解にして学習できます。
予想して、理由を話そう
答えを選んで、説明を確かめよう。外れても発見が一つ増えるよ。
答えを選ぶと理由が表示されます。
Colabで試してみよう
コードの実行はColaboratoryの実行環境で行います。まずノートブックを保存し、Colabで「ファイル → ノートブックをアップロード」から開いてください。上から順に実行し、最後に値を変えてみましょう。
保存ボタンを押しても画面は切り替わりません。通常はブラウザの「ダウンロード」フォルダに .ipynb が保存されます。見つからない場合はダウンロード履歴を確認してください。Colabの実習は小さな例から始められます。
身近な技術とつなげてみよう

AI先生:長い会話では、聞いたことを全部同じように覚え続けなくてもいいよね。大切な話題を残す考え方に似ているんだ。
この回の重要な用語
本文で出会った言葉を、ここで意味と一緒に振り返ろう。上の「ことばの窓」からも説明を開けるよ。
- LSTM
- Long Short-Term Memory。記憶セルとゲートを持つRNNの一種です。
- 記憶セル
- 前の時刻から情報を持ち越す内部の通り道です。
- ゲート
- 情報をどれだけ残し、加え、出すかを調整する仕組みです。