第二周
逻辑回归是一个用于二分类(binary classification)的算法。
sigmoid函数
在梯度下降法中,会得到局部最优解,不能得到全局最优解
在逻辑回归中,使用的损失函数:
损失函数是在单个训练样本中定义的,它衡量的是算法在单个训练样本中表现如何,为了衡量算法在全部训练样本上的表现如何。
我们需要定义一个算法的代价函数,算法的代价函数是对m个样本的损失函数求和然后除以m:
损失函数只适用于像这样的单个训练样本,而代价函数是参数的总代价,所以在训练逻辑回归模型时候,我们需要找到合适的w和b,来让代价函数J 的总代价降到最低。
所以这里有很多细节,但让我们把这些装进一个具体的算法。同时你需要一起应用的就是逻辑回归和梯度下降。
我们初始化
代码流程:
J=0;dw1=0;dw2=0;db=0;
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);
dw2 += x2(i)dz(i);
db += dz(i);
J/= m;
dw1/= m;
dw2/= m;
db/= m;
w=w-alpha*dw
b=b-alpha*db
使用向量化替代显示for循环
此处b是一个实数,自动扩展成1*m的行向量(broadcasting广播)
梯度下降的一次迭代: