sklearn逻辑回归 极大似然 损失_算法 | 一个硬币与逻辑回归的故事

利用先验知识,寻找经验损失最小的模型。

李航《统计学习方法》

和线性回归一样,逻辑回归也是常用的算法之一,如果熟悉深度学习的话,可以发现,在很多时候,深度学习就是逻辑回归变体与进化。逻辑回归的推导问题,也是面试中最常问的问题之一。本篇文章,就详细介绍逻辑回归的两种重要思路:极大似然估计梯度下降


从一个特殊的硬币开始

这是我曾遇到的一个面试题:假设一枚不规则的硬币,要知道它正面的概率是多少,抛了10次,其中6次正面,4次背面,请用极大似然估计计算硬币正面的概率? 想要解决这一问题,首先做一些设定,假设硬币正面概率为p, 硬币是反面时概率为(1-p)。那么如果抛两次硬币分别是一次正面,一次是反面,这一事件发生的概率P,可以表示为:

d6f6837d43831debfca19f8d7f3f5436.png

如果是抛10次,6次正面,4次背面,那么这一事件P发生的概率就可以写成:

43418804d710d842e8fa0a57a3663e82.png

极大似然估计,就是要使得事件发生的概率P最大。那么这个问题就可以转换成,当P最大时得到的p,就是要求的硬币正面的概率。如何求最大的P和正面概率p?
  1. 将最大值问题转换成最小值问题,求P最大值的问题转变成求-P的最小值的问题。(这一步是为了配合梯度下降,可以不做,如果不转换,可以用梯度上升的方法,其他不变。)

    bd32477c2710ab690c885df79f859bf1.png

  2. 将公式两边同时取对数,这也可以叫做对数似然;指数运算复杂度较高,取对数可以将乘法变成加法,其次对数并不会改变原函数的单调性。原公式变为:

    3243a95d4b53f821d9a5b80695b89bd1.png

  3. 对 l 求导数,从上面的图像可以知道,当导数等于0时,获得最小值。

    027d694d10a3e736b3135fe23b04de96.png

  4. 对上面的导数求解,就可以得到极大似然估计求解的硬币正面的概率p=0.6

这就是极大似然估计硬币正面概率的方法,。那么,将上面的解题步骤进行推广,就可以得到逻辑回归的推导过程。

8ee1513208ba69bea7dd5c21ff675a6a.png

逻辑回归本质是分类!

逻辑回归,本质上就是把线性回归的方程放到Sigmoid的函数里,公式是:

817435ace16577e12aa57d3579f11075.png

把这个函数放到坐标系里,它长这样:

0c71d19a64b14aa2ad4676bbef6e2b02.png

所以,逻辑回归的过程,就是将线性回归的结果进行"弯折",使得其结果在0-1,而这个结果,就是样本是正样本y=1时的概率。
来个通俗的例子: 成年人的平均体重w是60kg,平均身高h是170cm,未成年的平均体重是40kg,平均身高是140cm(为了计算方便,并不是真实数据,别较真)。假设我们训练的线性回归模型是y=0.005w+0.005h,我们直观的感受就是,成年人的回归结果要在1.15附近,未成年人的回归结果在90附近。但是单纯依靠回归结果,我们没办法对未知样本进行一个类别判定,所以,就需要逻辑回归的"弯折"。 当预测一个新的样本时,w=60, h=160,线性回归的结果是110,经过逻辑回归,Ta是成年人的概率:

5a1d8e01f3cd36a009d16b0f5d75de0a.png

即,如果我们假设当概率超过0.5时(这个阈值可以改动),就将样本认定为正样本,那么这个待预测的人就是成年人。 这也就是逻辑回归的过程。如果进一步推广,将一个逻辑回归模型变成多个,形成一层的逻辑回归,然后一层变成多层逻辑回归,这就变成了神经网络,而单个逻辑回归的"弯折"能力通过叠加,也就可以处理一些非线性、不规则的情况。

8ee1513208ba69bea7dd5c21ff675a6a.png

逻辑回归的梯度下降

逻辑回归的梯度下降和线性回归的梯度下降,在原理上是一样的,一样可以按照NP-hard的思路进行拆解。
  • 目标函数:可以将硬币问题进行一般化处理,得到使得经验损失最小,也就是样本所代表的事件,发生的概率最大。

84141e609b620294f7a6440b50597823.png

其中,n代表了样本的数量,y_i第i个样本的真实标签(0或1),目标函数的图像可以参考本文第一幅图。

  • 输入序列/值:与线性回归相同,也是w和b的组合。

  • 约束条件:与线性回归相同。

如果对梯度下降不太熟悉,建议看下:算法 | 换个角度理解下:线性回归与梯度下降!

按照极大似然估计求解硬币正面概率的步骤:
  1. 对目标函数(损失函数)取对偶问题(转换成求最小值),然后取对数;

    0e4432255b4a8db91a50278fe3f73374.png

  2. 对目标函数分别求w的偏导数;

    448b7cc2d2c5719cf1d6b94352a08b0c.png

    非常神奇的是,逻辑回归函数的导数有个特性,h'(x)=h(x)(1-h(x)),那么上面的公式简化下就是:

    0da88832a0211cb0bdd95e0a5ce2575f.png

    再次化简!注意上面h(x)(1-h(x))是在求和函数Sum之外的,此时x并没有指定,当与Sum求乘积的时候,h(x)就相当于h(x_i),最后。就可以得到一个非常眼熟的公式:

    6583748163176e4f16457974f38e593c.png

  3. 让偏导数变为0,然后加个学习率,就可以得到w迭代前进的方向;

    4e0e0cab92406fd2e9419c193385345d.png

  4. 更新权重w,继续迭代。

用同样的方法,计算偏差b,感兴趣可以自己推导下。

8ee1513208ba69bea7dd5c21ff675a6a.png

突然哲学的广义线性模型

仔细观察损失函数最后对w求偏导数得到的梯度下降公式,与线性回归的梯度下降公式在本质上是完全一样的。数学上为了追求简洁和统一,于是把这些类似的模型统称为:广义线性模型(GML)。这类模型包括:线性回归、多项式回归、逻辑回归、岭回归(Ridge,也是L2正则)、Lasso回归(L1正则)等。想要更详细的了解,建议移步skLearn官网~
最后补充一个小总结:线性回归通过最小二乘估计法获取损失函数,逻辑回归是通过极大似然估计法获得损失函数,两者都可以通过梯度下降法寻找最优解(w和b的组合)。求求各位点个关注吧~~~

6a4f38fffef06f609a588aa95b54aafd.png

相关文章:算法 | 换个角度理解下:线性回归与梯度下降!算法|NP-hard可能没那么难。?面向对象我会了,请问对象哪儿领?其他有趣的故事:入狱小技巧|我们总算做了一件有用的事!缓存|高并发下与数据库的读写一致性ES | 让搜索变得简单高效
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值