梯度消失/梯度爆炸(Vanishing / Exploding gradients)
梯度消失或梯度爆炸:训练神经网络的时候,导数或坡度有时会变得非常大,或者非常小,甚至于以指数方式变小,这加大了训练的难度。
g ( z ) = z , b [ l ] = 0 g(z)=z,b^{[l]}=0 g(z)=z,b[l]=0
y ^ = W [ l ] W [ l − 1 ] W [ l − 2 ] ⋯ W [ 3 ] W [ 2 ] W [ 1 ] x \hat{y}=W^{[l]}W^{[l-1]}W^{[l-2]}\cdots W^{[3]}W^{[2]}W^{[1]}x y^=W[l]W[l−1]W[l−2]⋯W[3]W[2]W[1]x
z [ 1 ] = W [ 1 ] x z^{[1]}=W^{[1]}x z[1]=W[1]x
a [ 1 ] = g ( z [ 1 ] ) = z [ 1 ] a^{[1]}=g(z^{[1]})=z^{[1]} a[1]=g(z[1])=z[1]
a [ 2 ] = g ( z [ 2 ] ) = g ( w [ 2 ] a [ 1 ] ) a^{[2]}=g(z^{[2]})=g(w^{[2]}a^{[1]}) a[2]=g(z[2])=g(w[2]a[1])
⋯ \cdots ⋯
若: W [ l ] = [ 1.5 0 0 1.5 ] , y ^ = W [ L ] [ 1.5 0 0 1.5 ] L − 1 x W^{[l]}=\left[ \begin{matrix}1.5&0\\0&1.5\end{matrix} \right],\hat{y}=W^{[L]}\left[ \begin{matrix}1.5&0\\0&1.5\end{matrix} \right]^{L-1}x W[l]=[1.5001.5],y^=W[L][1.5001.5]L−1x
注:假设 W [ L ] W^{[L]} W[L] 更 W [ l ] W^{[l]} W[l] 相等
这会导致 y ^ \hat{y} y^ 呈指数级增长,比率: 1. 5 L 1.5^L 1.5L
相反,若 W [ l ] = [ 0.5 0 0 0.5 ] , y ^ = W [ L ] [ 0.5 0 0 0.5 ] L − 1 x W^{[l]}=\left[ \begin{matrix}0.5&0\\0&0.5\end{matrix} \right],\hat{y}=W^{[L]}\left[ \begin{matrix}0.5&0\\0&0.5\end{matrix} \right]^{L-1}x W[l]=[0.5000.5],y^=W[L][0.5000.5]L−1x
- 这会导致激活函数的值将以指数级下降,它是与网络层数数量 L L L 相关的函数,在深度网络中,激活函数以指数级递减。
若 W [ l ] W^{[l]} W[l] 略大于 1,激活函数将爆炸式增长
若 W [ l ] W^{[l]} W[l] 略小于 1,激活函数将以指数级递减
同理:与层数 L L L 相关的导数或梯度函数