Long Short-Term Memory (LSTM)
Long Short-Term Memory (LSTM) ネットワークを探ります。時系列データ、NLP、ビデオ解析タスクにおいて、LSTM がどのように RNN の勾配消失問題を解決するかを学びましょう。
Long Short-Term Memory (LSTM) は、シーケンス予測問題における順序の依存関係を学習する能力を持つ、recurrent neural network (RNN) アーキテクチャの特化したタイプです。標準的なフィードフォワードニューラルネットワークとは異なり、LSTMにはフィードバック接続があるため、単一のデータポイント(画像など)だけでなく、データ全体のシーケンス(音声や動画など)を処理できます。この機能により、初期の入力からのコンテキストが現在のデータを理解するために不可欠であるタスクに非常に適しており、従来のRNNの「短期記憶」の制限に対処します。
標準的なRNNの問題点#
LSTMの革新を理解するためには、基本的な recurrent neural networks が直面する課題を見るのが役立ちます。RNNはシーケンシャルな情報を処理するように設計されていますが、vanishing gradient の問題により、長いデータシーケンスの処理に苦労します。ネットワークが時間を遡って逆伝播するにつれて、ネットワークの重みを更新するために使用される値である勾配が指数関数的に小さくなり、離れたイベント間の接続をネットワークが学習するのを実質的に妨げます。これは、標準的なRNNが前の文の単語を覚えている一方で、3段落前に確立されたコンテキストを忘れてしまう可能性があることを意味します。LSTMは、より長い期間にわたって context window を維持できる、より複雑な内部構造を導入することで、この問題を解決するために明示的に設計されました。
LSTMの仕組み#
LSTMの背後にある核となる概念はセルステートであり、これはネットワークのチェーン全体を通るコンベアベルトのように説明されることがよくあります。このステートにより、情報が変更されずに流れ、長期的な依存関係が保持されます。ネットワークは、「ゲート」と呼ばれる構造を使用して、このセルステートから何を保存し、更新し、破棄するかを決定します。
- 忘却ゲート: このメカニズムは、どの情報がもはや関連性がなく、セルステートから削除されるべきかを決定します。例えば、言語モデルが新しい被験者に遭遇した場合、前の被験者の性別を「忘れる」ことがあります。
- 入力ゲート: このゲートは、どの新しい情報が重要であり、セルステートに保存すべきかを決定します。
- 出力ゲート: 最後に、このゲートは内部ステートのどの部分を次の隠れステートに出力し、直近の予測に使用するかを制御します。
この情報の流れを調整することにより、LSTMは1,000ステップを超えるタイムラグを埋めることができ、time series analysis を必要とするタスクにおいて従来のRNNを大きく上回るパフォーマンスを発揮します。
実社会での応用#
LSTMは、過去10年間にわたる deep learning の多くの主要なブレークスルーを推進してきました。以下に、その適用の2つの顕著な例を示します。
- 翻訳におけるシーケンス・ツー・シーケンスモデリング: LSTMは machine translation システムの基礎となります。このアーキテクチャでは、1つのLSTM(エンコーダー)がある言語(英語など)の入力文を処理し、コンテキストベクトルに圧縮します。2つ目のLSTM(デコーダー)がこのベクトルを使用して、別の言語(フランス語など)で翻訳を生成します。長さの異なる入力および出力シーケンスを処理するこの能力は、natural language processing (NLP) にとって不可欠です。
- 動画分析と行動認識: ResNet-50 のような畳み込みニューラルネットワーク(CNN)は静止画内のオブジェクトの識別には優れていますが、時間感覚がありません。CNNとLSTMを組み合わせることで、AIシステムはビデオストリーム内で action recognition を実行できます。CNNは各フレームから特徴を抽出し、LSTMはこれらの特徴のシーケンスを分析して、人物が歩いているか、走っているか、転倒しているかを判断します。
LSTMとコンピュータビジョンの統合#
現代の computer vision では、LSTMは強力な特徴抽出器と併用されることがよくあります。たとえば、YOLOモデルを使用して個々のフレーム内のオブジェクトを検出し、LSTMを使用してその軌跡を追跡したり、将来の動きを予測したりすることができます。
以下は、ビデオストリームから抽出された特徴量のシーケンスを処理できるシンプルなLSTMを定義するために torch を使用した概念的な例です。
import torch
import torch.nn as nn
# Define an LSTM model for processing sequential video features
# Input size: 512 (e.g., features from a CNN), Hidden size: 128
lstm_model = nn.LSTM(input_size=512, hidden_size=128, num_layers=2, batch_first=True)
# Simulate a batch of video sequences: 8 videos, 10 frames each, 512 features per frame
video_features = torch.randn(8, 10, 512)
# Pass the sequence through the LSTM
output, (hidden_state, cell_state) = lstm_model(video_features)
print(f"Output shape: {output.shape}") # Shape: [8, 10, 128]
print("LSTM successfully processed the temporal sequence.")関連する概念と区別#
LSTMを他のシーケンス処理アーキテクチャと区別すると理解しやすくなります。
- LSTMとGRU: Gated Recurrent Unit (GRU) は、LSTMの簡略化されたバリエーションです。GRUは忘却ゲートと入力ゲートを単一の「更新ゲート」にまとめ、セル状態と隠れ状態をマージします。これにより、GRUは計算効率が向上し、トレーニングが高速になりますが、より大規模で複雑なデータセットではLSTMの方が依然として優れたパフォーマンスを発揮する場合があります。
- LSTMとTransformers: 再帰ではなく self-attention メカニズムに依存する Transformer アーキテクチャは、GPT-4 によって実行されるようなNLPタスクにおいて、大部分でLSTMに取って代わりました。Transformerはシーケンシャルではなく並列にシーケンス全体を処理できるため、大規模なデータセットでのトレーニングを大幅に高速化できます。ただし、LSTMは、アテンションメカニズムのオーバーヘッドが不要な、データが限られたシナリオや特定の時系列の制約があるシナリオにおいて、依然として関連性を持っています。
進化と未来#
attention mechanism が generative AI の中心舞台を占める一方で、LSTMは、特に計算リソースが制限されている edge AI 環境において、軽量なアプリケーションにとって堅牢な選択肢であり続けています。研究者は、LSTMのメモリ効率と現代の object detection システムの表現力を組み合わせたハイブリッドアーキテクチャの探索を続けています。
シーケンスモデルや複雑なビジョンタスクのトレーニング用にデータセットを管理したいと考えている方のために、Ultralytics Platform はアノテーションとデータセット管理のための包括的なツールを提供しています。さらに、LSTMの機能の仕組みを理解することは、autonomous vehicles やロボット工学で使用される、より高度な時間モデルを理解するための強力な基礎を提供します。






