递归神经网络RNN总结
一、前述
傳統的神經網絡每個輸入節點之間沒有聯系,
?RNN (對中間信息保留):
?
由圖可知,比如第二個節點的輸入不僅依賴于本身的輸入U1,而且依賴上一個節點的輸入W0,U0,同樣第三個節點依賴于前兩個節點的輸入,
假設每一個節點分別代表著“我出生在中國,我說——”的一個預測,則“說”后面則是依賴于前面的說的每個單詞的所有組合。
xt表示第t,t=1,2,3...步(step)的輸入
st為隱藏層的第t步的狀態,它是網絡的記憶單元。
st=f(Uxt+Wst?1),其中f一般是非線性的激活函數。
ot是第t步的輸出,如下個單詞的向量表示softmax(Vst)(多分類)。
二、具體
1、遞歸神經網絡的反向傳播
損失函數有多個,以E3為例
E3由t0-t3時刻x,W共同確定?Δ?W的確定要考慮E3在各個時刻對w導數。
t3:
?
t2:
?
t1:
? ?
?
?
不僅更新當前節點的輸入梯度,還更新當前節點的所有記憶單元,一直傳播下去。
2、RNN局限性問題
I am Chines, I Love China
遞歸神經網絡參數太多,信息量冗余(因為最后的預測可能只 依賴它最近的詞,但我們輸入的時候是所有的詞,所以信息量冗余)、梯度消失或者爆炸。
?
3、LSTM(長短記憶網絡)
為了解決RNN的一些缺點,RNN與LSTM對比
C:控制參數
決定什么樣的信息會被保留什么樣的會被遺忘
?
?具體操作:
?門是一種讓信息選擇式通過的方法sigmoid 神經網絡層和一乘法操作。
Sigmoid 層輸出 0 到 1 之間的數值,描述每個部分有多少量可以通過。0 代表“不許任何量通過”,1 就指“允許任意量通過”!
Sigmoid函數
具體過程:
丟棄的信息:
先把當前節點的輸入和之前記憶的輸入傳遞進來,然后通過sigmod函數組合起來后得到的函數值(0,1)之間,然后再跟Ct-1組合,決定丟棄什么信息。Ct是永遠更新維護的值。
?
保留的信息:
最后總的信息:
分兩部分,遺忘的信息Cti-1和保留Ct的信息。先走遺忘的信息,再走保留的信息。Ct從開始到最后一直更新。
?輸出:
?LSTM整體架構:
?與RNN對比會有一部分信息保留,一部分信息丟棄。LSTM比RNN更實用。
?
分類: 深度學習和TensorFlow框架 </div><div class="postDesc">posted @ <span id="post-date">2018-05-13 16:23</span> <a href="https://www.cnblogs.com/LHWorldBlog/">LHBlog</a> 閱讀(<span id="post_view_count">466</span>) 評論(<span id="post_comment_count">0</span>) <a href="https://i.cnblogs.com/EditPosts.aspx?postid=9032546" rel="nofollow">編輯</a> <a href="#" onclick="AddToWz(9032546);return false;">收藏</a></div> </div>csdn不定期打包發送,微信每日一篇,快樂學習,贏在中國
 歡迎大家關注這個微信公眾號,尊重原創,轉載請注明出處
 
總結
以上是生活随笔為你收集整理的递归神经网络RNN总结的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 数码管显示原理与驱动方式
 - 下一篇: Linux命令学习总结:ls