2024-04-19 22:46:47 发布
网友
我有一个python中的神经网络类,它使用反向传播返回权重的变化与代价函数的变化之间的关系。然后我通过这个函数运行它
def GradientDescent(self,DcOverDwL_jk,stepSize): self.NegGrad = -1*(DcOverDwL_jk) self.change = stepSize*self.NegGrad
这听起来可能是个愚蠢的问题,但我现在如何处理“更改”值?我是否将此添加到网络中的每个权重? 提前谢谢
如果你有θ的梯度,你必须乘以学习率(alpha),如果你还没有,也要除以训练例子的数量。然后从原始θ中减去它。您对每个重量都这样做,并且对每个训练集迭代(步骤)都这样做。如果你很好地选择了学习权重和架构,你的最终假设应该给出代价函数的局部极小值(除非是凸的)
for i in range(steps): #do forward prop #do back prop theta1 = theta1 - ((1/m) * (alpha * grad1)) theta2 = theta2 - ((1/m) * (alpha * grad2))
如果你有θ的梯度,你必须乘以学习率(alpha),如果你还没有,也要除以训练例子的数量。然后从原始θ中减去它。您对每个重量都这样做,并且对每个训练集迭代(步骤)都这样做。如果你很好地选择了学习权重和架构,你的最终假设应该给出代价函数的局部极小值(除非是凸的)
相关问题 更多 >
编程相关推荐