RNN・LSTMの詳細と限界

再帰型ニューラルネットワークの数学的基盤、勾配問題とその解決策(LSTM/GRU)、Seq2Seqパラダイム、Attentionの導入。Transformerへの移行理由と現在の適用領域。

最終更新:2025年11月

アーキテクチャ進化

※画像は生成AIによるイメージです。

1. Vanilla RNN

1.1 基本構造

時刻 $t$ における隠れ状態 $h_t$ の更新:

$$h_t = \tanh(W_{hh} h_{t-1} + W_{xh} x_t + b_h)$$ $$y_t = W_{hy} h_t + b_y$$

パラメータ:

  • $W_{hh}$:隠れ状態→隠れ状態(再帰重み)
  • $W_{xh}$:入力→隠れ状態
  • $W_{hy}$:隠れ状態→出力

全時刻でパラメータを共有。これが時間方向の汎化を可能にする。

1.2 Backpropagation Through Time(BPTT)

時間方向に展開したグラフで誤差逆伝播。

$$\frac{\partial L}{\partial W_{hh}} = \sum_{t=1}^T \frac{\partial L_t}{\partial W_{hh}}$$

各 $\frac{\partial L_t}{\partial W_{hh}}$ は時刻 $1$ から $t$ までの全経路を含む。

1.3 RNNの変種

  • Elman Network:標準的なRNN
  • Jordan Network:出力を再帰入力に
  • Bidirectional RNN:双方向処理
  • Deep RNN:複数層のスタック

主要論文:

  • Elman (1990) "Finding Structure in Time", Cognitive Science
  • Werbos (1990) "Backpropagation Through Time: What It Does and How to Do It", Proc. IEEE
  • Schuster & Paliwal (1997) "Bidirectional Recurrent Neural Networks", IEEE Trans. Signal Processing

2. 勾配消失・爆発問題

2.1 数学的解析

時刻 $t$ から時刻 $k$ ($k < t$)への勾配伝播:

$$\frac{\partial h_t}{\partial h_k} = \prod_{i=k+1}^{t} \frac{\partial h_i}{\partial h_{i-1}} = \prod_{i=k+1}^{t} W_{hh}^T \text{diag}(\tanh'(z_i))$$

問題:

  • $\|W_{hh}\| < 1$:勾配消失(指数的減衰)
  • $\|W_{hh}\| > 1$:勾配爆発(指数的増大)

Tanhの微分は最大0.25(飽和時は0に近い)で、さらに減衰を加速。

2.2 長期依存の困難

100ステップ先の情報を学習するには、勾配が $0.9^{100} \approx 0.00003$ 程度に減衰。

結果として、長距離の依存関係を学習できない。

主要論文:

  • Bengio et al. (1994) "Learning Long-Term Dependencies with Gradient Descent is Difficult", IEEE Trans. Neural Networks
  • Pascanu et al. (2013) "On the difficulty of training Recurrent Neural Networks", ICML

2.3 対策

  • 勾配クリッピング:爆発への対処
  • 適切な初期化:直交初期化
  • ゲート機構:LSTM、GRU
  • Attention:直接的な長距離接続

3. LSTM(Long Short-Term Memory)

3.1 設計思想

Hochreiter & Schmidhuber (1997) による提案。

核心アイデア:加算的な経路(セル状態)により、勾配が長距離を減衰なく伝播可能に。

3.2 ゲート機構

忘却ゲート(Forget Gate):

$$f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f)$$

前のセル状態をどれだけ保持するか(0〜1)。

入力ゲート(Input Gate):

$$i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i)$$ $$\tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C)$$

新しい情報をどれだけ追加するか。

セル状態の更新:

$$C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t$$

忘却ゲートで選択的に忘却し、入力ゲートで選択的に記憶。

出力ゲート(Output Gate):

$$o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o)$$ $$h_t = o_t \odot \tanh(C_t)$$

セル状態から何を出力するか。

3.3 勾配フロー

セル状態への勾配:

$$\frac{\partial C_t}{\partial C_{t-1}} = f_t$$

$f_t \approx 1$ のとき、勾配は減衰なく伝播。これがLSTMの長期記憶能力の源泉。

3.4 変種

  • Peephole LSTM:ゲートにセル状態を入力
  • Coupled Forget-Input Gate:$i_t = 1 - f_t$

主要論文:

  • Hochreiter & Schmidhuber (1997) "Long Short-Term Memory", Neural Computation
  • Gers et al. (2000) "Learning to Forget: Continual Prediction with LSTM", Neural Computation
  • Greff et al. (2017) "LSTM: A Search Space Odyssey", IEEE Trans. Neural Networks

4. GRU(Gated Recurrent Unit)

