在深度学习中,如果神经网络的深度比较深,或者没有正确地初始化权重矩阵,则有可能发生梯度爆炸(Exploding Gradient)或者梯度消失(Vanishing Gradient)。
下面举个例子分别解释一下梯度爆炸/消失的原因。
梯度消失
假设一个神经网络的Layer比较深,并且采用Sigmoid作为激活函数。由于Sigmoid函数的特性,其偏导值的范围在[0,0.25],如下图所示。
经过链式求导后,即
y
=
d
W
1
∗
d
W
2
∗
d
W
3
.
.
d
W
n
W
为
权
重
矩
阵
d
W
为
矩
阵
梯
度
求
导
y = dW_1*dW_2*dW_3..dW_n\\W为权重矩阵\\dW为矩阵梯度求导
y=dW1∗dW2∗dW3..dWnW为权重矩阵dW为矩阵梯度求导
因为权重矩阵的值∈[0,0.25],多个连乘后会不断趋近于0,最后发生梯度消失。
梯度爆炸
梯度爆炸的情况跟梯度消失类似,如果权重矩阵的初始化的值很大,并且对激活函数的偏导值>1,那么随着网络深度的增加,连乘的结果就会呈指数形式增加,即发生梯度爆炸。
总结
梯度爆炸/消失会使训练变得异常困难,所以如何正确地初始化权值变得非常重要。