【Pytorch神经网络理论篇】 17 循环神经网络结构:概述+BP算法+BPTT算法
1 循環神經網絡結構概述
循環神經網絡(Recurrent Neural Network,RNN)是一個具有記憶功能的網絡模型。它可以發現樣本彼此之間的相互關系。它多用于處理帶有序列特征的樣本數據。
1.1 生物大腦中的循環神經網絡
當獲得“我找你來玩游”信息后,大腦的語言模型會自動預測后一個字為“戲”,而不是“樂”“泳”等其他字。
每個預測的結果都會放到下個輸入里面進行運算,與下一次的食人魚一起來生成下一次的結果。
鏈式地、有順序地存儲信息”很節省空間,對于中間狀態的序列,大腦沒有選擇直接記住,而是存儲計算方達。當我們需要取值時,直接將具體的數據輸入,通過計算得出相應的給果。
1.2 循環神經網絡的應用領域
對于序列化的特征任務,適合用循環神經網路來解決。這類任務包括情感分析、關鍵字提取、語音識別、機器翻譯和股票分析等。
1.3 循環神經網絡的正向傳播過程
假設有3個時序t1,t2,t3,如圖7-26所示,循環神經網絡的處理過程可以分解成以下3個步驟:
(1)開始時t1通過自己的輸入權重和0作為輸入,生成了out1;
(2)out1通過自己的權重生成了h1,然后和t2與經過輸入權重轉化后一起作為輸入,生成了out2;
(3)out2通過同樣的隱藏層權重生成了h2,然后和t3經過輸入權重轉化后一起作為輸入,生成了out3。
使得模型的結果既有該樣本之前序列的信息,又含有該樣本身的數據信息,從而使網絡具有記憶功能。
2 BP算法與BPTT算法的原理剖析
2.1 BP算法==》卷積神經網絡
假設有一個包含一個隱藏層的神經網絡,隱藏層只有一個節點。該神經網絡在BP算法中具體的實現過程如下。
(1)有一個批次的數據,含有3個數據A、B、C,批次中每個樣本有兩個數(x1、x2)通過權重(w1、w2)來到隱藏層H并生成批次h,如圖7-27中w1和w2所在的兩條直線方向。
(2)該批次的h通過隱藏層權重p1生成最終的輸出結果y。
(3)y與最終的標簽p比較,生成輸出層誤差loss(y,p)。
(4)loss(y,p)與生成y的導數相乘,得到DeL_y。DeL_y為輸出層所需要的修改值。
(5)將h的轉置與DeL_y相乘得到DeL_p1,這是源于h與p1相乘得到的y(見第2步.
(6)最終將該批次的DeL_p1,求和并更新到p1。
(7)同理,再將誤差反向傳遞到上一層:計算Del_h。得到Del_h后再計算權重(w1,w2)的Del值并更新。
2.2 BPTT算法(BP算法+序列序列)==》循環神經網絡
在圖7-28中,同樣是一個批次的數據ABC,按順序進入循環神經網絡。正向傳播的實例是,B正在進入神經網絡的過程,可以看到A的h參與了進來,一起經過p1生成了B的y。因為C還沒有進入,為了清晰,所以這里用灰色(虛線方框)來表示。
當所有塊都進入之后,會將p標簽與輸出進行Del_y的運算。由于C塊中的y值是最后生成的,因此我們先從C塊開始對h的輸出傳遞誤差Del_h。
圖7-28中的反向傳播是表示C塊已經反向傳播完成,開始B塊反向傳播的狀態,可以看到B塊Del_h是由B塊的Del_y和C塊的Del_h(圖7-28中的fur _Del_h)通過計算得來的。
2.3 對比
這就是與BP算法不同的地方(在BP算法中Del_h直接與自己的Del_y相關,不會與其他的值有聯系)。作為一個批次的數據,正向傳播時是沿著4BC的順序升當反向傳播時,就按照正向傳播的相反順序接照每個節點的CBA順序,挨個計算并傳遞梯度。
2.4 代碼代補充? P149
總結
以上是生活随笔為你收集整理的【Pytorch神经网络理论篇】 17 循环神经网络结构:概述+BP算法+BPTT算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unknown encoder ‘lib
- 下一篇: matlab画线不同颜色_怎样画线框图才