
この回でつかむこと
窓の作り方とRNNの入力形状を説明できる。
前の情報を次へ渡すRNNって何だろう?
RNN(Recurrent Neural Network、再帰型ニューラルネットワーク)は、前の時刻から受け取った状態を次の計算へ渡します。連続した数を3日分ずつ一組にし、その次の日の値を予測する練習ができます。

今日の気温だけで明日を決めるより、昨日も見たいな。

その発想が時系列の入口なんだよ。RNNは前の情報を次へ渡すんだ。

入力の形は、件数・時刻数・特徴数の順に確かめます。

あおい 窓を1日ずらすと、次の予測問題ができるんだ!
連続する値を3日分ずつ一組にし、その次の日の値と組にする。 RNN(Recurrent Neural Network、再帰型ニューラルネットワーク)は、前の時刻から受け取った状態を次の計算へ渡します。連続した数を3日分ずつ一組にし、その次の日の値を予測する練習ができます。
import torch
from torch import nn
rnn = nn.RNN(input_size=1,hidden_size=4,batch_first=True)
x = torch.tensor([[[18.],[19.],[20.]]])
out,state = rnn(x)
print(out.shape,state.shape)なぜそうなる? 1件×3時刻の入力に対し、各時刻の状態と最後の状態が得られます。
窓をずらす
3日分を入力し、4日目を正解とします。窓を1日ずらすと次の学習例ができます。
values = torch.tensor([18.,19.,20.,21.,22.])
windows = torch.stack([values[i:i+3] for i in range(2)])
answers = values[3:]
print(windows,answers)ここに注目 未来の値を入力へ先取りせず、次の値だけを答えにします。
予想して、理由を話そう
答えを選んで、説明を確かめよう。外れても発見が一つ増えるよ。
答えを選ぶと理由が表示されます。
Colabで試してみよう
コードの実行はColaboratoryの実行環境で行います。まずノートブックを保存し、Colabで「ファイル → ノートブックをアップロード」から開いてください。上から順に実行し、最後に値を変えてみましょう。
保存ボタンを押しても画面は切り替わりません。通常はブラウザの「ダウンロード」フォルダに .ipynb が保存されます。見つからない場合はダウンロード履歴を確認してください。Colabの実習は小さな例から始められます。
身近な技術とつなげてみよう

AI先生:昨日のメールの続きは、昨日を知らないと読み取りにくいよね。順番そのものが情報なんだ。
この回の重要な用語
本文で出会った言葉を、ここで意味と一緒に振り返ろう。上の「ことばの窓」からも説明を開けるよ。
- RNN
- Recurrent Neural Network。前の時刻の状態を次へ渡すモデルです。
- 時系列
- 時間の順番が意味を持つデータです。
- シーケンス
- 順番のある一続きのデータです。
- hidden state
- RNNが次の時刻へ渡す内部の状態です。