1. 概述
循環神經網絡(Recurrent Neural Networks, RNN)主要用于時序資料,最常見的時序資料如文章,視訊等,t時刻的資料與t−1時刻的資料存在内在的聯系。RNN模型能夠對這樣的時序資料模組化。
2. 算法原理
RNN模型的基本結構如下所示(圖檔來自參考文獻):

如上圖所示,循環神經網絡通過使用自帶回報的神經元,能夠處理任意長度的時序資料,對此結構按照時間展開的形式如下所示(圖檔來自參考文獻):
2.1. RNN的結構
上圖中給出了RNN的内部結構,RNN根據輸入輸出主要可以分為以下三種:
- 多輸入單輸出,如文本的分類問題;
- 單輸入多輸出,如描述圖像;
- 多輸入多輸出,又分為等長或者不等長兩種情況,等長如機器作詩,不等長如seq2seq模型;
這裡以多輸入單輸出的情況為例,多輸入單輸出的具體結構如下所示:
2.2. RNN的計算過程
2.3. RNN中參數的求解
2.4. RNN存在的問題
從上述的BPTT過程來看,RNN存在長期依賴的問題,由于反向傳播的過程中存在梯度消失或者爆炸的問題,簡單的RNN很難模組化長距離的依賴關系。
參考文獻
- Understanding LSTM Networks