二分分类
二分分类问题指数据样本的标签只有两种的分类问题。比如给出一张图片,判断图片的动物是否是猫。如果这张图片大小为64*64,颜色通道为RGB,那么可以定义这张图片的特征向量为所有像素的组合,特征向量的长度为3*64*64。
定义二分分类问题使用的数学符号。对于某个样本(x,y),x∈Rnx是样本的特征向量,y∈{0,1}是样本的标签。对于有m个样本的数据集{(x(1),y(1)),(x(2),y(2)),⋯,(x(m),y(m))},第i个样本为(x(i),y(i))。使用矩阵X∈Rnx×m来保存数据集的特征向量
X=[x(1),x(2),⋯,x(m)]
使用矩阵
Y∈R1×m来保存数据集的标签
X=[y(1),y(2),⋯,y(m)]
logistic 回归
logistic 回归是解决二分分类问题的一种解决方法,通过样本的特征向量计算出一个分数,通过分类来预测这个样本的标签,准确来说,这个分数表示样本的标签为1的概率。
定义参数w∈Rnx,b∈R。预测的结果y^可以这样计算:
y^=wTx+b
这样计算得到的
y^在实数范围内,而概率的范围应该是
[0,1],因此在此公式上加上sigmoid函数,
sigmoid(z)∈(0,1)。
zy^=wTx+b=sigmoid(z)=11+e−z
sigmoid函数曲线如下图
- 如果z→−∞,y^→0。
- 如果z=0,y^=0.5。
- 如果z→+∞,y^→1。
logistic 回归损失函数
对于数据集{(x(1),y(1)),(x(2),y(2)),⋯,(x(m),y(m))},我们希望对于第i个样本,y^(i)≈y(i)。
定义损失函数(loss/error function)来表示预测结果与实际结果的误差
l(y^,y)=−(ylog(y^)+(1−y)log(1−y^))
这个损失函数可以保证,当
y^与
y接近时,
l(y^,y)≈0,当
y^远离
y时,
l(y^,y)→+∞。
定义成本函数(cost function)J(w,b)表示数据集的预测结果与实际结果的误差
J(w,b)=1m∑i=1ml(y^(i),y(i))=−1m∑i=1m(y(i)log(y^(i))+(1−y(i))log(1−y^(i)))
梯度下降法
下图是成本函数J(w,b)的图像
成本函数J(w,b)是凸函数,只有一个极小值,即全局最小值。机器学习的过程就是找到J(w,b)函数最小值的w和b。通过不断进行如下操作,可以使得J(w,b)函数值不断减少,这个过程的表现效果如同上图中的红点不断往谷底移动。
wb:=w−α∂J(w,b)∂w:=b−α∂J(w,b)∂b
其中,
α是学习率,控制
J(w,b)的下降速度。
∂J(w,b)∂w是w的梯度,用
dw表示。
∂J(w,b)∂b是b的梯度,用
db表示。
计算图
根据导数的链式法则,导数可以反向传播,如图:
logistic 回归的梯度下降法
对于一个样本的损失函数,logistic回归的梯度如下:
对于m个样本,logistic回归的梯度只需累加后除以m。求logistic回归的梯度的算法如下:
向量化
使用向量化简化求logistic回归梯度的过程(减少一个循环)
向量化实现求J(w,b)
XYZAdZdwdb=[x(1),x(2),⋯,x(m)]=[y(1),y(2),⋯,y(m)]=wTX+b=sigmoid(Z)=A−Y=1mXdZT=1m∑i=1mdZ(i)
向量化的logistic回归的梯度下降法
logistic 损失函数解释
当y=1时,y^表示P(y=1|x)。当y=0时,1−y^表示P(y=0|x)。合并起来
P(y|x)=y^y(1−y^)1−y
我们期望
P(y|x)尽可能大,两边取对数为
logP(y|x)=ylogy^+(1−y)log(1−y^)
因为我们求损失函数的最小值,因此两边加上负号。
如果训练集每个的标签概率是独立分布的,那么
P(label in training set)=∏i=1mP(y(i)|x(i))
根据极大似然估计法,要使概率最大,则log之后要最大化
logP(label in training set)=∑i=1mlogP(y(i)|x(i))
最后加上负号改成求最小值,这便是logistic成本函数的由来。