AI・機械学習
初級

Lstm Network(エルエスティーエムネットワーク)

Lstm Networkは、人工知能・機械学習分野における重要な概念・技術です。

0 回閲覧
0 いいね
2026/4/25 更新
関連タグ
AI
機械学習
初心者向け

LSTM Network(Long Short-Term Memory)

概要

LSTM(Long Short-Term Memory、長短期記憶)は、1997 年に Hochreiter と Schmidhuber が提案した RNN(Recurrent Neural Network、再帰型ニューラルネットワーク)の改良版です。従来の RNN が抱えていた勾配消失問題を解決し、長期的な依存関係を学習できるように設計されており、自然言語処理、音声認識、時系列予測など逐次データの解析に革命をもたらしました。

構造

LSTM の核心は「セル状態(Cell State)」と「3つのゲート」による情報制御です:

セル状態(Cell State)

  • 時間方向に情報を伝達する「ベルトコンベア」のような役割
  • 勾配消失を防ぎ、長期依存を学習可能にする

3つのゲート

  1. Forget Gate(忘却ゲート): セル状態から何を捨てるか決定
  2. Input Gate(入力ゲート): 新しい情報のうち何を追加するか決定
  3. Output Gate(出力ゲート): セル状態から何を出力するか決定

各ゲートはシグモイド関数(0〜1)で重み付けし、情報の流れを制御します。

従来の RNN との違い

項目RNNLSTM
長期依存学習困難100+ ステップ可
勾配消失深刻大幅改善
パラメータ数少ない4 倍
計算コスト低高
実装複雑度シンプル中程度

主な応用

自然言語処理(NLP)

  • 機械翻訳: Seq2Seq モデルの基礎
  • 文章生成: テキスト自動生成
  • 感情分析: ツイート・レビューの極性判定
  • 質問応答: チャットボット初期実装

音声認識

  • 音声 → テキスト変換: Apple Siri、Google Assistant(初期)
  • 話者認識: 声紋認証

時系列予測

  • 株価予測: 金融市場の分析
  • 電力需要予測: 電力会社の運用最適化
  • 気象予測: 短期気象予測

音楽生成

  • メロディ生成: MuseNet の基礎
  • 自動作曲: スタイル学習

動画解析

  • 行動認識: 人物動作の分類
  • 動画キャプション: 動画の自動説明

GRU との比較

GRU(Gated Recurrent Unit)は LSTM の簡略版で、2014 年に提案されました:

項目LSTMGRU
ゲート数32
セル状態独立隠れ状態に統合
パラメータ多い少ない(約75%)
性能高いLSTM に近い
学習速度遅い速い

小規模データでは GRU が有利、大規模データでは LSTM が優位という傾向があります。

Transformer の台頭

2017 年に Google が発表した「Attention Is All You Need」以降、Transformer が多くのタスクで LSTM を上回る性能を示しました:

Transformer の優位性

  • 並列処理: LSTM は逐次処理、Transformer は並列可能
  • 長距離依存: Self-Attention で全トークン間の関係を捉える
  • 学習速度: GPU で桁違いに高速
  • スケーラビリティ: 大規模モデル(GPT、BERT)に適する

現代の用途分担

用途主要モデル
大規模 NLPTransformer(GPT、BERT)
音声認識Conformer(Transformer ベース)
時系列予測LSTM / GRU(依然有用)
小規模・低リソースLSTM / GRU
リアルタイムLSTM(遅延小)

自作 PC での LSTM 実装

PyTorch 例

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

推奨ハードウェア

規模GPUVRAM用途
小規模GTX 16606GB学習入門
中規模RTX 4060 Ti16GB実務レベル
大規模RTX 409024GB研究用途

双方向 LSTM(Bi-LSTM)

順方向と逆方向の LSTM を組み合わせた構造で、前後の文脈を同時に考慮できます:

  • 自然言語処理: POS タギング、NER
  • 音声認識: 前後の音素情報活用
  • 生体信号: ECG、EEG 解析

関連用語

  • RNN(Recurrent Neural Network)
  • GRU(Gated Recurrent Unit)
  • Transformer、Attention 機構
  • Seq2Seq、Encoder-Decoder
  • 勾配消失問題、勾配爆発
この記事について
カテゴリーAI・機械学習
難易度初級
作成日2025/7/11