19

一般来说,通过向隐藏层或更多隐藏层添加更多节点来扩展人工神经网络会得到什么?

它是否允许更精确的映射,或者它是否允许它可以识别的关系更微妙,或者其他什么?

4

5 回答 5

21

机器学习中有一个众所周知的结果,即单个隐藏层足以逼近任何平滑的有界函数(这篇论文被称为“多层前馈网络是通用逼近器”,现在已经有将近 20 年的历史了)。然而,有几件事需要注意。

  • 单个隐藏层可能需要任意宽。
  • 这并没有说明找到近似值的难易程度。一般来说,大型网络很难正确训练并且经常成为过度拟合的牺牲品(所谓的“卷积神经网络”例外,它实际上只用于解决视觉问题)。
  • 这也没有说明表示的效率。如果使用一层完成,某些函数需要指数数量的隐藏单元,但使用更多层可以更好地扩展(有关更多讨论,请阅读Scaling Learning Algorithms Towards AI

深度神经网络的问题在于它们更难训练。你最终会得到非常非常小的梯度被反向传播到更早的隐藏层并且学习不会真正去任何地方,特别是如果权重被初始化为很小(如果你将它们初始化为更大的数量,你经常会陷入糟糕的局部最小值) . 有一些“预训练”技术,例如 Geoff Hinton 在Google 技术演讲中讨论的技术,它们试图解决这个问题。

于 2009-01-05T13:23:55.077 回答
8

这是一个非常有趣的问题,但回答起来并不容易。这取决于您尝试解决的问题以及您尝试使用的神经网络。有几种神经网络类型。

我一般不清楚更多的节点是否等于更高的精度。研究表明,您通常只需要一个隐藏层。节点数应该是解决问题所需的最小节点数。如果你没有足够的它们 - 你将无法找到解决方案。

另一方面 - 如果您已经达到了可以解决解决方案的节点数量 - 您可以添加越来越多的节点,并且您将看不到结果估计的任何进一步进展。

这就是为什么有这么多类型的神经网络。他们试图解决不同类型的问题。所以你有神经网络来解决静态问题,解决时间相关问题等等。节点的数量不像它们的设计那么重要。

于 2008-12-02T01:05:54.537 回答
5

当您拥有隐藏层时,您正在创建输入的组合特征。那么,是通过现有输入的更多特征,还是通过组合现有特征的高阶特征来更好地解决问题?这是标准前馈网络的权衡。

你有一个理论上的保证,任何函数都可以用一个具有两个隐藏层和非线性激活的神经网络来表示。

此外,如果您不确定合适的拓扑结构,请考虑使用额外资源进行提升,而不是添加更多节点。

于 2008-12-02T01:25:45.700 回答
3

非常粗略的经验法则

对于更大的输入向量,通常每层有更多的元素。

更多的层可以让您对更多的非线性系统进行建模。

如果您使用的网络类型有传播延迟,则更多层可能允许对时间序列进行建模。注意在延迟中有时间抖动,否则它不会很好地工作。如果这对您来说只是 gobbledegook,请忽略它。

更多层可让您插入重复特征。这对于辨别任务非常有用。你 ANN 执行我不允许这样做。

高温高压

于 2008-12-02T01:43:29.360 回答
1

每个隐藏层的单元数说明了 ANN 描述任意复杂函数的潜力。一些(复杂的)函数可能需要许多隐藏节点,或者可能需要多个隐藏层。

当一个函数可以通过一定数量的隐藏单元粗略近似时,任何额外的节点都会提供更高的准确性……但这只有在使用的训练样本足以证明这种添加的合理性时才是正确的——否则会发生“过度收敛” . 过度收敛意味着你的 ANN 已经失去了泛化能力,因为它过分强调了特定的样本。

一般来说,如果得到的网络能给出好的结果,最好使用尽可能少的隐藏单元。在大多数情况下,很难找到证明更多隐藏节点合理所需的额外训练模式,并且准确性不是 NN 的强项。

于 2008-12-24T00:53:34.797 回答