我记得在某处读到过,卷积神经网络在层数增加时,不像标准的Sigmoid神经网络那样严重受到梯度消失问题的困扰。但我一直没能找到具体的解释原因。
卷积神经网络真的不受这个问题的影响吗?还是我错了,这取决于激活函数?我一直使用的是整流线性单元(ReLU),所以我从未在卷积神经网络中测试过Sigmoid单元。
回答:
卷积神经网络(像标准的Sigmoid神经网络一样)确实会受到梯度消失问题的困扰。克服梯度消失问题的最推荐方法包括:
- 逐层预训练
- 选择激活函数
你可能会注意到,解决计算机视觉问题的最先进深度神经网络(如ImageNet的获胜者)在网络的前几层使用了卷积层,但这并不是解决梯度消失问题的关键。关键通常是逐层贪婪地训练网络。当然,使用卷积层还有其他几个重要的好处。特别是在输入尺寸较大的视觉问题中(如图像的像素),推荐在前几层使用卷积层,因为它们比全连接层参数更少,这样就不会在第一层就拥有数十亿的参数(这会使你的网络容易过拟合)。
然而,已经有研究(如这篇论文)表明,在多个任务中,使用整流线性单元(ReLU)可以缓解梯度消失问题(相对于传统的Sigmoid函数)。