深度学习之递归神经网络
文章目錄
- 一、遞歸神經網絡
- 1、什么是遞歸神經網絡
- 2、RNN
- 3 Elman遞歸神經網絡
- 4 長短時記憶網絡LSTM
- 5 GRU門控制遞歸單元網絡
一、遞歸神經網絡
1、什么是遞歸神經網絡
? ? 遞歸神經網絡是兩類人工神經網絡的總稱,分為是時間遞歸神經網絡(Recurrent Neural Network)和結構遞歸神經網絡(Recursive Neural Network)。前者也可叫循環神經網絡。RNN網絡在傳統神經網絡的基礎上加入了“記憶”成分。
? ? 之前的一些神經網絡模型中,假設訓練數據之間是相互獨立的,但是許多實際應用中,數據之間是相互依賴的,比如在時間序列相關的輸入場景下,信息之間的傳遞更多的是一種相互傳承的關系。再比如在空間結構場景中,數據之間存在空間的組合關系,可以將整體數據劃分為局部的小結構,由局部的小結構推導出整體的性質。
2、RNN
? ? 下面使用RNN的時候,一般指代的是時間遞歸神經網絡(Recurrent Neural Network)。其處理的對象是一種時間序列數據,它將數據信息流以一種循環的方式進行傳遞處理。
? ? 序列是什么:序列(x1,x2,…,xm)被看做一系列隨著時間步長(time step)遞進的事件序列。這里的時間步長并不是真實世界中所指的時間,而是指序列中的位置。
? ? RNN的特點:
? ? 術語:當前時間步t的輸入為xt,它的前綴序列輸入數據為(x1,x2,…,xt-1)。
? ? 持續性:由于時間序列信息,前后數據不是相互獨立,當前階段的輸出不僅和當前的輸入有關,還會受到過去的決策影響,所以這是一種持續性,也是單詞recurrent的意思。
? ? 記憶性:RNN可以保留序列的記憶信息。對于當前時刻t,上一個時刻的狀態表示為ht-1,可以說st-1編碼記錄了xt的前綴序列數據的信息,這就時所謂的記憶性。當對t時刻的輸入xt進行計算時,利用持續性,綜合當前輸入xt和前一時刻的記憶st-1,一起得到t時刻的狀態st。比如為了給當前用戶推送合適的數據,需要保留用戶過去的操作點擊行為。這些用戶行為記錄就是“記憶”。
3 Elman遞歸神經網絡
? ? 遞歸神經網絡在網絡中出現環形結構,可讓一些神經元的輸出反饋回來作為輸入信號。使得網絡在t時刻的輸出狀態不僅與t時刻的輸入有關,還與t-1時刻的網絡狀態有關,從而能處理與時間有關的動態變化。
? ? Elman網絡和前饋網絡類似,但隱層神經元的輸出被反饋回來,與下一時刻輸入層的神經元提供的信號一起作為隱層神經元在下一時刻的輸入。
? ? 上圖為Elman遞歸神經網絡的展開圖,通過展開操作,從理論上可以把網絡模型拓展為無限維,也就是無限的時間序列。而且可見RNN在每一時間步t都有相同的網絡結構。
? ? 該網絡結構:輸入層的神經元個數為n,隱層的神經元數量為m,輸出層神經元個數為r。
? ? 圖中,x是某時間步輸入向量(n維),s代表網絡隱層的某時間步狀態(m維),o代表某時間步的輸出向量(r維),輸入層與隱層之間由權重矩陣U連接,大小為(nxm)維;W是連接上一時間步的隱層單元與當前時間步的隱層單元的權重矩陣,大小為(mxm)維;V是連接隱藏層與輸出層單元的權重矩陣,大小為(mxr)維。
? ? 公式形式:RNN的前向傳播可以表示為:某一時間步t的情況
個時間步的記憶結果st-1和當前的輸入xt共同決定,這些信息保存在隱層中,不斷向后傳遞,跨越多個時間步,影響每一個新輸入數據的處理。
? ? 下圖為一個時間步,時間步t的網絡結構圖:
? ? 最下方是RNN的輸入層,用X表示,X = (x0,x1,…,xT),是T+1個時間步的輸入向量組成序列,其中xt表示第t時間步的輸入數據,xt通常是一個如圖的n元向量。
中間部分是網絡的隱層,用S(H)表示,S = (s0,s1,…,sT),是T+1個時間步的隱層狀態向量組成序列,st也是一個向量,為第t時間步的隱層向量。它是如圖所示的m元向量。它是處理記憶信息的地方。
? ? ##總結##劃重點##:典型的時間遞歸神經網絡Elman,每個時間步都是一個神經網絡結構,但是因為加入了時間序列,也就是有了持續性和記憶性。隨著時間步的推移,對于某個時間步的網絡結構:都有一個輸入xt,它是一個n維向量,它就是輸入層。都有一個前綴隱層記憶信息st-1,它是個m維向量,它是所謂的記憶信息層。都有隱層st,,st,它一個m為向量,它表示當前隱層的狀態。都有一個輸出ot,它是個r維向量,它就是輸出層。輸入層和隱層之間的權重矩陣U,記憶信息層和隱層之間的權重矩陣W,隱層和輸出層之間的權重矩陣V。記憶信息層和輸入層共同決定當前隱層的狀態。隨著時間序列的前進,每個時間步都會產生自己的結果。當隱層不止一個的時候,隱層與隱層之間的連接為權重矩陣Y1,Y2。
? ? 前向傳播過程:對于每個時間步來說,都有當前時刻的輸入和傳遞過來的記憶信息,他們共同作為當前隱層的輸入信號,然后當前隱層產生當前的輸出和記憶信息。所以可知隨著時間序列的前進,每個時間步都會產生自己的輸出結果,記憶信息和當前輸入共同決定隱層的狀態。記憶信息的傳遞是通過不同時間步隱層之間的連接權重記錄的,不斷向后傳遞,跨越多個時間步,影響每一個新輸入數據的處理。
(2)時間反向傳播BBTT
? ? 當使用傳統的神經網絡進行監督學習的時候,模型訓練的本質是最小化損失函數來確定參數的取值。一般采用反向傳播BP算法進行參數更新。但是在循環神經網絡中,由于循環的存在,參數W,U,V矩陣在計算中共享,這時普通的BP算法無法應用到RNN的訓練中。
? ? BPTT算法是BP算法在RNN結構上的一種變體形式,采取在RNN模型的展開式上進行梯度計算。從計算過程看,BPTT與標準反向傳播算法基本相同,最主要的差異是由于在RNN網絡中,每一時刻計算都共享參數變量W,所以計算梯度的時候,每個時刻的層得到的W的梯度都需要累加在一起,以保證每一層計算所得的誤差都得到一定程度的校正,而在傳統的神經網絡中,每個網絡的參數計算都是相互獨立的,所以梯度學習也是相互獨立的.
? ? 缺點:梯度消失,無法保存較遠的記憶。
靈活的RNN結構
? ? 因為在隱層序列向量定長的時候,輸入輸出可變長,這種靈活結構的前提是,RNN固有的記憶和持續性。
4 長短時記憶網絡LSTM
? ? 前提背景:
? ? 普通RNN結構只能對距離比較近的時刻的記憶更加強烈,而距離較遠則并不清楚。如傳統的Elman模型,由于存在梯度消失等缺點,不能有效地保留長時間的記憶信息。數學
? ? 解釋如下:
? ? RNN結構本質是很多層相同非線性函數的嵌套形式,如果忽略掉激活函數和輸入向量,RNN節點的狀態ht可以表示為:
? ? 若特征值取小于1則會快速降為0,若特征值大于1,快速趨向于無窮。由于權重矩陣W隨著時間序列前進被共享,由上圖可見,在狀態傳遞過程中相當于W被乘了很多次,到第t個時間步Wt可能只能趨向于0或無窮大了,就是消失或爆炸。導致對于一個時間序列,任何前面發生的時間的記憶都會以指數級的速度被遺忘。
【A】:LTSM基本原理:
? ? 長短時記憶網絡LSTM是時間遞歸神經網絡的一種變體。整體結構和傳統的RNN基本一致,與傳統的Elman模型激活層的結構不同,隱藏層的設計更復雜,并有效克服了梯度消失問題。LSTM隱藏層的核心設計是一種叫記憶體(cell state)的信息流,它負責把記憶信息從序列的初始位置傳遞到序列的末端。通過4個相互交互的“門”單元,控制著在每一時間步t對記憶信息值的修改。
? ? 術語介紹:x號是點積操作,因為sigmoid函數取值范圍為[0,1],門控制器描述信息能夠通過的比例LSTM在某時間步短期記憶單元st的基礎上增加了一個長期記憶單元Ct來保持長期記憶。
? ? 1、忘記門:忘記門選擇保留上一時間步t-1的長期記憶Ct-1的哪些信息進入下一時間步的長期記憶Ct。得到信息保留比例 ft,忘記門通過一個激活函數實現:
利用激活函數將函數值壓縮得到一個大小在(0,1)之間的閾值,當函數值接近1的時候,表示記憶體保留的信息越多,當函數值接近0的時候,表示記憶體丟棄的信息越多。
? ? 2、輸入門:它決定了當前時間步的輸入信息(候選門的信息總量)形成的新記憶C’t中有多少信息將被添加到下一時間步長期記憶Ct中,與忘記門計算公式幾乎一致:
? ? 3、候選門:用來計算當前時間步輸入xt與上一時間步短期記憶st-1所具有的信息總量,計算如下:
? ? 4、輸出門:也就是由Ct求解st的過程,控制著當前時間步短期記憶st如何受長期記憶Ct的影響,計算公式:
? ? ot是一個大小在(0,1)之間的權重值,這樣傳遞給下一階段的記憶信息為:
? ? 時間序列狀態st的更新是靠記憶信息Ct和輸出比例ot來決定的,記憶信息流Ct一直處于更新中。
LSTM隱藏層的邏輯設計圖:
根據理解,手繪了邏輯圖
? ? 忘記門將上一時間步的輸出信息st-1與當前輸入xt進行線性組合后,得到過去記憶Ct-1的信息保留比例 ft,由候選門得到當前輸入與過去記憶的信息總量C’t;由輸入門得到候選門中的信息總量添加到記憶信息流中的比例it ,;輸出門得到更新后得到的記憶Ct用于下一階段得到st的信息比例。
? ? 記憶的更新:由兩部分組成,第一部分通過忘記門過濾過去的部分記憶,大小為
ft x Ct-1;第二部分是添加當前的新增數據信息,添加比例由輸入門控制,大小為
it x C’t 。 這聯股份組合得到更新后的記憶信息Ct:
? ? LSTM改進主要體現在通過門控制器增加了對不同時刻記憶的權重控制,加入跨層連接削減梯度消失的影響,在原有結構增加了線性連接,使得長期信息更好傳遞。
下圖為節點級聯和其抽象表示:
5 GRU門控制遞歸單元網絡
? ? 我們要注意的是下面所說的隱藏層并不是隱層,是將網絡結構展開后隨著時間序列而得到的一系列隱層組成的,所以也叫隱藏層。
LSTM網絡的設計方式多種多樣,在實際應用中,隱藏層的“門”的單元設計可能會由于要解決的實際問題不同,在設計上會有細微的差別。
? ? GRU基本原理:在LSTM基礎上進行了簡化,主要包括下面兩個方面的改造:(1)將輸入門和忘記門組合成一個新的門單元,成為更新門;(2)將記憶單元Ct與隱藏層單元st結合為一個統一的單元,如圖所示:
? ? 如圖:rt是重置門,它的值決定了過去記憶和當前輸入的組合方式;zt表示更新門,它控制過去記憶能保存多少;h就是候選門;
總結
以上是生活随笔為你收集整理的深度学习之递归神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle数据库12c安装教程,Ora
- 下一篇: 百度离线人脸识别SDK