詳細解釋
循環神經網絡(Recurrent Neural Network, RNN)是處理序列數據的架構,具有記憶能力,能利用先前信息影響當前輸出,曾經是NLP的主要方法。
核心特性:
- 循環連接:隱藏層輸出反饋到輸入
- 記憶能力:理論上能記住任意長歷史
- 序列處理:逐元素處理序列
- 參數共享:每個時間步使用相同參數
展開(Unrolling):
- 時間步展開:循環結構展開為深層網絡
- 深層效果:長序列導致極深的計算圖
- 梯度問題:梯度消失 (Vanishing Gradient)和梯度爆炸 (Exploding Gradient)
變體:
應用:
- 語言模型:預測下一個詞
- 機器翻譯:編碼器-解碼器架構
- 語音識別:序列到序列映射
- 時間序列預測:股票、天氣
- 音樂生成:旋律建模
與Transformer的對比:
- RNN:
- 優勢:序列長度靈活,參數與長度無關
- 劣勢:難以並行,長期依賴困難
- Transformer:
- 優勢:完全並行,長期依賴好
- 劣勢:序列長度受限,計算複雜度O(n²)
現代地位:
- 被Transformer取代:大多數NLP任務
- 特定領域:
- 小數據:RNN數據效率更高
- 流式處理:實時序列處理
- 資源受限:移動設備上的小模型
- 某些時間序列任務
歷史:
- 1980年代:RNN概念提出
- 1990年代:LSTM解決梯度問題
- 2014年:Seq2Seq機器翻譯
- 2017年後:Transformer崛起,RNN退居二線
RNN是序列建模的經典方法,理解深度學習發展的重要部分。