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

了解多层感知器的训练公式和反向传播

本文介绍了我们在执行权重更新计算时使用的方程,我们还将讨论反向传播的概念。

欢迎来到 AAC 的机器学习系列。

在这里了解到目前为止的系列:

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

我们已经到了需要仔细考虑神经网络理论中的一个基本主题的地步:计算过程允许我们微调多层感知器 (MLP) 的权重,以便它可以准确地对输入样本进行分类。这会将我们引向“反向传播”的概念,这是神经网络设计的一个重要方面。

更新权重

围绕 MLP 训练的信息很复杂。更糟糕的是,在线资源使用不同的术语和符号,甚至似乎得出不同的结果。但是,我不确定结果是否真的不同,或者只是以不同的方式呈现相同的信息。

本文中包含的方程基于 Dustin Stansbury 博士在此博客文章中提供的推导和解释。他的处理方法是我发现的最好的,如果您想深入研究梯度下降和反向传播的数学和概念细节,这是一个很好的起点。

下图表示我们将在软件中实现的架构,下面的等式对应于该架构,下一篇文章将对此进行更深入的讨论。


术语

如果我们不保持清晰的术语,这个话题很快就会变得难以管理。我将使用以下术语:

下图将其中一些术语置于网络的可视化配置中。我知道——它看起来像是一团糟。我道歉。这是一个信息密集的图表,虽然乍一看可能有点冒犯,但如果你仔细研究它,我认为你会发现它很有帮助。


权重更新方程是通过对要修改的权重取误差函数的偏导数推导出来的(我们使用的是平方和误差,请参阅本系列的第 8 部分,它涉及激活函数)。如果你想看数学,请参考斯坦斯伯里博士的帖子;在本文中,我们将直接跳到结果。对于隐藏到输出的权重,我们有以下内容:

\[S_{ERROR} =FE \times {f_A}'(S_{preA,O})\]

\[gradient_{HtoO}=S_{ERROR}\times S_{postA,H}\]

\[weight_{HtoO} =weight_{HtoO}- (LR \times gradient_{HtoO})\]

我们计算错误信号 l 乘以最终误差 通过应用导数时产生的值 激活函数 预激活信号 传递到输出节点(注意素数符号,表示一阶导数,在 \({f_A}'(S_{preA,O})\))。 渐变 然后通过乘以误差信号来计算 通过激活后信号 从隐藏层。最后,我们通过减去这个梯度来更新权重 从当前权重值,我们可以乘以梯度 通过学习率 如果我们想改变步长。

对于输入到隐藏的权重,我们有:

\[gradient_{ItoH} =FE \times {f_A}'(S_{preA,O})\times weight_{HtoO} \times {f_A}'(S_{preA ,H}) \times input\]

\[\Rightarrow gradient_{ItoH} =S_{ERROR} \times weight_{HtoO} \times {f_A}'(S_{preA,H})\times input\]

\[weight_{ItoH} =weight_{ItoH} - (LR \times gradient_{ItoH})\]

使用输入到隐藏的权重,误差必须通过附加层传播回来,我们通过乘以误差信号 通过隐藏到输出权重 连接到感兴趣的隐藏节点。因此,如果我们更新输入到隐藏的权重 导致第一个隐藏节点,我们乘以误差信号 通过将第一个隐藏节点连接到输出节点的权重。然后我们通过执行类似于隐藏到输出权重更新的乘法来完成计算:我们应用导数 激活函数 到隐藏节点的预激活信号 ,“输入”值可以被认为是激活后信号 来自输入节点。

反向传播

上面的解释已经涉及到反向传播的概念。我只是想简要地强调一下这个概念,并确保您对这个术语有明确的熟悉,这个术语经常出现在神经网络的讨论中。

反向传播使我们能够克服第 8 部分中讨论的隐藏节点困境。 我们需要根据网络生成的输出和训练数据提供的目标输出值之间的差异更新输入到隐藏的权重,但这些权重会影响间接生成的输出。

反向传播指的是我们将误差信号发送回一个或多个隐藏层并使用来自隐藏节点的权重和隐藏节点激活函数的导数来缩放该误差信号的技术。整个过程用作根据权重对输出误差的贡献来更新权重的一种方式,即使该贡献被输入到隐藏权重与生成的输出值之间的间接关系所掩盖。

结论

我们已经涵盖了很多重要的材料。我认为我们在本文中有一些关于神经网络训练的非常有价值的信息,我希望你同意。该系列将开始变得更加精彩,所以请回来查看新的分期付款。


工业机器人

  1. 7 了解惯性和惯性不匹配的资源
  2. 用于服务提供商和物联网应用的 1G 双向收发器
  3. CEVA:用于深度神经网络工作负载的第二代 AI 处理器
  4. 解锁物联网和移动虚拟网络运营商的智能核心网络切片
  5. 5G 的前五个问题和挑战
  6. 如何喂养和维护您的无线传感器网络
  7. 了解精益和六西格码制造指南
  8. BECKER 为你我提供的真空泵培训
  9. Senet 和 SimplyCity 联手进行 LoRaWAN 扩展和物联网
  10. 了解混合制造的优势和挑战
  11. 了解用于制造冲头和冲模的抗冲击工具钢
  12. 如何减少机器人焊接的培训时间