【神经网络】一文读懂LSTM神经网络
簡介
說到LSTM神經網絡,大家都不陌生,LSTM指的是Long Short-Term Memory,意思是:長短時記憶,也就是說這個神經網絡有記憶功能,為什么說它有記憶功能呢?因為在訓練數據的時候,很久之前的文本保留下來的信息,可以對當下的預測產生影響,所以就認為神經網絡記住了一部分信息。
1. 與RNN對比
由于LSTM來源于對RNN的升級,我們先從RNN入手,來理解整個LSTM在做什么
圖上的三個節點其實是按照時間的順序展開的,或者叫做順著時序展開的,我們只需要關注其中的一個節點就可以了,從圖上看,每個節點的輸入有兩個,輸出也有兩個。輸出的兩個是同一個值,一個用于輸出結果,一個用于下一層的輸入(其實是同一層,只是下一次迭代的輸入),就這樣不停的循環迭代訓練,就完成了一個RNN神經網絡的訓練。可能有人要疑惑了,只有一個神經元節點,也就是說只有一個權重W,這樣訓練出來的網絡模型能有很好的擬合能力,或者說是記憶能力?其實,圖上只是展現了一個神經元的內部過程,其實這種神經元是可以并列有很多的,同時,也可以設置多個隱層,這樣的話就會有很多的參數了,其記憶能力就會變強了。
接下來我們看看LSTM有什么升級
由圖可知,和RNN相比,從輸入和輸出方面,LSTM多了個輸入,也多了個輸出,多的這個值,就是LSTM的記憶和遺忘機制,值通常用C表示,C指的是Cell,也就是細胞的狀態的意思。也就是說,這個值能夠決定記憶什么,忘記什么。那這個值的出現有什么好處呢?假如當這個值為0的時候,就說明前面的都不用記住了,也就是說,在反向求導的時候,到這里就可以停止了,我們知道,鏈式法則里的連乘或者連加,有了這個值的出現,我們就可以避免梯度的Explod和vanishing。具體C的遺忘機制的實現方法,我們在下面詳細的探討。
2. 細節解釋
要看懂LSTM的具體實現步驟,就得了解每個小組件代表著什么意思。
- Nerual Network Layer : 神經網絡層,在是指經過這個圖標的時候,會對數據進行非線性變換,通常是添加激活函數和偏置。σ一般指的是sigmoid激活函數,tanh便是tanh函數;
- Pointwise Operation:智慧點操作,這個點有兩種運算方式,一種是加,一種是乘;
- Vector Transfer:向量的傳輸;
- Concatenate:連接,一般是向量的拼接操作;
- Copy:拷貝,即同一份數據,拷貝成兩份輸出。
3. 細胞狀態
從圖上可以看到,Cell狀態的變換即C值的變換一共經過了兩次操作,這兩次操作決定了Ct-1的遺忘和更新,首先,Ct-1經過了乘法的Pointwise Operation,這一步決定了Ct-1值是否被遺忘,為什么呢?我們可以看出,與Ct-1相乘的數來自于下方的層,那么下方傳過來的數據的取值范圍是多少呢?我們可以看出,下方的數據通過的是一個sigmoid的層,也就是說下方穿過來的數據的取值為(0, 1),一般情況下,當輸入值大于3或者小于-3的時候,sigmoid的值就接近了1和0,也就是說,C的值一般情況下會接近于Ct-1不變,或者0,也就是說記住了C或者遺忘了Ct-1,當然,一個介于(0, 1)之間的數與Ct-1相乘的話,則代表需要記住多少的Ct-1值。接下來,Ct-1值又遇到了一個加法,則是對Ct-1>值的變更,比如新的信息的加入,一般理解為需要記憶的新的東西。這么來看,我們就完成了C值的遺忘機制,也就是說,這個神經網絡具備了記憶和遺忘的能力。
在LSTM中,這便是所謂的門的概念。【在集成電路里,邏輯門就是代表邏輯上的“真”與“假”或二進制當中的1和0,從而實現邏輯運算。】
4. 遺忘門
在上面介紹Cell狀態的時候也粗略的討論了這個遺忘門的基本機制,我們來看這個遺忘門的輸入信息,分別是 ht-1,xt,從公式上我們可以看到是這兩個值與權重矩陣 Wf 相乘,我們可以理解為 ht-1 與 xt 的拼接,拼接以后再與 Wf 相乘,然后加上一個偏置 bf,最后經過一個激活函數sigmoid,使得線性變換變成非線性變換,此時 ft 的取值為(1,0),這個值決定了 Ct-1 的值是否被記憶或者遺忘,或者說記住多少,這就是這個遺忘門的作用。
5. 輸入門
同理,it 和 ft 公式是一樣的,這就說明,it 也具有遺忘的功能,比如,Ct-1在遇到 ft 的時候,ft 決定保留Ct-1的記憶,則此時,it 則決定著對 Ct‘ 的遺忘能力,所以,Ct‘ 是LSTM需要記憶的新的值。我們可以看到Ct‘的取值范圍是(-1,1),說明新增的記憶的是征服兼有的,這代表著什么呢,可以理解為正例記憶和反例記憶。
Ct-1 遺忘剩余的部分,與新的要記憶的部分 Ct‘ 相加,就是要輸出的Ct ,詳細不再贅述。
6. 輸出門
最后來到了輸出門,本次輸出的結果就從這個地方輸出,我們可以看到ht 是由ot 與tanh(Ct) 相乘得來,也就是說本次需要多少為我所用的含義。
7. 變體
LSTM的變體有很多,最常提到的要數GRU(Gated Recurrent Unit)變體了,其內部構造也是相當的先進,本次不作為重點講解對象,下次有機會再講吧。
8. 總結
至此,LSTM的內部構造以及數據的運轉機制和含義都交代完了,通過上面的理解,我們可以看出,LSTM對RNN的改進在于對數據的更細化的處理,總體上理解LSTM就是可長可短時的記憶機制,所以叫做長短時記憶神經網絡。
總結
以上是生活随笔為你收集整理的【神经网络】一文读懂LSTM神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UG8.5有限元仿真分析基础到高级视频教
- 下一篇: 同步容器和并发容器的区别