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

问题描述 投票:0回答:1

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

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

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

python neural-network
1个回答
0
投票

如果您有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))
© www.soinside.com 2019 - 2024. All rights reserved.