【问题标题】:Feed Forward Neural Network Back Propogation Algorithm Assumption前馈神经网络反向传播算法假设
【发布时间】:2017-08-19 07:41:20
【问题描述】:

在反向传播过程中,似乎假设在隐藏层中产生的任何错误只会影响更高的一层(例如,参见推导 here,特别是等式 16)。

也就是说,在计算dE/dy_j 时,它使用链式法则的推导状态,但是它只区分索引在I_j 中的节点(即仅在比y_j 高一层的节点上)。为什么在此计算中忽略更高层?我们也可以通过考虑x_{i+1} = \sum_i w_{i,i+1} f(\sum_{j} w_{j,i} y_j)(显然具有y_j 依赖性)来考虑i+1 层。

【问题讨论】:

  • Fwiw 我考虑在 MSE 上发布此内容,但我担心我会得到类似“是的,纸张没有正确使用链式规则,无法进一步帮助您”的答案有点……

标签: machine-learning neural-network


【解决方案1】:

更高层不会被忽略。在等式16中,dE/dy_i中的E是最终输出的误差,所以梯度已经包含了所有后续层的影响。这就是反向传播的全部意义所在。您从输出的错误开始,并计算相对于前一层的梯度。然后,您使用该梯度来计算下一个前一层的梯度,等等。

您可以按照您所描述的方式进行操作,但这会使公式变得更加复杂。反向传播公式的一个方便/有效的方面是,由于您只需要对后续层使用误差项,因此您总共有 3 层还是 4 层或 50 层都没有关系。您将相同的简单公式应用于每个隐藏层,在您通过网络向后工作时累积链式规则术语。

【讨论】:

  • ah,例如,如果我们有一个4层网络并将图层标记为0,1,2,3(输入,隐藏,隐藏,输出)然后计算dE/dy_1我们使用计算dE/dy_2 是我们之前计算的,它确实隐含地考虑了 dE/dy_3(因为它是如何计算的)。对吗?
  • 没错。您首先计算dE/dy_3,它提供了用于计算dE/dy_2 的数据。然后dE/dy_2 拥有用于计算dE/dy_1 等的数据。
  • 非常感谢您的澄清!
猜你喜欢
  • 2015-04-08
  • 2017-09-28
  • 2015-03-03
  • 2012-02-21
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多