逻辑回归模型logistic原理详解

Hello! 小A又来咯!

之前我们详细的介绍了使用线性回归模型来进行回归学习,那如果要做分类任务该怎么办呢?

考虑二分类任务,其输出值y属于集合[0,1]。而线性回归模型z=w^T*x+b是实值。为了进行分类任务,我们需要将实值z转化成[0,1],我们首先想到的最理想的就是单位跃阶函数,即:

但是单位跃阶函数并不连续,并不能处处求导,不利于后续计算。所以我们需要找到一个能在一定程度上近似单位跃阶函数额替代函数,连续且单调可微。而对数几率函数正是这样的一个常用替代函数。如下图所示:

对数几率函数是一种sigmod函数。所谓sigmod函数就是形似“s”的函数,它可以将z值转化为一个接近0或1的y值。因此我们可以利用此单调可微函数将分类任务与线性回归模型联系起来,将z=w^T*x+b带入对数几率函数。可得:

我们可以看到此式实际上是用线性回归模型的预测结果去逼近真实标记的对数几率,进一步化简,可得:

我们将y视为样本x作为正例的可能性,那么1-y就是反例的可能性,那么二者的比例1/(1-y)称之为几率,它反映了x作为正例的相对可能性。

下一步就是要确定式子中不确定的w和b,我们可以将其中的y视为类后验概率p(y=1|x),即我们已经拿到了这个样例,它为正例的概率。于是上式可以重写为:

对其进行化简,则

由于是概率,所以接下来我们使用极大似然估计来求参数w和b。那么什么是极大似然估计呢?

举个例子:

假如有一个罐子,里面有黑白两种颜色的球,数目多少不知,两种颜色的比例也不知。我们想知道罐中白球和黑球的比例,但我们不能把罐中的球全部拿出来数。现在我们可以每次任意从已经摇匀的罐中拿一个球出来,记录球的颜色,然后把拿出来的球 再放回罐中。这个过程可以重复,我们可以用记录的球的颜色来估计罐中黑白球的比例。假如在前面的一百次重复记录中,有七十次是白球,请问罐中白球所占的比例最有可能是多少?

我们假设白球占比为p,那么黑球占比就是1-p。由于每次我们都是拿出来记录颜色后又放回去,所以每次抽取出来的球的颜色都服从独立同分布。

根据我们的实验结果:在前面的一百次重复记录中,有七十次是白球。我们将此次事件记为P,则

P=p^70*(1-p)^30。不同的p,P的结果也不一样。当p=0.5时,P=7.8 * 10^(-31)。当p=0.7时,P=2.95* 10^(-27)。极大似然估计求解p原则就是:既然事情已经发生了,为什么不让这个出现的结果的可能性最大呢?这也就是最大似然估计的核心。所以我们将其看成p的方程,求导即可。

回到我们的式子中,使用极大似然估计来求参数w和b。

合并3,4两个式子,我们可以得到:

其中指数y=1时为正例,p(y|x,w)=hw(x),当y=0时,p(y|x,w)=1-hw(x)。指数y的作用即在于此。

我们进一步化简:

如此就推导出了参数的最大似然估计。我们的目的是将所得似然函数极大化,而损失函数是最小化,因此,我们需要在上式前加一个负号便可得到最终的损失函数。 

 

由于逻辑回归的目标函数是凸函数,所以我们使用梯度上升法法来进行求解,不懂梯度上升法的读者可以翻着本公众号的上一篇文章,里面详细的介绍了梯度下降法。上升法同理。

首先我们要求解梯度,首先介绍一下sigmod函数推导:

接着我们求解梯度:

梯度上升法:

可以求到w和b。

逻辑回归有很多优点,例如:它直接对分类可能性进行建模;它不是仅预测类别,而是得到近似概率,这对许多需利用概率辅助决策的任务很有用;此外,对率函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可直接用于求导最优解。

下一节,我们将介绍由python实现逻辑回归,敬请期待!

如下是本人学习公众号,会经常分享人工智能学习总结或者分享学习资料资源,欢迎大家关注,我们一起交流学习~ 

猜你喜欢

转载自blog.csdn.net/weixin_38232619/article/details/128122408
今日推荐