日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【神经网络】一文读懂LSTM神经网络

發布時間:2023/12/10 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【神经网络】一文读懂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-1xt,從公式上我們可以看到是這兩個值與權重矩陣 Wf 相乘,我們可以理解為 ht-1xt 的拼接,拼接以后再與 Wf 相乘,然后加上一個偏置 bf,最后經過一個激活函數sigmoid,使得線性變換變成非線性變換,此時 ft 的取值為(1,0),這個值決定了 Ct-1 的值是否被記憶或者遺忘,或者說記住多少,這就是這個遺忘門的作用。

5. 輸入門


同理,itft 公式是一樣的,這就說明,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神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。