大多数神经网络只有一个隐藏层才能带来高精度,那么多个隐藏层的目的是什么?
答案 0 :(得分:8)
要回答你的问题,你首先需要找到为什么这个术语“深度学习”背后的原因。是近十年前创造的。深度学习只不过是一个有几个隐藏层的神经网络。术语深度粗略地指的是我们的大脑通过不同层的神经元传递感觉输入(特别是眼睛和视觉皮层)进行推理的方式。然而,直到大约十年前,由于vanishing, exploding gradients引起的不同问题,研究人员无法训练具有超过1或2个隐藏层的神经网络,陷入局部最小值,以及效率较低的优化技术(与现在正在使用什么)和其他一些问题。在2006年和2007年,一些研究人员1和2展示了一些新技术,可以更好地训练具有更多隐藏层的神经网络,然后从那时起,深度学习的时代已经开始
在深度神经网络中,目标是模仿大脑的作用(希望如此)。在进一步描述之前,我可能会指出,从抽象的角度来看,任何学习算法中的问题都是在给定一些输入 X 和输出 Y 的情况下近似函数。在神经网络中也是如此,理论上已经证明,使用有界连续激活函数作为单位的一个隐藏层的神经网络可以近似任何功能。该定理被创造为 universal approximation theorem 。然而,这提出了一个问题:为什么当前具有一个隐藏层 的神经网络能够以非常高的准确度(比如> 99%)逼近任何函数?这可能是由于许多原因造成的:
- 当前的学习算法不如它们应该有效
- 对于一个特定的问题,应该如何选择隐藏单位的确切数量,以便学习所需的函数,并且基本的流形近似得很近?
- 训练样例的数量可以是隐藏单位数量的指数。那么,应该训练一个模型的训练样例有多少?这可能会变成鸡蛋问题!
- 什么是正确的有界连续激活函数,并且通用逼近定理是否可推广到任何其他激活函数而不是 sigmoid ?
- 还有其他问题需要回答,但我认为最重要的问题是我提到的问题。
在能够对上述问题(理论上或经验上)提出可证实的答案之前,研究人员开始使用具有有限数量的隐藏单位的多个隐藏层。根据经验,这显示出很大的优势。虽然添加更多隐藏层会增加计算成本,但经验证明,更多隐藏层可以学习输入数据的层次表示,并且可以更好地推广到看不见的数据。通过查看下面的图片,您可以看到深度神经网络如何学习特征的层次结构,并在我们从第一个隐藏层到最后一个隐藏层时连续组合它们:
图片取自here
正如你所看到的,第一个隐藏层(显示在底部)学习一些边缘,然后将那些看似无用的表示组合成对象的某些部分然后组合这些部分将产生像面部,汽车,大象的东西,椅子......请注意,如果未使用新的优化技术和新的激活函数,则无法实现这些结果。