在一个标准神经网络中,对于不同层的训练速度是显著不同的,其原因在于反向传播中传递到每个层的增量是累乘的,如果神经元w设置在(0,1)之间,那么很有可能在经过若干层传递到最前面的层后对应的增量已经非常小,这就是所谓的梯度消失问题。(梯度爆炸类似)
假设每层只有一个神经元
按照平时随机从正态分部(0,1)中随机产生权重的方法, 大部分|w| < 1
进一步通过计算来验证:
另外一个例子:
[784,30,30,30,10]
再增加一层:
[784,30,30,30,30,10]
可以看出,第一个隐藏层比第四个几乎要慢100倍
这种现象普遍存在于神经网络之中, 叫做: vanishing gradient problem
另外一种情况是内层的梯度被外层大很多, 叫做exploding gradient problem
所以说神经网络算法用gradient之类的算法学习存在不稳定性