Algorithm 人工神经网络问题

Algorithm 人工神经网络问题,algorithm,neural-network,Algorithm,Neural Network,一般来说,通过向一个或多个隐藏层添加更多节点来扩展人工神经网络,你能从中得到什么 这是一个非常有趣的问题,但回答起来并不容易。这取决于你试图解决的问题和你试图使用的神经网络。有几种神经网络类型 一般来说,不太清楚节点越多,精度就越高。研究表明,您通常只需要一个隐藏层。节点数应为解决问题所需的最小节点数。如果你没有足够的答案,你将无法找到解决方案 从另一方面来说,如果您已经达到了解决方案所需的节点数量,那么您可以添加越来越多的节点,并且在结果估计中不会看到任何进一步的进展 这就是为什么有这么多类型

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


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

一般来说,不太清楚节点越多,精度就越高。研究表明,您通常只需要一个隐藏层。节点数应为解决问题所需的最小节点数。如果你没有足够的答案,你将无法找到解决方案

从另一方面来说,如果您已经达到了解决方案所需的节点数量,那么您可以添加越来越多的节点,并且在结果估计中不会看到任何进一步的进展


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

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

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


也可以考虑使用额外的资源进行升压,而不是添加更多的节点,如果您不确定合适的拓扑结构。 非常粗略的经验法则

一般来说,对于较大的输入向量,每层有更多的元素

更多的层可以让您建模更多的非线性系统

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

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


HTH

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

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


一般来说,如果生成的网络能够提供良好的结果,则最好使用尽可能少的隐藏单元。在大多数情况下,证明更多隐藏节点正确性所需的额外训练模式不容易找到,准确度不是NNs的强项。

机器学习中有一个众所周知的结果,即单个隐藏层足以逼近任何平滑、有界函数(这家报纸被称为《华尔街日报》,现在已经有将近20年的历史了)

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

深层神经网络的问题是,它们更难训练。最终,非常非常小的梯度会被反向传播到早期的隐藏层,而学习实际上不会有任何进展,特别是当权重被初始化为很小时(如果你将它们初始化为更大的数量级,你经常会陷入糟糕的局部极小值中)。有一些“预训练”技术,如Geoff Hinton在本文中讨论的技术,试图解决这个问题。

它是否有反馈?它会,但我认为学习算法与结果无关。