用交叉熵損失函式能解決梯度消失問題嗎?

時間 2021-06-01 09:13:03

1樓:缺心眼

只解決最後一層。因為鏈式求導過程中每一層都會對啟用函式求導。在前面幾層中可以利用ReLU等函式代替sigmoid函式以解決隱層的梯度消失問題,但在例如二分類問題中,輸出層一般還是會選擇使用sigmoid函式,此時就需要搭配交叉熵損失函式解決一下輸出層的梯度消失問題了。

2樓:

梯度消失的意思是當反向傳播進行很多層的時候,由於每一層都對前一層梯度乘以了乙個小數,因此越往前傳遞,梯度就會越小,訓練越慢。解決方法就是讓前面層直接連線到最後面。這樣的神經網路的開端是resnet。

3樓:風翼冰舟

目前尚未出現解決梯度消失的方案吧,至少LSTM也只是減輕而非避免了梯度消失。有乙個誤區就是梯度消失只與損失函式的導數有關?

我記得使用均方差損失時候計算得到的導數有三項吧:

(oy)σ′(wh+b)h

用交叉熵計算得到的導數有兩項

(yo)h

損失函式梯度對比-均方差和交叉熵 - 風翼冰舟的部落格 - CSDN部落格

4樓:lens

梯度消逝和損失函式關係不大。造成梯度消逝的原因,是由於各層的輸出值的分布不同,導致反向傳播的時候損失量分不好,迭代幾次之後,有些層的權值沒什麼改變有的層卻改變極大,一旦接近零就陷在裡面出不來了,所以bn把各層的輸出統一起來有作用,leaky relu讓陷進去的權值還能走出來也是有用的。

5樓:

不能。梯度消失指的是連續小數(絕對值比較小)相乘,導致結果無限趨近於0, 這個和損失函式沒有必然關係,當然不同的損失函式可能梯度消失的嚴重程度不一樣。

為什麼pytorch中的交叉熵損失用的是ylogp而不是ylogp 1 y log 1 p ?

Honda 交叉熵反映的是兩個概率分布的近似程度,其中式子裡面的y是實際分布,如果是二分類的話,它的取值只有0和1,所以當y 1的時候,後面那項就消掉了,當y 0的時候,前面那項消掉了,後面那項變成ylogp.因此可以直接這樣寫. Shawvin ylogp需要y是獨熱編碼,比如分成三類就是 0,0...

使用ReLU作為啟用函式還有必要用交叉熵計算損失函式嗎?

Sae10138 我也糾結過這個問題,說一下我的想法 首先啟用函式分為隱藏層的啟用函式,和輸出層的啟用函式。隱藏層就是神經網路中間那堆單元,輸出層則是最後給出最終結果的那一層。然而在輸出層用ReLU作為啟用函式的話,是不能再用交叉熵來計算損失的,因為交叉熵函式要求神經網路的輸出在0到1之間。比如二分...

如何理解決策樹的損失函式

hittlle 發現都沒有回答為什麼要乘以那個Nt,請看上面手寫的部分,字醜勿怪!看出來了嗎?那就是經驗條件熵!因為 T 對所有的Nt是不變的,所以可以省略,兩者等價! 請叫我東少 統計那本書看了一些,過來獻個醜,有問題希望大家多多指點。在機器學習方面,一般的損失函式都是由優化項和正則項組成的,決策...