机器学习算法系列(二):逻辑回归

本文深入探讨了逻辑回归的损失函数推导过程,从概率分布角度解释了逻辑回归为何选择特定的损失函数,并对比了其与最小二乘法的区别。同时,文章还介绍了逻辑回归损失函数的数学性质,如凸性,以及如何通过梯度下降法求解最优参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从概率分布的角度推导逻辑回归的损失函数

逻辑回归是一种分类算法。

  • y=wTx+by=\mathbf{w^{T} x}+by=wTx+b
  • 采用非线性映射:z=11+e−yz=\frac{1}{1+e^{-y}}z=1+ey1
  • 逻辑回归一定选取sigmoid函数,其实就是把y的值从(−∞,+∞)(-\infty,+\infty)(,+)压缩到(0,1)(0,1)(0,1)

其实,逻辑回归本质上对应于(0-1)分布,说明如下:

h(x)=g(θTx)=11+e−θTxh(\mathbf{x})=g(\mathbf{\theta^Tx})=\frac{1}{1+e^{-\mathbf{\theta^Tx}}}h(x)=g(θTx)=1+eθTx1

则:h(x)h(\mathbf{x})h(x)代表了结果为1的概率。即y取1的概率为h(x),y取0的概率为1-h(x)
P(y=1∣x,θ)=h(x)P(y=0∣x,θ)=1−h(x) P(y=1|\mathbf{x,\theta})=h(\mathbf{x})\\ P(y=0|\mathbf{x,\theta})=1-h(\mathbf{x}) P(y=1x,θ)=h(x)P(y=0x,θ)=1h(x)
于是:
P(y∣x,θ)=h(x)y(1−h(x))1−y P(y|\mathbf{x,\theta})=h(\mathbf{x})^y(1-h(\mathbf{x}))^{1-y} P(yx,θ)=h(x)y(1h(x))1y
似然函数:
L(θ)=∏i=1nh(xi)yi(1−h(xi))1−yi L(\mathbf{\theta})=\prod_{i=1}^{n}h(\mathbf{x}^i)^{y^i}(1-h(\mathbf{x}^i))^{1-y^i} L(θ)=i=1nh(xi)yi(1h(xi))1yi
对数似然函数:
lnL(θ)=∑i=1n[yilnh(xi)+(1−yi)ln(1−h(xi))] lnL(\mathbf{\theta})=\sum_{i=1}^{n}[y^ilnh(\mathbf{x}^i)+(1-y^i)ln(1-h(\mathbf{x}^i))] lnL(θ)=i=1n[yilnh(xi)+(1yi)ln(1h(xi))]
其实,该函数是一个凹函数,也就是说−lnL(θ)-lnL(\mathbf{\theta})lnL(θ)是一个凸函数,证明如下:

根据“凸函数的非负线性组合依旧是凸函数”的原则,我们只需要证明−ln(h(x))和−ln(1−h(x))-ln(h(\mathbf{x}))和-ln(1-h(\mathbf{x}))ln(h(x))ln(1h(x))是凸函数即可。
−ln(h(x))=ln(1+e−θTx)∇θln(1+e−θTx)=e−θTx1+e−θTx(−x)=(h(x)−1)x∇θ2ln(1+e−θTx)=h(x)(1−h(x))xxT \begin{aligned}-ln(h(\mathbf{x}))&=ln(1+e^{-\mathbf{\theta^Tx}})\\ \nabla_{\theta}ln(1+e^{-\mathbf{\theta^Tx}})&=\frac{e^{-\mathbf{\theta^Tx}}}{1+e^{-\mathbf{\theta^Tx}}}(-\mathbf{x})=(h(\mathbf{x})-1)\mathbf{x}\\ \nabla_{\theta}^2ln(1+e^{-\mathbf{\theta^Tx}})&=h(\mathbf{x})(1-h(\mathbf{x}))\mathbf{x}\mathbf{x^T} \end{aligned} ln(h(x))θln(1+eθTx)θ2ln(1+eθTx)=ln(1+eθTx)=1+eθTxeθTx(x)=(h(x)1)x=h(x)(1h(x))xxT
注意:在求Hessian矩阵时,需要对x\mathbf{x}x做转置。

对于任意的向量z\mathbf{z}z
zTh(x)(1−h(x))xxTz=h(x)(1−h(x))⎵常数(xTz)2⎵常数≥0 \mathbf{z^T}h(\mathbf{x})(1-h(\mathbf{x}))\mathbf{x}\mathbf{x^T}\mathbf{z}=\underbrace{h(\mathbf{x})(1-h(\mathbf{x}))}_{常数}\underbrace{(\mathbf{x^T}\mathbf{z})^2}_{常数} \ge0 zTh(x)(1h(x))xxTz=h(x)(1h(x))(xTz)20
所以hessian矩阵是半正定矩阵,所以该函数是凸函数。

