对于M个样本,求总体的代价函数的偏导数也就等于单个损失函数的偏导数的平均值。
具体的实现是:
J=0
dW1=0
dW2=0
db=0
for i=1 to m
Z[i]=(transposed_W)*x[i]+b
a[i]=sigmoid(Z[i])
J += -(y[i]log(a[i])+(1-y[i])log(1-a[i]))
dz[i]=a[i]-y[i]
dW1 += x1[i]*dz[i]
dW2 += x2[i]*dz[i]
db += dz[i]
J /= m
dW1 /= m
dW2 /= m
db /= m
这样就得到了下降所用的梯度,然后有
这样就完成了一次梯度下降。