机器学习随记(10)——逻辑回归全方位推导

下面将详细讲解推导逻辑回归sigmod激活函数逻辑回归损失函数逻辑回归梯度下降,只作为自己学习笔记。


一句话总结逻辑回归:

逻辑回归假设数据服从伯努利分布,通过极大似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。

逻辑回归全方位推导

1 问题引出

由问题引出sigmod激活函数存在意义:线性回归模型预测值为连续的实数,而对于预测二分类任务的样本标签为0和1时,线性回归模型似乎不能很好的联系起来,因此,需要找到一种“联系函数”将两者联系起来。

一个最直观的办法就是设定一个阈值,比如0,如果我们预测的数值 y > 0 ,那么属于标签A,反之属于标签B,采用这种方法的模型又叫做感知机(Perceptron)。

另一种方法,我们不去直接预测标签,而是去预测标签为A概率,我们知道概率是一个[0,1]区间的连续数值,那我们的输出的数值就是标签为A的概率。一般的如果标签为A的概率大于0.5,我们就认为它是A类,否则就是B类。这就是我们的这次的主角逻辑回归模型 (Logistics Regression)。


2 为什么是sigmod函数?推导演变

逻辑回归是一个非线性模型,但是是其背后是以线性回归为理论支撑的。

线性模型的表达形式可由下式简化为y=w^{T}X

y的输出范围没有任何限制,即 (−∞,+∞)。而作为一个分类器,我们需要输出的是位于 0 和 1 之间的合法概率值。

将“概率”转换为“分类”的工具是“阶梯函数”

即转为发生y=1和发生y=0的概率为

 但是,阶梯函数是不连续的,不可导。因此,使用对数几率函数来在一定程度上近似阶梯函数,将线性回归模型的预测值转化为分类所对应的概率。

 \sigma (z)=\frac{1}{1+e^{-z}}

从另一个角度解释为什么选择的是对数几率函数,我们知道逻辑回归假设数据服从伯努利分布,

伯努利分布的标准链接函数是逻辑函数(logit function),也称为对数几率函数(log-odds function)。逻辑函数将概率转换为对数几率,它的公式为:

\operatorname{logit}(p) = \ln \frac{p}{1-p}

其中,p为正样本的期望(y=1),1-p为负样本(y=0),所谓的“几率”就是二者的比例\frac{p}{1-p},反映了样本x为正样本的相对可能性。

\operatorname{logit}(p) = \ln \frac{p}{1-p}=w^{T}X

化简得:

所以对数几率其实就是sigmod函数,将线性模型转化为分类,逻辑回归也被称为“对数几率回归”。


sigmod函数的优势

如上推导得出sigmod函数后,我们来探讨一下sigmod函数好在哪?

sigmod函数表示:

g(z)=\frac{1}{1+e^{-z}}

z=w^{T}X

代入就有

g(w^{T}X)=\frac{1}{1+e^{-w^{T}X}}

