【问题标题】:Neural Nets: Calculating Error In Hidden Layers神经网络:计算隐藏层中的误差
【发布时间】:2017-09-19 03:04:52
【问题描述】:

我是神经网络的新手,正在尝试构建一个具有超过 1 个隐藏层的超简单神经网络。

在神经网络的训练阶段调整权重时,权重调整的程度部分取决于该神经元对下一层神经元贡献的“误差多少”。因此,我们需要知道下一层的误差。

仅使用 1 个隐藏层就可以轻松计算这一点,因为我们的训练数据已经为我们提供了预期的输出,因此我们只需要使用输出层(简单地说,目标输出)。当有多个隐藏层时,计算误差变得不重要。也就是说,如果我们有 10 个隐藏层,我们在第 5 层,我们怎么知道第 6 层的误差是多少?

谢谢

【问题讨论】:

  • 你指的是关于损失函数的第 6 层权重的误差导数吗?
  • 那么应该很容易通过反向传播推导出来
  • 我相信是这样,我对此还是很陌生。计算层中神经元的误差约为 (target - out)^2。我想知道如何计算第 6 层中某些神经元的目标。
  • 我正在写一个完整的答案来解决所有的过程
  • 我试图在这里解决一个类似的问题:stackoverflow.com/questions/65430571/…。我遇到了这个答案,但我不确定如何将它应用于我的问题。如果有人有时间看这个问题,我会很感激。谢谢。

标签: machine-learning neural-network computer-vision


【解决方案1】:

假设我们的 NN 输出值 和实际地面实况 通过损失函数相关,例如, 均方误差(回归情况):

地点:

和 是层 的权重, 是应用于同一层所有神经元响应的激活函数。

为了从输出层传播模型权重的误差,我们可以简单地在误差损失函数和取决于模型参数(权重或偏差)的因素之间应用链式法则。例如,让我们找到与损失函数和输出层权重相关的误差导数:,如下所示:

正如您所推断的,我们可以应用相同的过程来计算误差导数,通过每个激活 直到网络的较低层。例如,让我们将错误反向传播到层:

这个过程也可以应用于偏置,直到输入层之前的层。

我希望这个反向传播总结能让您对神经网络的实际实现(在本例中为前馈 NN)提供一些实用的见解。如果你想了解更多关于反向传播的详细信息,我邀请你咨询斯坦福大学的 UFLDLtutorial 关于反向传播:

另外,如果你想了解更多关于更适合计算机视觉应用的卷积神经网络,我推荐 CS231n 课程笔记(其中也有关于反向传播的课程),它们可以在here 获得。

【讨论】:

  • 这真的回答了每一层的错误问题吗?您似乎只是告诉我们如何使用链式法则获得 theta 的渐变。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-01
  • 2017-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-21
相关资源
最近更新 更多