如何在我的神经网络中应用从梯度下降到权重的变化?

2024-04-19 22:46:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python中的神经网络类,它使用反向传播返回权重的变化与代价函数的变化之间的关系。然后我通过这个函数运行它

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

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


Tags: 函数self网络关系def神经网络change权重
1条回答
网友
1楼 · 发布于 2024-04-19 22:46:47

如果你有θ的梯度,你必须乘以学习率(alpha),如果你还没有,也要除以训练例子的数量。然后从原始θ中减去它。您对每个重量都这样做,并且对每个训练集迭代(步骤)都这样做。如果你很好地选择了学习权重和架构,你的最终假设应该给出代价函数的局部极小值(除非是凸的)

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

相关问题 更多 >