4.1 設計

Cho et al. (2014) による提案。LSTMの簡略化版。

ゲートを2つに削減、セル状態と隠れ状態を統合。

4.2 更新式

更新ゲート(Update Gate):

$$z_t = \sigma(W_z \cdot [h_{t-1}, x_t])$$

前の状態をどれだけ保持するか(LSTMの忘却ゲートに対応)。

リセットゲート(Reset Gate):

$$r_t = \sigma(W_r \cdot [h_{t-1}, x_t])$$

候補活性化の計算で前の状態をどれだけ使うか。

候補活性化:

$$\tilde{h}_t = \tanh(W \cdot [r_t \odot h_{t-1}, x_t])$$

隠れ状態の更新:

$$h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t$$

4.3 LSTMとの比較

  • パラメータ数:GRUが約25%少ない
  • 性能:タスク依存で同等
  • 計算速度:GRUがやや高速
  • 実用上の選択:多くの場合どちらでも良い

主要論文:

  • Cho et al. (2014) "Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation", EMNLP
  • Chung et al. (2014) "Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling", NeurIPS Workshop

5. Seq2SeqとAttention

5.1 Encoder-Decoder構造

可変長入力→固定長ベクトル→可変長出力。機械翻訳の標準アーキテクチャ(2014-2017)。

Encoder:入力系列を文脈ベクトル $c$ にエンコード

Decoder:$c$ から出力系列を生成

問題:固定長ボトルネック。長い入力で情報が失われる。

主要論文:

  • Sutskever et al. (2014) "Sequence to Sequence Learning with Neural Networks", NeurIPS
  • Cho et al. (2014) "Learning Phrase Representations using RNN Encoder-Decoder", EMNLP

5.2 Attention機構

Bahdanau et al. (2015) による提案。

デコーダの各ステップで、エンコーダの全出力に対する重み付き和を計算。

注意重み:

$$\alpha_{tj} = \frac{\exp(e_{tj})}{\sum_k \exp(e_{tk})}$$ $$e_{tj} = a(s_{t-1}, h_j)$$

$s_{t-1}$:デコーダ状態、$h_j$:エンコーダ出力、$a$:アライメントモデル

文脈ベクトル:

$$c_t = \sum_j \alpha_{tj} h_j$$

効果:

  • 固定長ボトルネックの解消
  • 長距離依存の学習改善
  • アライメントの可視化・解釈可能性

主要論文:

  • Bahdanau et al. (2015) "Neural Machine Translation by Jointly Learning to Align and Translate", ICLR
  • Luong et al. (2015) "Effective Approaches to Attention-based Neural Machine Translation", EMNLP

5.3 Transformerへの道

Attention機構の成功 → 「再帰なしでAttentionのみ」というアイデア → Transformer(2017)

6. RNNの本質的限界

6.1 並列化の困難

$h_t$ の計算に $h_{t-1}$ が必要。時間方向の逐次処理が必須。

GPUの並列計算能力を活かせない。

Transformerは全位置を並列処理可能。

6.2 長距離依存の限界

LSTM/GRUでも数百ステップが実用上の限界。

Transformerは理論上無制限(計算量の問題はあり)。

6.3 メモリ効率

BPTTは全時刻の中間状態を保持。長系列でメモリ問題。

Truncated BPTTで対処するが、長距離学習が犠牲に。

6.4 帰納バイアスの評価

RNNの帰納バイアス:時間的順序、逐次処理

自然言語では必ずしも最適でないことが判明。Transformerの成功がこれを示した。

7. 現在の用途

7.1 RNN/LSTMが依然有効な領域

  • リアルタイムストリーム処理:逐次的な推論が自然
  • エッジデバイス:パラメータ効率、メモリ効率
  • 短い系列:オーバーヘッドが少ない
  • オンライン学習:逐次更新が容易
  • 音声認識の一部:CTC with LSTM

7.2 ハイブリッドアプローチ

  • Conformer:CNN + Transformer + RNN(音声認識)
  • RWKV:RNNライクな効率 + Transformerライクな性能

7.3 State Space Modelsへの発展

S4、Mamba:RNNの効率性とTransformerの性能を両立する試み。

→ 詳細は State Space Models

8. 参考文献

教科書

  • Goodfellow et al. (2016) "Deep Learning", Chapter 10, MIT Press
  • Jurafsky & Martin (2024) "Speech and Language Processing", Chapter 9

サーベイ

  • Lipton et al. (2015) "A Critical Review of Recurrent Neural Networks for Sequence Learning", arXiv
  • Greff et al. (2017) "LSTM: A Search Space Odyssey", IEEE Trans. Neural Networks

関連ページ