1. RNN神經網絡模型原理


1. RNN神經網絡模型原理

2. RNN神經網絡模型的不同結構

3. RNN神經網絡-LSTM模型結構

1. 前言

循環神經網絡(recurrent neural network)源自於1982年由Saratha Sathasivam 提出的霍普菲爾德網絡。

傳統的機器學習算法非常依賴於人工提取的特征,使得基於傳統機器學習的圖像識別、
語音識別以及自然語言處理等問題存在特征提取的瓶頸。而基於全連接神經網絡的方法也
存在參數太多、無法利用數據中時間序列信息等問題。隨着更加有效的循環神經網絡結構被不斷提出,循環神經網絡挖掘數據中的時序信息以及語義信息的深度表達能力被充分利
用,並在語音識別、語言模型、機器翻譯以及時序分析等方面實現了突破。

2. RNN模型結構

循環神經網絡的主要用途是處理和預測序列數據。在之前介紹的全連接神經網絡卷積神經網絡模型中,網絡結構都是從輸入層到隱含層再到輸出層,層與層之間是全連接或部分連接的,但每層之間的節點是無連接的。考慮這樣一個問題,如果要預測句子的下一個單詞是什么,一般需要用到當前單詞以及前面的單詞,因為句子中前后單詞並不是獨立的。比如,當前單詞是“很”,前一個單詞是“天空”,那么下一個單詞很大概率是“藍”。循環神經網絡的來源就是為了刻畫一個序列當前的輸出與之前信息的關系。從網絡結構上,循環神經網絡會記憶之前的信息,並利用之前的信息影響后面結點的輸出。也就是說,循環神經網絡的隱藏層之間的結點是有連接的,隱藏層的輸入不僅包括輸入層的輸出,還包括上時刻隱藏層的輸出。

RNN結構如下圖:

image

上圖中左邊是RNN模型沒有按時間展開的圖,如果按時間序列展開,則是上圖中的右邊部分。我們重點觀察右邊部分的圖。

這幅圖描述了在序列索引號t附近RNN的模型。其中:

  1. \(x_t\)代表在序列索引號t時訓練樣本的輸入。同樣的,\(x_{t-1}\)\(x_{t+1}\)代表在序列索引號\(t-1\)\(t+1\)時訓練樣本的輸入。
  2. \(h_t\)代表在序列索引號t時模型的隱藏狀態。\(h_t\)\(x_t\)\(h_{t-1}\)共同決定。
  3. \(o_t\)代表在序列索引號t時模型的輸出。\(o_t\)只由模型當前的隱藏狀態\(h_t\)決定。
  4. A代表RNN模型。

3. RNN前向傳播算法

最后,給出經典RNN結構的嚴格數學定義。

輸入為\(x_1,x_2,...,x_t\)對應的隱狀態為\(h_1,h_2,...,h_t\)
輸出為\(y_1,y_2,...,y_t\),如,則經典RNN的運算過程可以表示為

\[h_t=f(Ux_t+Wh_{t-1}+b) \]

\[y_t=softmax(Vh_t+c) \]

其中,\(U,W,V,b,c\)均為參數,而\(f()\)表示激活函數,一般為tanh函數。

4. 總結

RNN雖然理論上可以很漂亮的解決序列數據的訓練,但是它也像DNN一樣有梯度消失時的問題,當序列很長的時候問題尤其嚴重。因此,上面的RNN模型一般不能直接用於應用領域。在語音識別,手寫書別以及機器翻譯等NLP領域實際應用比較廣泛的是基於RNN模型的一個特例LSTM,下一篇我們就來討論LSTM模型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM