对比于单层神经网络,深度学习就是在单层神经网络的基础上增加了多个隐含层。但随着神经网络的层数不断的增加,它的表现并没有很好的提高,甚至有倒退的现象发生。这个主要是因为以下二个方面的原因:
· 梯度消失
· 过度拟合
在这篇文章,主要对以上二个方面进行分析并提出解决方案。正是这些方案的提出,使得深度学习可以快速的发展。
1. 梯度消失问题
在反向传播的过程当中,成本函数输出的误差值要逐步的向输入层进行传播。在传播的过程中,神经网络对应的权重参数将依据传到本层的误差进行修正。梯度消失问题指的是输出层计算出来的误差值无法反向传播到隐藏层,使得权重参数无法进行修正。如果权重参数无法修正,则隐藏层的存在没有任何的意义。
为了解决梯度消失问题,我们把Sigmoid激活函数转变为ReLU激活函数。相对于Sigmoid函数而言,ReLU函数能够更好的向后传播误差信息。ReLU函数的定义为:
ReLU函数的图像为:
因此将ReLU函数配置Cross Entropy的成本函数可以有效的提升深度学习网络的性能。