【问题标题】:Updating weights in general back-propagation在一般反向传播中更新权重
【发布时间】:2020-08-04 06:57:45
【问题描述】:

我正在从头开始构建一个 2 层的密集神经网络。我对更新输入层和第一个隐藏层之间的权重感到困惑。

z1 = w1 @ inp + b1         # inp is the input vector
z1_act = activation(z1)
z2 = w2 @ z1_act + b2
z2_act = activation(z2)

gradient2 = 0.5 * ((out - z2_act) ** 2) * activation_deriv(z2)   # out is the vector containing actual output
gradient1 = (w2.T @ gradient2) * activation_deriv(z1)

delta_w2 = learning_rate * gradient2 * z1_act
delta_w1 = learning_rate * gradient1

w2 = w2 + delta_w2
w1 = w1 + delta_w1

代码工作正常,形状正确。但我不确定这是否是计算 delta_w1 的正确方法。谁能帮帮我?

编辑:神经网络的结构是:

【问题讨论】:

    标签: python neural-network backpropagation


    【解决方案1】:

    几乎:您计算delta_w1 的方法原则上是正确的,但是您希望达到最小值,因此您在delta_w1delta_w2 的公式中缺少一个负号。使用当前的实现,您不会优化权重,而是走“错误的方向”。

    您可能还想查看以下链接:https://stats.stackexchange.com/questions/5363/backpropagation-algorithm

    【讨论】:

      猜你喜欢
      • 2020-08-24
      • 1970-01-01
      • 2016-04-14
      • 2015-06-11
      • 2017-12-10
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      • 2018-08-30
      相关资源
      最近更新 更多