LSTM為什麼可以緩解梯度消失

2021-09-26 10:06:57 字數 1846 閱讀 8671

首先要明確的一點是,lstm並不能完全解決梯度消失的問題,僅僅只是緩解。

原始的lstm是沒有遺忘門的,所以c

tc_t

ct​的更新如下:

c t=

ct−1

+it∗

c^

tc_t=c_+i_t*\hat c_t

ct​=ct

−1​+

it​∗

c^t​

由此可見c

tc_t

ct​對ct−

1c_

ct−1

​的偏導為常數1,因此有效的緩解了lstm的梯度消失問題。但是現在用的lstm加入了遺忘門,使得c

tc_t

ct​的更新如下:

c t=

ft∗c

t−1+

it∗c

^t

c_t=f_t*c_+i_t*\hat c_t

ct​=ft

​∗ct

−1​+

it​∗

c^t​

由於f

tf_t

ft​是由sigmoid函式得來的,而sigmoid函式的範圍是(0,1),因此加入了遺忘門之後,可以說又將lstm的梯度消失的問題有加重了。但是此時的梯度消失,可以解釋為網路故意遺忘前面部分。

以下為知乎複製過來的:

1、首先需要明確的是,rnn 中的梯度消失/梯度**和普通的 mlp 或者深層 cnn 中梯度消失/梯度**的含義不一樣。mlp/cnn 中不同的層有不同的引數,各是各的梯度;而 rnn 中同樣的權重在各個時間步共享,最終的梯度 g = 各個時間步的梯度 g_t 的和。

2、由 1 中所述的原因,rnn 中總的梯度是不會消失的。即便梯度越傳越弱,那也只是遠距離的梯度消失,由於近距離的梯度不會消失,所有梯度之和便不會消失。rnn 所謂梯度消失的真正含義是,梯度被近距離梯度主導,導致模型難以學到遠距離的依賴關係。

3、lstm 中梯度的傳播有很多條路徑, 這條路徑上(也就是上個公式)只有逐元素相乘和相加的操作,梯度流最穩定;但是其他路徑(例如 )上梯度流與普通 rnn 類似,照樣會發生相同的權重矩陣反覆連乘。

4、lstm 剛提出時沒有遺忘門,或者說相當於 ,這時候在直接相連的短路路徑上可以無損地傳遞,從而這條路徑上的梯度暢通無阻,不會消失。類似於 resnet 中的殘差連線。

5、但是在其他路徑上,lstm 的梯度流和普通 rnn 沒有太大區別,依然會**或者消失。由於總的遠距離梯度 = 各條路徑的遠距離梯度之和,即便其他遠距離路徑梯度消失了,只要保證有一條遠距離路徑(就是上面說的那條高速公路)梯度不消失,總的遠距離梯度就不會消失(正常梯度 + 消失梯度 = 正常梯度)。因此 lstm 通過改善一條路徑上的梯度問題拯救了總體的遠距離梯度。

6、同樣,因為總的遠距離梯度 = 各條路徑的遠距離梯度之和,高速公路上梯度流比較穩定,但其他路徑上梯度有可能**,此時總的遠距離梯度 = 正常梯度 + **梯度 = **梯度,因此 lstm 仍然有可能發生梯度**。不過,由於 lstm 的其他路徑非常崎嶇,和普通 rnn 相比多經過了很多次啟用函式(導數都小於 1),因此 lstm 發生梯度**的頻率要低得多。實踐中梯度**一般通過梯度裁剪來解決。

7、對於現在常用的帶遺忘門的 lstm 來說,6 中的分析依然成立,而 5 分為兩種情況:其一是遺忘門接近 1(例如模型初始化時會把 forget bias 設定成較大的正數,讓遺忘門飽和),這時候遠距離梯度不消失;其二是遺忘門接近 0,但這時模型是故意阻斷梯度流的,這不是 bug 而是 feature(例如情感分析任務中有一條樣本 「a,但是 b」,模型讀到「但是」後選擇把遺忘門設定成 0,遺忘掉內容 a,這是合理的)。當然,常常也存在 f 介於 [0, 1] 之間的情況,在這種情況下只能說 lstm 改善(而非解決)了梯度消失的狀況。

LSTM與梯度消失

1.標準rnn中處理序列資料的方法是將上乙個state的資訊傳到下乙個state中,表示成數學公式為st f w st 1,xt b 其中f為啟用函式。在反向傳播中,根據求導的鏈式法則,這種形式求得的梯度為乙個矩陣w與啟用函式導數的乘積。如果進行n次反向傳播,梯度變化將會變為 w f 的n次方累乘。...

LSTM為什麼比RNN好

來自知乎大佬towser的回答,比較深刻,也加了點自己的注釋,侵刪 lstm 能解決梯度消失 梯度 是對 lstm 的經典誤解,rnn 中的梯度消失 梯度 和普通的 mlp 或者深層 cnn 中梯度消失 梯度 的含義不一樣。mlp cnn 中不同的層有不同的引數,各是各的梯度 而 rnn 中同樣的權...

金為什麼可以生水?水為什麼可以生木?

五行相生,金生水 水生木 木生火 火生土 土生金,在現代人看來,有些不可理解,例如 金為什麼可以生水?水為什麼可以生木?同理,五行相剋,金剋木 木剋土 土剋水 水剋火 火剋金當中,木剋土 土剋水之類,也有點不好理解,似乎與常識有些格格不入。其實,一切產生於古代的文化,都必須用那個時代的常識或理念來解...