LSTM原理
- CNN卷積神經網絡 應用:圖像,視訊
- RNN 遞歸神經網絡 應用:NLP
1RNN結構
- one to one
比如輸入一張圖檔,它會給我們輸出是貓還是狗
- one to many
比如輸入一張圖檔,給出一些列圖檔描述
- many to one
比如文本分析,給出文本是積極還是消極的
- many to many (輸出 與 輸入 不定長)
比如 聊天機器人
- many to many (輸入 與 輸出定長)
2.LSTM原理
- LSTM是更新版的RNN,LSTM解決了RNN無法解決長期以來問題,輸出前面很長一段序列有關的問題。LSTM相比RNN添加了三個門:遺忘門,輸入門,輸出門。
遺忘門:決定從細胞狀态中丢棄什麼資訊 輸入門:決定讓多少新的資訊加入細胞狀态,這一步将輸出細胞狀态 輸出門:确定輸出值,該輸出值基于細胞狀态
LSTM原理 - 門的概念:
我們認為細胞的流動是一個傳送帶,傳送帶進行線性互動,我們認為将一些貨物放到傳送帶進行傳動,而LSTM内部設計一種結構為門的結構,門可以去除或增加一些細胞狀态,它決定哪些貨物放到傳送帶上,哪些貨物不放到傳送帶上。而這些貨物可以認為是資訊
LSTM原理 如上圖,可以看到 σ 它是神經網絡的激活層, 粉色X 為 點乘,我們通過 σ 輸出0-1數值,它能描述哪些貨物可以通過,然後通過點乘彙集到傳送帶上。 上面三個門都是為了保護,控制細胞狀态。為了保證哪些貨物要放到傳送帶,哪些貨物不放到傳送帶。在LSTM第一步中我們要确定往細胞丢棄什麼資訊,也就是确定哪些貨物要放到傳送帶,哪些貨物不放到傳送帶.
- 遺忘門:
- 最開始是一個遺忘門,首先它會讀取ht-1時刻向量值和xt時刻的輸入,然後通過激活層 σ 輸出一個0-1之間數值(激活層函數一般為ReLU),然後進行一個點乘,最終到傳送帶。1表示完全保留,0表示完全舍棄。
- 如下公式:
LSTM原理 ft 為 σ網絡激活層 Wf 為 權重 ht-1,xt 為 輸入 bf 為 偏執量
- 輸入門:
LSTM原理 - 這一步要确定什麼樣資訊放到細胞狀态中,什麼樣貨物最終放到傳送帶進行傳送。這裡包含2個步驟:
1.首先:通過ht-1時刻向量值和xt時刻的輸入然後通過 σ 網絡激活層 決定哪些資訊要更新,最終放入傳送帶。 2.然後:通過tanh層,通過tanh層生成一個向量,對輸入端進行激活,對細胞進行更新将Ct-1更新為Ct
- 如下公式:
LSTM原理 公式1: it 輸入 Wi 為 權重 ht-1,xt 為 輸入 bi 為 偏執 公式2: Wc 為 權重 ht-1,xt 為 輸入 Bc 為 偏執
- 更新資訊的确定詳解:
我們首先根據ft(之前經過遺忘門保留的部分)和Ct-1進行點乘,然後結合it(更新的部分)和Ct進行點乘,進入傳送帶進行傳送,最終進行權重輸出到Ct。
LSTM原理 - 如下公式
LSTM原理
- 這一步要确定什麼樣資訊放到細胞狀态中,什麼樣貨物最終放到傳送帶進行傳送。這裡包含2個步驟:
- 輸出門
- 它決定我們最終輸出是什麼樣子的,我們基于ht最終輸出是什麼樣子輸出。
首先我們通過 σ 網絡激活層 ,這裡輸入還是ht-1,xt得到稱為ot,然後通過我們之前在傳送帶傳送的貨物Ct,經過tanh層 進行點乘 最終輸出ht
- 公式:
ot 相當于激活層:權重, 輸入,偏執得到結果 ht 相當于最終輸出
- 它決定我們最終輸出是什麼樣子的,我們基于ht最終輸出是什麼樣子輸出。
3.LSTM應用場景
- 語音識别
- 圖像描述
- 聊天機器人
4.LSTM模型訓練過程
- 從RNN到LSTM
LSTM原理 原始RNN隻有一個狀态h,LSTM加入了長期狀态c,而加入長期狀态c以後,可以實作長遠的記憶。
- LSTM循環展開
LSTM原理 LSTM循環展開後可以看成多個神經元,我們進行多次指派,在傳送帶傳送h和C(用于傳送狀态),也就是要傳送的貨物
- LSTM核心思想----門
遺忘門處理完 擷取到了上一個時期的長期狀态,目前時刻的即時狀态(我們需要更新狀态),我們通過輸入門,将貨物最終放到要傳送帶,最終輸出門控制那些需要輸出,那些不需要輸出
5.LSTM訓練算法
- LSTM使用BPTT算法,它随時間反向傳播,是一種具有長時記憶能力的神經網絡模式,被廣泛應用序列标注,因之前通常使用前向傳播,會造成梯度消失或梯度爆炸問題。
梯度消失:随着時間增長,權重會越來越小,
梯度爆炸:權重相乘 數值會特别大
- 而BPTT反向傳播的激活函數Tanh術語雙曲正切 -1 到1之間。有效解決上述問題。
- BPTT反向傳播推導公式
- LSTM BPTT算法
- 前向推導
LSTM原理 前向推導假如上一層節點i,j,k...等一些節點與本層的節點w有連結。那麼節點w的值如何計算? 通過上一層的i,j,k等節點以及對應的連接配接權值(W)進行權重和運算,最終結果再加上一個偏執項,最後通過非線性函數(又稱激活函數),若ReLu,sigmoid等函數,最後得到的結果就是本層節點w輸出。 最後不斷的通過這種方法一層層運算,得到輸出層結果。
-
如下公式:
a2=σ(z2)=σ(a1∗W2+b2)
其中,上标代表層數,星号表示卷積,b表示偏置項bias,σ \sigmaσ表示激活函數。
-
- 反向推導
- https://blog.csdn.net/bitcarmanlee/article/details/78819025
前向推導和反向推導
6.LSTM不足
- 和RNN一樣,隻是緩解了梯度問題。序列長度過長,還是存在梯度問題。
- LSTM計算相對費時,LSTM的cell裡面都有4個全連接配接層(MLP)。
7.LSTM模型改進
- Peephole LSTM
在 LSTM 本體上加上一個Peephole connection,
- GRU
把遺忘門和傳輸門進行合并叫更新門,還把偏執省掉了。