參考了:
RNN循環神經網絡的直觀理解:基於TensorFlow的簡單RNN例子
1.循環神經網絡(Recurrent neural network)或RNN是一類用於處理序列數據的神經網絡。
•人類並不是每時每刻都從一片空白的大腦開始他們的思考。在你閱讀這篇文章時候,你都是基於自己已經擁有的對先前所見詞的理解來推斷當前詞的真實含義。我們不會將所有的東西都全部丟棄,然後用空白的大腦進行思考。我們的思想擁有持久性。
• 傳統的神經網絡(MLP)並不能做到這點。爲了處理這種時序性較強的問題,出現了RNN。
•RNN解決了時序問題。RNN是包含循環的網絡,允許信息的持久化。
RNN結構:
在上圖結構中,對於矩形框A部分,通過輸入xt(t時刻的特徵向量),它會輸出一個結構ht(t時刻的狀態或者輸出)。網絡中的循環結構使得某個時刻的狀態能夠傳到下一時刻。
w代表權重,b代表偏置,先求和,再用激活函數。
•RNN按照時序展開,可理解爲:
•鏈式的特徵揭示了RNN 本質上是與序列和列表相關的。
•他們是對於時序鏈式數據的最自然的神經網絡架構。
所以最基本的 RNN Cell 輸入就是 xt,它還會輸出一個隱含內容傳遞到下一個 Cell,同時還會生成一個結果 ht,其最基本的結構如如下:
僅僅是輸入的 xt 和隱藏狀態進行 concat,然後經過線性變換後經過一個 tanh 激活函數便輸出了,另外隱含內容和輸出結果是相同的內容。
2.循環神經網絡 RNN的應用及問題
•在過去幾年中,RNN在語音識別、語言建模、翻譯、圖片描述等問題上已經取得一定成功。
•RNN 的關鍵點之一就是他們可以用來連接先前的信息到當前的任務上,例如:
Ø使用過去的文本來推測對下一個單詞。(短距離)
3.循環神經網絡 RNN的問題
•例如: Igrew up in France... I speak fluent French”
•表現:序列信息的長期依賴(Long-TermDependencies)問題
•原因:梯度消失、梯度爆炸
4.RNN長期依賴問題的解釋
•在理論上,RNN絕對可以處理長期依賴問題。(合理的參數調節),但實際不可行。
•原因:梯度消失、梯度爆炸
•解決方法: LSTM(LongShort-Term Memory)
RNN循環神經網絡的直觀理解:基於TensorFlow的簡單RNN例子