文章目录
学习目标:
1、m个样本的梯度下降(非向量化)
2、m个样本的梯度下降(向量化)
3、python中的broadcasting
学习内容:
0、步骤示意图
1、m个样本的梯度下降(非向量化)
J=0;dw1=0;dw2=0;db=0;#dw1、dw2没有上标i表示代表其为m个样本整体的dw1与dw2
for i = 1 to m
z(i) = wx(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);#假设w参数只有两个
dw2 += x2(i)dz(i);
db += dz(i);
J/= m;#取均值
dw1/= m;
dw2/= m;
db/= m;
w1=w1-alpha*dw1;#更新参数
w2=w2-alpha*dw2;
b=b-alpha*db;
2、m个样本的梯度下降(向量化)
import numpy
z=np.dot(w.T,X)+b;#向量化
A=sigmoid(Z);
dz=A-Y;
dw=(X*(dz.T))/m;
db=np.sum(dz)/m;
w=w-alpha*dw;#更新参数
b=b-alpha*db;