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

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

有帮助吗?

解决方案

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

  • 单个隐藏层可能需要任意宽。
  • 这并没有说明找到近似值的容易程度。一般来说,大型网络很难正确训练,并且经常成为过度拟合的受害者(例外是所谓的“卷积神经网络”,它实际上只适用于视觉问题)。
  • 这也没有说明代表的效率。如果仅使用一层完成,某些函数需要指数数量的隐藏单元,但使用更多层可以更好地扩展(有关此内容的更多讨论,请阅读 将学习算法扩展到人工智能)

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

其他提示

这是非常有趣的问题,但它不是那么容易回答。这取决于你试图解决什么神经网络试图使用的问题。有几种神经网络类型。

我一般就不是那么明显,更多的节点等于更精确。研究表明,你需要大多只有一个隐层。节点的NUMER应该是需要解决的一个问题节点的最小NUMER。如果你没有足够的人 - 你不会达到的解决方案。

从另一方面 - 如果你已经到达节点的数量是很好的解决方案 - 你可以添加越来越多的人,你不会看到结果预计有进一步进展

这就是为什么有这么多类型的神经网络。他们试图解决不同类型的问题。所以,你必须NN解决静电问题,解决时间有关的问题,因此一个。节点的数量并不像它们的设计很重要。

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

从理论上来说,您可以放心,任何函数都可以由具有两个隐藏层和非线性激活的神经网络来表示。

另外,如果您不确定合适的拓扑,请考虑使用额外的资源来增强,而不是添加更多节点。

拇指的非常粗略的规则

每层通常多个元件更大的输入向量。

更多个层可以让你建模多个非线性系统。

如果您使用的网络的种类有传播延迟,多个层可允许的时间序列的建模。小心必须在延时抖动或它不会很好地工作。如果这只是官样文章来你忽略它。

更多层可以让你插入复发性特征。这可能是歧视的任务是非常有用的。你ANN实现我不允许这样做。

HTH

的每单位隐藏层占ANN的潜力来描述任意复杂的功能的数量。一些(复杂)的功能可能需要许多隐藏节点,或可能多于一个隐藏层。

当一个功能可以通过一定数量的隐藏单元大致近似,任何额外的节点将提供更准确的...但是这是唯一真正的,如果使用的训练样本,足以证明这种除 - 否则会发生什么“过会聚”。过会聚意味着你的神经网络已经失去了它的推广能力,因为它有特定的样本过。

在一般,最好是使用隐藏少单位可能的,如果所得到的网络可以提供良好的结果。证明更隐藏节点所需要的额外的训练模式不能在大多数情况下很容易地找到,并且精度不受神经网络支撑点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top