梯度消失,梯度爆炸_緣由分析_簡單例子助理解
梯度消失,梯度爆炸的根源實際上是來在反向傳播BP(back propagation).html
反向傳播的思想: 每層的輸出是由兩層間的權重決定的,兩層之間產生的偏差,按權重縮放後在網絡中向前傳播, 這就是反向傳播。
從反向傳播中獲得通常化公式:
δn−1=ωn−1δn∗fn−1′web
Δwn−2=ηδn−1xn−1網絡
其中
δn爲第
n層的偏差項,
δn−1爲第
n−1層的偏差項,
ωn−2爲第
n−2層到第
n-1層的權重,
fn−1′爲第
n−1層輸出的導數,也就是激活函數的導數,
xn−1爲第
n−1層的輸入,
η爲學習率,
Δwn−2就是第
n−2層到第
n−1層權重更新步長了.app
對於
n層神經網絡,根據反向傳播的公式,到第
n−i層的權重
wn−i−1更新規則爲:svg
δn−i=(ωn−i⋅⋅⋅(ωn−2(ωn−1(ωnδn∗fn−1′)∗fn−2′)∗fn−3′)⋅⋅⋅∗fn−i′)函數
Δwn−i−1=ηδn−ixn−i學習
上述就是權重
wn−i更新規則,對於激活函數的倒數
fn−1′,
fn−2′,
fn−3′,..,
fn−i′,若是此部分大於1,那麼層數增多的時候,最終的求出的權重
wn−i更新將以指數形式增長,即發生梯度爆炸,若是此部分小於1,那麼隨着層數增多,求出的權重
wn−i−1的更新步長
Δwn−i−1將會以指數形式衰減,即發生了梯度消失。spa
簡單例子
用下面最簡單的單線神經網絡來講明,更見直觀的理解梯度消失,梯度爆炸..net
說明:
f表示激活函數,
fi就表示第
i層的輸出,
δi表示輸出的偏差項.
那麼根據上圖,能夠獲得第二層的偏差項
δ2爲:orm
δ2=w2w3w4δ5f4′f3′f2′
第二層的權重更新步長爲:
Δw2=ηδ2x2
從上面的例子咱們能夠直觀的看出有連乘
f4′f3′f2′, 當神經網絡的層數進一步增長的時候,連乘會進一步加長.因此當
fn′<1的時候,隨着累乘的增長(遠離輸出端),偏差項
δ會逐漸趨近0,這就是梯度消失.當
fn′>1的時候,隨着累乘的增長(遠離輸出端),偏差項
δ會逐漸趨近無窮,這就是梯度爆炸.