问题描述
我正在学习神经网络,我想手动编码反向传播以了解它的工作原理,但我在算法方面遇到了困难。我正在尝试解决 this 论文的第 30 个问题(以便我有一个示例来说明它是如何工作的)。
问题的简短版本是,如果有人可以告诉我如何执行此操作以找到 H2 的错误,我将不胜感激(答案应该是 A;-0.0660)。
问题的长版本是,我的想法是否正确(在 H2 使用反向传播找到错误):
-
I1、I2 和 I3 的误差(来自问题 29)分别为 0.1479、-0.0929 和 0.1054。
-
网络架构是:
- 权重为:
所以我想我必须做什么:
-
找出导致每个输出错误的权重总数(我取绝对值得到错误总和,对吗?):
E1 = 1.0 + 3.5 => 4.5
E2 = 0.5 + 1.2 => 1.7
E3 = 0.3 + 0.6 => 0.9
-
然后我计算出来自我感兴趣的节点 (y2) 的每个权重的比例:
E1 = 3.5/4.5 = 0.777
E2 = 1.2/1.7 = 0.71
E3 = 0.6/0.7 = 0.86
-
然后我计算出来自该重量比例的误差比例:
E1 => (0.14/100)*14 = 0.01078
E2 => (-0.09/100)*71 = -0.0639
E3 => (0.1054/100)*86 = 0.090644
如果有人能告诉我我哪里出错了(因为如上所述,我知道正确的答案应该是什么),我会很感激。另外,如上所述,如果有帮助的话,我在原始考试中添加了原始问题 30 的链接(它来自 17 年前,不是我正在做的考试,只是想了解它)。我知道我可以只使用 TensorFlow/Keras 来自动实现这一点,但我正在尝试真正了解它是如何工作的。