优势1:sigmod函数求导的一个特性就是g^{​{}'}(z)=g(z)(1-g(z)),如下简单推导,σ就是g

 这个特性可以有利于梯度下降方法计算。

优势2:易于求导和优化:sigmoid 函数具有良好的可微性和可导性,可以使用梯度下降等优化算法对逻辑回归模型的参数进行优化。

优势3:易于解释:sigmoid 函数的输出值在 [0,1]之间,可以被解释为概率值,表示样本属于某个类别的概率。因此,逻辑回归模型的预测结果可以直观地解释为概率值。

优势4:符合二分类问题的特点。


3 逻辑回归损失函数的推导

方法一:

 首先回顾一下线性回归。在线性回归中,做法如下:

由于已知 w^{T}X是估计值,于是用估计值与真值的差来度量模型的好坏。使用MSE(差值的平方和再平均)作为损失函数。 然后就可以通过导数求极值的方法,找到令损失函数最小的w了。

那么在逻辑回归中,解决思路也大致类似。

逻辑回归和线性回归最大的区别就是:逻辑回归解决的是分类问题,得到的y要么是1,要么是0。而我们估计出来的p是概率,通过概率决定估计出来的p到底是1还是0。因此,也可以将损失函数分成两类:

  • 如果给定样本的真实类别y=1,则估计出来的概率p越小,损失函数越大(估计错误)
  • 如果给定样本的真实类别y=0,则估计出来的概率p越大,损失函数越大(估计错误)

那么将用什么样的函数表示这两种情况呢,可以使用如下函数:

 loss=\left\{\begin{matrix}-log(p) & ,y=1\\ -log(1-p) & ,y=0 \end{matrix}\right.

 其中,p=\frac{1}{1+e^{-z}},就是sigmod函数。

 图形解释:

===》

 ===》

 x的取值为[0,1],所以loss图形表示为:

分析:

  • 当y=1时,损失函数为−log(p)。特点是:p越趋于0,损失(loss)越大;越趋于1,损失(loss)越小
  • 当y=0时,损失函数为−log(1-p)。特点是:p越趋于1,损失(loss)越大;越趋于0,损失(loss)越小

将loss式子合并成一个就可以等价于:

loss(p,y)=-ylog(p)-(1-y)log(1-p)

以上为单个样本的误差值,那么求整个集合内的损失可以去平均值(即成本函数代价函数):

J(w)=\frac{1}{m}\sum_{i=1}^{m}-y^{(i)}log(p^{(i)})-(1-y^{(i)})log(1-p^{(i)})

如果成本函数 + 正则化项那就是逻辑回归中的优化目标函数了。


以上就完成了逻辑回归的损失函数和成本函数的推导,其实还有一种是利用最大似然估计更深层的推导方式,可以更能理解为什么要使用这个loss公式。下面是摘取他人文章,仅作为拓展:方法二。


方法二

 出处:逻辑回归 logistics regression 公式推导 - 知乎

通过以上推导,得到F(w)=ln(P)的公式,其实就是损失函数——交叉熵损失(cross-entropy loss)   (有些推导里是log(P),都是取对数ln通log?)

我们希望极大似然越大越好,就是说给定样本N,希望-\frac{1}{N}F(w)越小越好,得到逻辑回归的成本函数如下:(方法二样本数是N,方法一样本数m,其实一样的N=m,只是我在书写没做统一)

-\frac{1}{m}F(w)=J(w)=\frac{1}{m}\sum_{i=1}^{m}-y^{(i)}log(p^{(i)})-(1-y^{(i)})log(1-p^{(i)})


 以上两种方法推导得逻辑回归的损失函数,逻辑回归的目标是找到表示一组权重w,使得成本函数J(w)达到最小值。这个损失函数是没有标准方程解的(比如损失函数整体乘以2也不会影响你最好找到的w,是一样的),而且它是凸优化问题(不会有局部最优的情况)因此在实际的优化中我们往往直接使用梯度下降法来不断逼近最优解。


4 逻辑回归梯度下降

由以上推导,已知代价函数J(w):(以下p等同于\sigma (z)

J(w)=\frac{1}{m}\sum_{m}^{i=1}-y^{(i)}log(p^{(i)})-(1-y^{(i)})log(1-p^{(i)})

J(w)对w进行求导:

\frac{\partial }{\partial w{_{j}}}J(w)=\frac{\partial }{\partial w{_{j}}} \left ( \frac{1}{m}\sum_{i=1}^{m}-y^{(i)}log(p^{(i)})-(1-y^{(i)})log(1-p^{(i)}) \right )

之前推导过已知p(z)=\frac{1}{1+e^{-z}}=\frac{1}{1+e^{-w^{T}X}},之前是对z进行求导得p^{​{}'}(z)=p(1-p),现在是对w进行求导,故为p^{​{}'}(z)=p(1-p)X,推导如下:

 也可以得到:(1-p)^{​{}'}=-p(1-p)X

所以可以将此导入以下求导:

\frac{\partial }{\partial w{_{j}}}J(w)=\frac{\partial }{\partial w{_{j}}} \left ( \frac{1}{m}\sum_{i=1}^{m}-y^{(i)}log(p^{(i)})-(1-y^{(i)})log(1-p^{(i)}) \right )

=\frac{1}{m}\sum_{i=1}^{m}-y^{(i)}\frac{1}{(p^{(i)})}p^{(i)}(1-p^{(i)})X_{j}-(1-y^{(i)})\frac{1}{(1-p^{(i)})}(-p^{(i)}(1-p^{(i)}))X_{j}

=\frac{1}{m}\sum_{i=1}^{m}-y^{(i)}(1-p^{(i)})X_{j}-(1-y^{(i)})(-p^{(i)})X_{j}

=\frac{1}{m}\sum_{i=1}^{m}(p^{(i)}-y^{(i)})X_{j}^{(i)}

故有:

\frac{\partial }{\partial w{_{j}}}J(w)=\frac{1}{m}\sum_{i=1}^{m}(\sigma (w^{T}x^{(i)})-y^{(i)})x_{j}

梯度下降: 

w_{j}=w_{j}-\frac{\partial }{\partial w{_{j}}}J(w)=w_{j}-\alpha \frac{1}{m}\sum_{i=1}^{m}(\sigma (w^{T}x^{(i)})-y^{(i)})x_{j}^{(i)}


OVER~~~

一套操作下来真不简单,反复看看加深印象。

 参考资料:
 

14 逻辑回归的本质及损失函数的推导、求解 - 知乎

逻辑回归 logistics regression 公式推导 - 知乎

 一文彻底理解逻辑回归:从公式推导到代码实现 - 掘金

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值