亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Equipment >> 工业机器人

神经网络需要多少隐藏层和隐藏节点?

本文提供了配置多层感知器隐藏部分的指南。

到目前为止,在本系列神经网络中,我们已经讨论了感知器 NN、多层 NN,以及如何使用 Python 开发此类 NN。在我们继续讨论您可以选择使用多少隐藏层和节点之前,请考虑了解以下系列。

  1. 如何使用神经网络进行分类:什么是感知器?
  2. 如何使用简单的感知器神经网络示例对数据进行分类
  3. 如何训练基本的感知器神经网络
  4. 了解简单的神经网络训练
  5. 神经网络训练理论简介
  6. 了解神经网络中的学习率
  7. 使用多层感知器进行高级机器学习
  8. Sigmoid 激活函数:多层感知器神经网络中的激活
  9. 如何训练多层感知器神经网络
  10. 了解多层感知器的训练公式和反向传播
  11. Python 实现的神经网络架构
  12. 如何在 Python 中创建多层感知器神经网络
  13. 使用神经网络进行信号处理:神经网络设计中的验证
  14. 训练神经网络数据集:如何训练和验证 Python 神经网络
  15. 神经网络需要多少隐藏层和隐藏节点?

隐藏层回顾

首先,让我们回顾一下神经网络中隐藏节点的一些要点。

下图总结了一个基本的多层感知器的结构。

有多少隐藏层?

正如您所料,这个问题没有简单的答案。然而,最重要的是要理解带有一个隐藏层的感知器是一个非常强大的计算系统。如果你在一个隐藏层上没有得到足够的结果,首先尝试其他改进——也许你需要优化你的学习率,或者增加训练 epoch 的数量,或者增强你的训练数据集。添加第二个隐藏层会增加代码复杂性和处理时间。

另一件要记住的事情是,一个过于强大的神经网络不仅仅是在浪费编码工作和处理器资源——它实际上可能通过使网络更容易受到过度训练而产生积极的伤害。

我们在第 4 部分中讨论了过度训练,其中包含下图作为一种可视化解决方案不够泛化的神经网络操作的方法。

一个超级强大的感知器可能会以一种模糊地类似于人们有时“过度考虑”某种情况的方式来处理训练数据。

当我们过分关注细节并对一个实际上很简单的问题投入过多的智力努力时,我们就会错过“大局”,最终得到的解决方案将被证明是次优的。同样,具有过多计算能力和训练数据不足的感知器可能会选择过于具体的解决方案,而不是寻找能够更有效地对新输入样本进行分类的通用解决方案(如下图所示)。

那么我们什么时候真正需要多个隐藏层呢?我不能根据个人经验给你任何指导。我能做的最好的事情就是传授 Jeff Heaton 博士的专业知识(参见链接文本的第 158 页),他指出一个隐藏层允许神经网络逼近任何涉及“从一个有限空间到另一个有限空间的连续映射”的函数.”

通过两个隐藏层,网络能够“以任意精度表示任意决策边界”。

有多少隐藏节点?

寻找隐藏层的最佳维度需要反复试验。如上所述,节点过多是不可取的,但你必须有足够的节点来使网络能够捕捉输入-输出关系的复杂性。

反复试验是好的,但你需要一些合理的起点。在上面链接的同一本书(第 159 页)中,Heaton 博士提到了选择隐藏层维度的三个经验法则。我将根据我模糊的信号处理直觉提供建议。

  1. 如果网络只有一个输出节点,并且您认为所需的输入-输出关系相当简单,请从等于输入维度三分之二的隐藏层维度开始。
  2. 如果您有多个输出节点,或者您认为所需的输入-输出关系很复杂,请使隐藏层维度等于输入维度加上输出维度(但保持小于输入维度的两倍)。
  3. 如果您认为所需的输入-输出关系极其复杂,请将隐藏维度设置为小于输入维度的两倍。

结论

希望这篇文章能帮助你理解多层感知器隐藏层配置的配置和细化过程。

在下一篇文章中,我们将使用我的 Python 实现和一些示例问题来探索隐藏层维度的影响。


工业机器人

  1. 什么是切换压力机以及它是如何工作的?
  2. 齿轮齿条压力机如何工作?
  3. 什么是传递成型及其工作原理?
  4. 什么是传输及其工作原理?
  5. 将偏置节点纳入您的神经网络
  6. 如何提高隐藏层神经网络的精度
  7. 神经网络训练数据集:如何训练和验证 Python 神经网络
  8. 如何在 Python 中创建多层感知器神经网络
  9. 了解多层感知器的训练公式和反向传播
  10. 如何训练多层感知器神经网络
  11. 什么是工业离合器及其工作原理?
  12. 液压泵需要多少马力?