【问题标题】:Make Your Own Neural Network Back Propagation制作你自己的神经网络反向传播
【发布时间】:2020-04-03 20:08:18
【问题描述】:

我正在阅读 Make Your Own Neural Network 一书,在作者描述反向传播的章节中,我发现自己很困惑。我想将作者解释的方式与一个示例联系起来,其中他显示了一个 2 节点、3 层网络 sh,如下图所示:

如果我为反向传播构建上述神经网络的矩阵表示,它将如下所示:

其中 WThidden_​​output 是输入权重的 Matrix 转置,因此详细的 Matrix 表示为:

所以如果我现在想计算隐藏的错误(e1_hidden 和 e2_hidden),我有以下内容:

e1_hidden = W11 * e1 + W12 * e2

e2_hidden = W21 * e1 + W22 * e2

但如果我应用示例中给出的值,其中 e1 = 1.5 和 e2 = 0.5,我不会得到 e 1_hidden = 0.7 和 e2_hidden = 1.3

我的理解/计算哪里出了问题?有什么帮助吗?

【问题讨论】:

    标签: python neural-network


    【解决方案1】:

    您描述的误差反向传播只是基于乘以链接权重,而图片将误差拆分为与链接权重的比例。描述了这两种差异,例如在this webpage:

    在图片中,您会看到错误按与链接权重的比例进行拆分,例如e1 = 1.5根据W11 = 1.0和W21 = 3.0的权重分为0.6和0.9。 (进一步注意,图中权重的下标也是错误的,因为只有W11,其他的都用W12表示...)

    然后将这个拆分错误添加到隐藏层的最终错误中,例如:

    e隐藏 1 = 0.6 + 0.1 = 0.7.

    【讨论】:

      猜你喜欢
      • 2015-03-03
      • 2012-02-21
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 2013-04-26
      • 2016-09-19
      相关资源
      最近更新 更多