【问题标题】:How to apply change from gradient descent to weights in my Neural Network?如何在我的神经网络中应用从梯度下降到权重的变化?
【发布时间】:2020-01-29 21:36:35
【问题描述】:

我在 python 中有一个神经网络类,它使用反向传播来返回与成本函数变化相关的权重变化。然后我通过这个函数运行它

def GradientDescent(self,DcOverDwL_jk,stepSize):
    self.NegGrad = -1*(DcOverDwL_jk)
    self.change = stepSize*self.NegGrad

这听起来可能是个愚蠢的问题,但我现在如何处理“更改”值?我是否将其添加到网络中的每个权重中? 提前致谢。

【问题讨论】:

  • 是的,你把它加到你的权重中。

标签: python neural-network


【解决方案1】:

如果你有 theta 的梯度,你必须将它乘以学习率 (alpha),如果你还没有,也将它除以训练示例的数量。然后从原始 theta 中减去它。您对每个权重执行此操作,并且针对每个训练集迭代(步骤)执行此操作。如果你很好地选择了你的学习权重和架构,你的最终假设应该给你成本函数的局部最小值(除非是凸的)。

for i in range(steps):
    #do forward prop
    #do back prop
    theta1 = theta1 - ((1/m) * (alpha * grad1))
    theta2 = theta2 - ((1/m) * (alpha * grad2))

【讨论】:

    猜你喜欢
    • 2020-10-17
    • 1970-01-01
    • 2014-10-10
    • 2015-07-11
    • 2019-05-24
    • 1970-01-01
    • 2011-08-24
    • 2017-02-19
    • 2021-03-12
    相关资源
    最近更新 更多