循環神經網絡(RNN) Tensorflow 實踐RNN(一)

參考了:

Tensorflow 實踐RNN(一)

TensorFlow RNN Cell源碼解析

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絕對可以處理長期依賴問題。(合理的參數調節),但實際不可行。

原因:梯度消失、梯度爆炸
解決方法: LSTMLongShort-Term Memory

RNN循環神經網絡的直觀理解:基於TensorFlow的簡單RNN例子


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章