同理,可以证明−ln(1−h(x))-ln(1-h(\mathbf{x}))ln(1h(x))是凸函数。

这样,我们接下来就可以用梯度下降法来求解最优的θ\thetaθ值了。

所以我们也可以得出这样的结论:逻辑回归的损失函数就是对数似然函数的负值。

直观理解逻辑回归的损失函数

cost⁡(hθ(x),y)={−log⁡(hθ(x)) if y=1−log⁡(1−hθ(x)) if y=0 \operatorname{cost}\left(h_{\theta}(x), y\right)=\left\{\begin{aligned}-\log \left(h_{\theta}(x)\right) & \text { if } y=1 \\-\log \left(1-h_{\theta}(x)\right) & \text { if } y=0 \end{aligned}\right. cost(hθ(x),y)={log(hθ(x))log(1hθ(x)) if y=1 if y=0

分析上面的损失函数:

  • 当真实值y=1y=1y=1时,预测值h(x)h(x)h(x)越接近1,损失越接近0;预测值越接近0,损失值接近正无穷。

  • 当真实值y=0y=0y=0时,预测值h(x)h(x)h(x)越接近0,损失越接近0;预测值越接近1,损失值接近正无穷。

    因此,符合要求。

从图中也可以看出,两个函数均是凸函数,因此凸函数的线性组合依旧是凸函数,可以得知损失函数是凸函数,可以直接采用梯度下降法等优化算法求解。整理后,损失函数如下:
J=−∑i=1n[yilnh(xi)+(1−yi)ln(1−h(xi))] J=-\sum_{i=1}^{n}[y^ilnh(\mathbf{x}^i)+(1-y^i)ln(1-h(\mathbf{x}^i))] J=i=1n[yilnh(xi)+(1yi)ln(1h(xi))]

向量形式为:
J=−1m[lnh(x)Ty+ln(1−h(x))T(1−y)] J=-\frac{1}{m}[lnh(\mathbf{x})^T\mathbf{y}+ln(1-h(\mathbf{x}))^T\mathbf{(1-y)}] J=m1[lnh(x)Ty+ln(1h(x))T(1y)]

对损失函数求梯度可以得到:
∂J(θ)∂θj=1m∑i=1m(hθ(x(i))−y(i))xj(i) \frac{\partial J(\theta)}{\partial\theta_{j}} = \frac{1}{m}\sum_{i=1}^{m} ( h_\theta (x^{(i)})-y^{(i)})x^{(i)}_{j} θjJ(θ)=m1i=1m(hθ(x(i))y(i))xj(i)
向量形式为:(向量形式不好直接推导,可以先推导上面的结果,然后转为向量形式)向量化的结果在变成时特别方便。

∂J(θ)∂θ=1mXT(g(Xθ)−y) \frac{\partial J(\theta)}{\partial\theta} = \frac{1}{m} X^T(g(X\theta)-y) θJ(θ)=m1XT(g(Xθ)y)
为什么逻辑回归的损失函数不采用最小二乘呢?

  • 原因1:逻辑回归本质上是从(0-1)分布而来,而线性回归本质上是从高斯分布而来,二者就不应该混用 。
  • 原因2:假设使用最下二乘,那么损失函数为∑i=1n[yi−g(θTxi)]2\sum_{i=1}^{n}[y^i-g(\mathbf{\theta ^Tx}^i)]^2i=1n[yig(θTxi)]2,但是yiy^iyi的取值只有0和1,而g函数的取值为[0,1][0,1][0,1],两者都不对应,误差肯定很大,这个函数也不是凸函数,有许多局部极小值。

从二分类过渡到多分类

有两种方法,即one vs one 和 one vs rest。

  • one vs one。考虑N个类别,c1,c2,c3,c4…cn。这种方法将其中的任意两个类别进行配对,从而产生n(n-1)/2个分类任务。比如,我们为区分c1和c2构建一个分类器,该分类器把c1视为正类,把c2视为负类。在测试阶段,新样本将同时提交给所有分类器,于是,我们就可以得到n(n-1)/2个分类结果,最终结果可以通过投票产生。
  • one vs rest。每次将一个类的样例作为正例,所有其它类的样例作为负例。训练N个分类结果。在测试时,计算每个分类器预测为正例的概率,取最大的那一个作为最终结果。这种方法要求算法必须能够输出分类的概率,比如逻辑回归。当算法仅仅给出一个决策性的结果,不能给出分类概率时,这种方法便不适用,比如(svm)
    *

参考自《机器学习(周志华)》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值