给定输出节点和权重的错误,如何使用反向传播更新隐藏节点的错误
How to update the error on a hidden node using back-propogation, given the error on the output nodes and weights
我正在学习神经网络,我想手动编写反向传播代码以了解它的工作原理,但我在算法上遇到了困难。我正在尝试解决 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中添加了一个link,如果它有帮助的话(这是17年前的,不是我正在做的考试,只是想理解它) .我知道我可以使用 TensorFlow/Keras 来自动实现它,但我正试图真正了解它是如何工作的。
在你提到的问题中,给出了误差函数:
您需要计算 j = 2 的值。您有所有 delta_k 和 w_ij 的值。
还给出了激活函数的导数 f'(Hj):
最后给出隐藏节点2的激活值,即f(H2)。您需要做的就是将您拥有的所有值放入方程式:
f'(H2) = 0.74 * (1 - 0.74) = 0.1924
delta_2 = 0.1924 * ((0.1479 * -3.5) + (-0.0929 * -1.2) + (0.1054 * 0.6)) = -0.06598
我正在学习神经网络,我想手动编写反向传播代码以了解它的工作原理,但我在算法上遇到了困难。我正在尝试解决 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中添加了一个link,如果它有帮助的话(这是17年前的,不是我正在做的考试,只是想理解它) .我知道我可以使用 TensorFlow/Keras 来自动实现它,但我正试图真正了解它是如何工作的。
在你提到的问题中,给出了误差函数:
您需要计算 j = 2 的值。您有所有 delta_k 和 w_ij 的值。
还给出了激活函数的导数 f'(Hj):
最后给出隐藏节点2的激活值,即f(H2)。您需要做的就是将您拥有的所有值放入方程式:
f'(H2) = 0.74 * (1 - 0.74) = 0.1924
delta_2 = 0.1924 * ((0.1479 * -3.5) + (-0.0929 * -1.2) + (0.1054 * 0.6)) = -0.06598