首页 > 代码库 > Neural Network and DeepLearning (5.1)深度神经网络为何很难训练

Neural Network and DeepLearning (5.1)深度神经网络为何很难训练

在深度网络中,不同层的学习速度差异很大。例如:在网络中后面的层学习情况很好的时候,前面的层常常会在训练时停滞不前,基本上不学习了。另一种情况恰恰相反,前面的层学习的很好,后面的层却停止学习了。

这是因为基于梯度下降的学习算法的本身存在着内在的不稳定性,这种不稳定性使得前面或者后面的层的学习停止。

消失梯度问题(The vanishing gradient problem)

在某些深度神经网络中,在隐藏层反向传播时梯度倾向于变小,也就是前面隐藏层的学习速度要慢于后面的隐藏层。这就是消失的梯度问题

另一种情况是,前面隐藏层的梯度会变得非常的大,也就是前面隐藏层的学习速度要快于后面的隐藏层。这叫做爆炸的梯度问题

也就是说,在深度神经网络中的梯度是不稳定的,在前面的层中或会消失,或会爆炸。

不稳定的梯度问题出现的原因

在前面层上的梯度是来自后面的层上项的乘积,当存在过多的层时,就出现了内在本质上的不稳定场景。

一般会发现在sigmoid网络中前面层的梯度会指数级的消失。

 

Neural Network and DeepLearning (5.1)深度神经网络为何很难训练