递归神经网络RNN——LSTM
遞歸神經網絡RNN——LSTM
- 1、LSTM的產生原因及優點
- 2、LSTM網絡結構
- 3、LSTM工作機制
- 4、LSTM Attention 機制
關于LSTM模型,看懂這篇文章就OK了,不用再看別的了
1、LSTM的產生原因及優點
RNN模型中介紹了,由于長期依賴的問題,對于步長大的時刻求梯度,有一比分梯度的計算是類乘的形式,這樣就會造成指數計算,從而造成梯度消失和梯度爆炸,所以LSTM和GRU模型被退出,原因是,LSTM和GRU模型他們采用了特殊的方式來進行"記憶"的存儲,使得以前比較大的記憶不會像簡單的RNN模型一樣立刻被抹除掉,因此可以一定程度上克服梯度小時的問題
LSTM也是RNN的一種,大體結構一直,區別在于:
- LSTM的記憶細胞是改造過的
- 該記錄的信息會一直傳遞,不該記錄的信息會被截斷掉
2、LSTM網絡結構
注意:上邊圖形中的方塊A并不是神經元。A是一個記憶細胞,里面有復雜的結構。
現在我們將”記憶細胞“展開:
對于普通的RNN我們只是簡單的對上一層記憶細胞的輸出乘一個參數矩陣作為下一層的一個輸入,而LSTM的記憶細胞沒有那么簡單,這個圖很重要,要會畫,會寫計算公式,我們來分析一下:
3、LSTM工作機制
1、LSTM怎么控制“細胞狀態”:
- LSTM通過gates(門)結構來去除或者增加“細胞狀態”de信息。
- 包含一個sigmoid神經網絡層,和一個pointwist乘法操作。
- Sigmoid輸出一個0~1之間的概率值,描述每個部分有多少量可以通過,0表示“不允許任務變量通過”,1表示“運行所有變量通過”
- LSTM中有三個“門”結構來控制細胞狀態
2、要知道LSTM的里邊都是有那些結構和操作:
- 1、遺忘門
決定從細胞狀態中丟棄什么信息,比如在與語言模型中,細胞狀態可能包含了性別信息(他或者她),當我們看到新的代名詞的時候,比如他的具體名字,可以考慮忘記舊數據
ft在乘Ct-1就起到了遺忘作用
- 2、輸入門(信息增加門)
決定什么信息可以增加到“信息狀態”中去
Sigmoid層決定什么信息需要增加
tanh層,創建一個新的候選向量Ct
主要是為了狀態更新做準備
經過第一個門和第二個門之后,可以確定信息的傳遞和增加,即可進行“細胞狀態”的更新。
更新Ct-1為Ct
將舊狀態與第一個門得到的ft相乘,丟失掉確定不要的信息
加上新的侯選值it x Ct得到最終更新后的“細胞狀態”
- 3、輸出門
基于細胞狀態得到輸出
首先運行一個Sigmoid層,來確定細胞狀態的那個部分將輸出
用一個tanh處理記憶細胞狀態得到一個-1~1之間的值,再將他和Sigmoid的輸出值相乘,輸出程序確定輸出部分。
- 4、神經網絡層(神經元)
四個黃色部分有4個神經元,每個神經元有不同的參數W,是不一樣的。
- 5、激活函數
4個神經元中有5個激活函數,有Sigmoid和tanh,粉色的激活函數沒參數W
- 6、點扭操作
用于記憶狀態和細胞狀態的狀態選擇
- 7、矢量傳輸
- 8、連接拼接
- 9、復制
- 10、細胞狀態C(記憶單元,圖中上面的直線)
類似于傳送帶,直接在整個鏈上運行,只有一些少量的線性交互(點成,點加),信息在上面流保持不變很容易。
4、LSTM Attention 機制
核心思想:抑制不重要的信息,加強重要的信息
**輸入輸出信息都可以做,**下面我們舉一個輸出信息做的,在卷積模型中的SEnet,和CAMB上就是在輸入上做的Attention
Attention機制就是一個注意力機制,他具體做的就是將輸入在不同的層次上加上一個權重,可能是通道上,也可能是空間上,加權重的方式也有很多種,可能是做平均池化,也可能是做最大值池化然后將輸出結果做全連接在加Sigmoid或者Softmax,將輸入映射到0~1的值。
LSTA Attention的作用機制有:
- 1、直接對每個輸入進行權重計算,然后在加權求和
對輸入進行權重計算,此方法很簡單,就是將輸入做一個全連接,隨后采用Softmax函數激活概率
假設輸入是一句話:
我 在 北 京
經過:lstm/rnn
輸出:
y1=1 y2=4 y3=5 y4=6
如果我用普通的不含有Attention的模型做分類任務,我就只看y4的值
如果我添加了Attention
1、計算權重:
分母一樣的:e1 + e4 + e5 + e6
1時刻輸出y1的權重:e1 /分母 = 0.2
2時刻輸出y2的權重:e4 /分母 = 0.3
3時刻輸出y3的權重:e5 /分母 = 0.1
4時刻輸出y4的權重:e6 /分母 = 0.4
2、最終整句話的輸出:
y = (1* 0.2) +( 4 * 0.3) + (5 * 0.1) + (6 * 0.4)
這就考慮每一時刻的輸出值,不在只考慮最后一時刻的輸出值了
- 2、多層加Attention機制
第一層:最后一個時刻y1
第二層:最后一個時刻y2
第三層:最后一個時刻y3
然后對每一層的最后一個時刻的y做一個Attention,用來融合每一層的信息
- 2、加入激活函數并求和
第一種方法我們是計算權重之后計算輸出值,這里我們計算權重之后再加一個tanh激活函數,然后求完權重進行了加和。
關于LSTM模型,看懂這篇文章就OK了,不用再看別的了
LSTM有很多變種,變種就是記憶細胞里邊信息的傳遞機制發生改變,類比LSTM都能看得懂。
OK!!!!
總結
以上是生活随笔為你收集整理的递归神经网络RNN——LSTM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RNN-递归神经网络
- 下一篇: TanGo 免费版 安装方法