1. 模型引入
线性模型可以进行回归学习(参见【机器学习模型1】- 线性回归),但如何用于分类任务?需要找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。
对于二分类任务,输出标记 y 取值 {0,1},而线性回归预测值 z=wTx+b 属于实数集 R,所以需要一个变换使实值 z 映射到 0/1 值。
引入 Sigmoid 函数:y=1+e−z1,可以将 z 值转为一个接近0或1的 y 值,而且单调可微。图像如下:

2. 模型描述
根据广义线性模型 y=g−1(θTx)定义,将Sigmoid函数作为g−1()代入:
hθ(x)=1+e−θTx1
对数几率函数:逻辑回归也称为对数几率函数。
-
hθ(x)反映了作为正例的可能性 ,则 1−hθ(x) 反映了作为负例的可能性
- 所以1−hθ(x)hθ(x)反映了作为正例的相对可能性,1−hθ(x)hθ(x)>1,则为正例,称为 “几率”。
-
ln1−hθ(x)hθ(x) 为 “对数几率”
所以,逻辑回归实际上是用线性回归模型的预测来逼近真实的对数几率。
3. 模型求解策略(代价函数)
1) 代价函数公式:
J(θ)=−m1i=1∑m[y(i)lnhθ(x(i))+(1−y(i))ln(1−hθ(x(i)))]
2)推导过程:
极大似然法 :根据给定数据集,最大化对数似然函数:
L(θ)=i=1∑mlnP(y(i)∣x;θ)由于 y 只能取 0 / 1,所以
P(y=0∣x;θ)=hθ(x)=1+e−θTx1P(y=1∣x;θ)=1−hθ(x)=1+e−θTxe−θTx=eθTx+11所以:
P(y∣x;θ)=(hθ(x))y(1−hθ(x))(1−y)可以求得:
L(θ)=i=1∑m[y(i)lnhθ(x(i))+(1−y(i))ln(1−hθ(x(i)))]为了使用梯度下降法求解,将L(θ)取负,定义损失函数:
J(θ)=−m1L(θ)=−m1i=1∑m[y(i)lnhθ(x(i))+(1−y(i))ln(1−hθ(x(i)))]
为什么除以m?在使用样本不同数量的多个批次来更新 θ 时,除以样本数量 m 来抵消不同批次样本数量不同带来的影响。
4. 模型求解算法 - 梯度下降
1)参数更新方程:
θj=θj−αm1i=1∑m[hθ(x(i))−y(i)]xj(i)
2)推导过程:
- 设定:初始值 θ、学习步长 α
- 不断更新 θ :
θj=θj−α∂θj∂J(θ)其中,梯度计算如下:

(Ref:参考吴恩达Cousera机器学习课程 6.4节)
- 直到 梯度Δθ=∂θj∂J(θ)<阈值ε,得到最优θ
3)向量化表示
θ=θ−mαXT(1+e−Xθ1−y)
X,y表示如下:
X=⎣⎢⎢⎢⎡X1(1)X1(2)...X1(m)X2(1)X2(2)...X2(m)............Xn(1)Xn(2)...Xn(m)⎦⎥⎥⎥⎤,θ=⎣⎢⎢⎡θ1θ2...θn⎦⎥⎥⎤,y=⎣⎢⎢⎡y1y2...ym⎦⎥⎥⎤,