Lstm Networkは、人工知能・機械学習分野における重要な概念・技術です。
LSTM(Long Short-Term Memory、長短期記憶)は、1997 年に Hochreiter と Schmidhuber が提案した RNN(Recurrent Neural Network、再帰型ニューラルネットワーク)の改良版です。従来の RNN が抱えていた勾配消失問題を解決し、長期的な依存関係を学習できるように設計されており、自然言語処理、音声認識、時系列予測など逐次データの解析に革命をもたらしました。
LSTM の核心は「セル状態(Cell State)」と「3つのゲート」による情報制御です:
各ゲートはシグモイド関数(0〜1)で重み付けし、情報の流れを制御します。
| 項目 | RNN | LSTM |
|---|---|---|
| 長期依存 | 学習困難 | 100+ ステップ可 |
| 勾配消失 | 深刻 | 大幅改善 |
| パラメータ数 | 少ない | 4 倍 |
| 計算コスト | 低 | 高 |
| 実装複雑度 | シンプル | 中程度 |
GRU(Gated Recurrent Unit)は LSTM の簡略版で、2014 年に提案されました:
| 項目 | LSTM | GRU |
|---|---|---|
| ゲート数 | 3 | 2 |
| セル状態 | 独立 | 隠れ状態に統合 |
| パラメータ | 多い | 少ない(約75%) |
| 性能 | 高い | LSTM に近い |
| 学習速度 | 遅い | 速い |
小規模データでは GRU が有利、大規模データでは LSTM が優位という傾向があります。
2017 年に Google が発表した「Attention Is All You Need」以降、Transformer が多くのタスクで LSTM を上回る性能を示しました:
| 用途 | 主要モデル |
|---|---|
| 大規模 NLP | Transformer(GPT、BERT) |
| 音声認識 | Conformer(Transformer ベース) |
| 時系列予測 | LSTM / GRU(依然有用) |
| 小規模・低リソース | LSTM / GRU |
| リアルタイム | LSTM(遅延小) |
import torch.nn as nn
class LSTMModel(nn.Module):
def __init__(self, input_size, hidden_size, num_layers, output_size):
super().__init__()
self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True)
self.fc = nn.Linear(hidden_size, output_size)
def forward(self, x):
out, _ = self.lstm(x)
out = self.fc(out[:, -1, :])
return out
| 規模 | GPU | VRAM | 用途 |
|---|---|---|---|
| 小規模 | GTX 1660 | 6GB | 学習入門 |
| 中規模 | RTX 4060 Ti | 16GB | 実務レベル |
| 大規模 | RTX 4090 | 24GB | 研究用途 |
順方向と逆方向の LSTM を組み合わせた構造で、前後の文脈を同時に考慮できます: