※画像は生成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
関連ページ