我正在阅读《制作自己的神经网络》一书,在作者描述反向传播的章节中,我发现自己很困惑。我想将作者的解释方式与一个示例相关联,在该示例中,他显示了一个2节点,3层网络,如下图所示:
如果我构造上述神经网络的矩阵表示形式以进行反向传播,它将看起来像这样:
其中W T hidden_output 是输入权重的矩阵转置,因此矩阵的详细表示为:
因此,如果我现在要计算隐藏的错误(e 1_hidden 和e 2_hidden ),我将得到以下信息:
e 1_hidden = W 11 * e 1 + W 12 * e 2
e 2_hidden = W 21 * e 1 + W 22 * e 2
但是,如果我应用示例中给出的值,其中e 1 = 1.5且e 2 = 0.5,则不会得到e 1_hidden = 0.7和e 2_hidden = 1.3
我的理解/计算哪里出问题了?有帮助吗?
答案 0 :(得分:1)
您所描述的错误反向传播仅基于乘以链接权重,而图片将错误按比例分配给链接权重。两种差异均在例如在this webpage上:
在图片中,您看到错误按与链接权重的比例分配,例如根据W 11 = 1.0和W 21 = 3.0的权重,将e 1 = 1.5分为0.6和0.9。 (请注意,由于只有W 11 ,而其他所有均由W 12 表示,因此权重的下标在图片中也是错误的。)>
然后将此拆分错误添加到隐藏层的最终错误中,例如:
e 隐藏1 = 0.6 + 0.1 = 0.7。