神经网络中的多个隐藏层如何提高其学习能力?

大多数神经网络仅用一个隐藏层就能带来高精度,那么多个隐藏层的目的是什么呢?


回答:

要回答你的问题,首先需要了解为什么大约十年前提出了“深度学习”这个术语。深度学习不过是具有多个隐藏层的神经网络。术语“深度”大致指的是我们的大脑如何通过不同层的神经元传递感官输入(特别是眼睛和视觉皮层)来进行推理。然而,直到大约十年前,研究人员还无法训练具有一个或两个隐藏层以上的神经网络,因为会出现各种问题,如梯度消失、梯度爆炸,陷入局部最小值,以及优化技术的效果较差(与现在使用的相比)以及其他一些问题。2006年和2007年,几位研究人员12展示了一些新的技术,使得能够更好地训练具有更多隐藏层的神经网络,自那时起,深度学习时代就开始了。

在深度神经网络中,目标是模仿大脑的功能(希望如此)。在进一步描述之前,我可以指出,从抽象的角度来看,任何学习算法的问题都是在给定一些输入X和输出Y的情况下近似一个函数。在神经网络中也是如此,并且已经理论上证明,仅使用一个隐藏层的神经网络,使用有界的、连续的激活函数作为其单元,可以近似任何函数。这个定理被称为通用近似定理。然而,这引出了一个问题:为什么当前只有一个隐藏层的神经网络不能以非常高的精度(比如>99%)近似任何函数?这可能有很多原因:

  • 当前的学习算法的效果不如预期
  • 对于特定问题,应该如何选择隐藏单元的确切数量,以便学习所需的函数并很好地近似底层流形?
  • 训练样本的数量可能与隐藏单元的数量成指数关系。那么,应该用多少训练样本来训练模型呢?这可能会变成一个先有鸡还是先有蛋的问题!
  • 什么是有界的、连续的激活函数,通用近似定理是否可以推广到除 sigmoid之外的其他激活函数?
  • 还有其他一些问题需要回答,但我认为我提到的这些是最重要的。

在能够对上述问题给出可证明的答案(无论是理论上还是实证上)之前,研究人员开始使用多个隐藏层,但隐藏单元的数量有限。实证表明这具有很大的优势。尽管增加更多的隐藏层会增加计算成本,但实证证明,更多的隐藏层可以学习输入数据的层次表示,并且可以更好地泛化到未见过的数据。通过查看下面的图片,你可以看到一个深度神经网络如何学习特征的层次结构,并在从第一个隐藏层到最后一个隐藏层的过程中逐步结合这些特征:

enter image description here图片来自这里

如你所见,第一个隐藏层(显示在底部)学习了一些边缘,然后结合这些看似无用的表示变成物体的一部分,然后结合这些部分会产生像脸、车、大象、椅子等。请注意,如果没有使用新的优化技术和新的激活函数,这些结果是无法实现的。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注