为什么需要深层神经网络
第一:层数的增多会使每一层任务都变得简单,例如计算乘法,可以在第一层计算按位加法,第二层计算两个数的加法,第三层计算乘法,这样的算法逻辑更加简单,清晰。也就是说中间层可以做更深的抽象。
第二:数学上可以证明只有一层隐藏层的神经网络可以表示任意的函数,但是神经元的数量却是指数级增加的,但是使用深层网络可以解决这个问题。
所以综上深层神经网络可以解决浅层神经网络无法轻易解决的问题。
但是如果我们使用随机梯度下降训练深层神经网络的话,就会发现结果并没有比浅层神经网络好。这是因为不同的层学习速度差很多,后面的层学习更快,这是因为我们使用的是基于梯度的学习算法。
The vanishing gradient problem
在使用MLP识别MNIST时我们会发现,一味的增加隐藏层数量并不会给最终的结果带来好处,但是上文已经说了层数的增加可以使神经网络提升,那么问题的原因就是增加后的网络的权重不对。
δl