lstm原理_Mamp;DL | LSTM:遗忘门、记忆门、输出门
LSTM(Long short term memory,長短時記憶網絡),是一種特殊的RNN(Recurrent Neural Network,循環神經網絡),能夠學習長期的依賴關系。LSTM在這篇文章中被提出。
所有RNN都具有神經網絡的重復模塊鏈的形式。 在標準的RNN中,該重復模塊將具有非常簡單的結構,例如單個tanh層。標準的RNN網絡如下圖所示
標準RNN中的重復模塊包含一個單層LSTM也具有神經網絡的重復模塊鏈的形式。只是在CNN的基礎上,每個重復模塊增加了三個神經網絡層,如下圖所示
LSTM中的重復模塊包含四個神經網絡層圖中的綠色大框代表單元模塊;黃色方框代表神經網絡層;粉色圓圈代表逐點操作,例如矢量加法;箭頭表示向量轉換,從一個節點輸出到另一個節點輸入;合并的行表示串聯,而分叉的行表示要復制的內容,并且副本將到達不同的位置。核心思想
CNN的主線就是這條頂部水平貫穿的線,也就是長期記憶C線(細胞狀態),達到了序列學習的目的。而h可以看做是短期記憶,x代表事件信息,也就是輸入。LSTM也是以這一條水平貫穿的C線為主線,在此基礎上添加三個門,以保護控制單元狀態。所以LSTM有刪除或向單元狀態添加信息的能力,都是由這門的結構來調節控制的。
這個門(gate)是一種選擇性的讓信息通過的方式。它是由Sigmoid神經網絡和矩陣逐點乘運算組成。
增加的三個神經網絡層就代表LSTM的三個門(遺忘門、記憶門、輸出門)。
遺忘門
顧名思義,要遺忘或丟棄一些信息。遺忘門的任務就是接受一個長期記憶
(上一個單元模塊傳過來的輸出)并決定要保留和遺忘 的哪個部分。例如,在語言模型中,我們想要通過一個詞來預測下一個詞,單元模塊 中可能包含某個屬性在下一個模塊單元不需要,就可以將這個屬性在單元模塊C中遺忘(丟棄)。LSTM中的遺忘門數學原理:把t-1時的長期記憶輸入
乘上一個遺忘因子 。遺忘因子是由短期記憶 以及事件信息 來計算。遺忘因子計算公式:
記憶門
記憶門的作用是確定什么樣的新信息被存放在細胞狀態(也就是前面說的單元模塊)中。記憶門包括兩個部分:
一、sigmoid層,決定什么值需要更新;
二、tanh層,創建一個新的候選值向量,生成候選記憶。
針對遺忘門中丟棄的屬性信息,在本單元模塊找到相應的新的屬性信息,添加進去,以補充丟棄的屬性信息。
LSTM中的記憶門數學原理:接受從遺忘門輸出的長期記憶
,以及從學習門輸出的短期記憶然后直接把兩者合并起來計算公式:
至此,已經更新舊的細胞狀態
,得到 的值:LSTM中細胞狀態的更新輸出門
最終,我們要根據細胞狀態,確定輸出值。首先我們使用一個Sigmiod函數來去確定細胞狀態的哪部分需要輸出,然后把細胞狀態通過tanh層處理,兩者相乘得到最終我們想要輸出的信息。
LSTM中的輸出門數學原理:通過一個Sigmoid函數得到
, 與 相乘得到最終的輸出 。計算公式:
LSTM還有一些變體,都是在本文介紹的基礎之上做改動。
總結
LSTM有進有出且當前的cell informaton是通過input gate控制之后疊加的,而RNN是疊乘,因此LSTM可以防止梯度消失或者爆炸,會比RNN好一丟。
參考
Understanding LSTM Networks?colah.github.io本文圖片均來自:Understanding LSTM Networks
總結
以上是生活随笔為你收集整理的lstm原理_Mamp;DL | LSTM:遗忘门、记忆门、输出门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python生成报告_python生成测
- 下一篇: python phpstudy_GitH