再帰型ニューラルネットワーク(Recurrent Neural Network, RNN)およびその拡張であるLSTM(Long Short-Term Memory)は、時系列データや系列データ(自然言語、音声、株価など)を扱うために設計されたニューラルネットワークの一種です。PyTorchを用いることで、これらのネットワークを柔軟に構築・訓練・評価することが可能です。
1. RNNの概要
特徴
-
RNNは「現在の入力と過去の出力(隠れ状態)を入力として次の出力を決定する構造」を持ちます。
-
これにより、**時系列のような「順番に意味があるデータ」**をモデル化できます。
数式表現(基本RNNセル)
-
h_t:現在の隠れ状態 -
x_t:時刻tの入力 -
y_t:出力 -
W_*:重み行列
問題点
-
長期依存関係(long-term dependencies)の学習が難しい(勾配消失/爆発)
2. LSTMの概要
LSTMはRNNの構造を改良し、**「長期依存の情報を保持する能力」**を持たせたモデルです。
LSTMセルの構成要素
LSTMは3つのゲートとセル状態を用います:
-
入力ゲート
i_t: 現在の入力をどれだけ記憶セルに加えるか -
忘却ゲート
f_t: 以前のセル状態をどれだけ忘れるか -
出力ゲート
o_t: セル状態からどれだけ出力するか -
セル状態
C_t: 長期記憶を保持するベクトル
数式(簡略)
3. PyTorchでの実装例(LSTMによる時系列予測)
使用例
4. 応用例
-
自然言語処理(文生成、感情分析)
-
音声認識
-
株価予測、電力需要予測
-
時系列分類・回帰
5. LSTMの改良モデル
-
GRU(Gated Recurrent Unit):LSTMの簡略版で、計算量が少なく学習が速い
-
BiLSTM(双方向LSTM):系列の前後を同時に考慮
-
Stacked LSTM:LSTMを複数階層に積み重ねて表現力を向上
6. まとめ
| 特性 | RNN | LSTM |
|---|---|---|
| 長期依存 | 学習困難 | 学習可能(セル構造による) |
| 構造 | 単純 | ゲート構造が複雑 |
| 使用頻度 | 現在は少ない | 主流(特に系列データ) |
生成日:2025/05/22