利用先验知识,寻找经验损失最小的模型。
李航《统计学习方法》
和线性回归一样,逻辑回归也是常用的算法之一,如果熟悉深度学习的话,可以发现,在很多时候,深度学习就是逻辑回归变体与进化。逻辑回归的推导问题,也是面试中最常问的问题之一。本篇文章,就详细介绍逻辑回归的两种重要思路:极大似然估计和梯度下降。
从一个特殊的硬币开始
这是我曾遇到的一个面试题:假设一枚不规则的硬币,要知道它正面的概率是多少,抛了10次,其中6次正面,4次背面,请用极大似然估计计算硬币正面的概率? 想要解决这一问题,首先做一些设定,假设硬币正面概率为p, 硬币是反面时概率为(1-p)。那么如果抛两次硬币分别是一次正面,一次是反面,这一事件发生的概率P,可以表示为:将最大值问题转换成最小值问题,求P最大值的问题转变成求-P的最小值的问题。(这一步是为了配合梯度下降,可以不做,如果不转换,可以用梯度上升的方法,其他不变。)
将公式两边同时取对数,这也可以叫做对数似然;指数运算复杂度较高,取对数可以将乘法变成加法,其次对数并不会改变原函数的单调性。原公式变为:
对 l 求导数,从上面的图像可以知道,当导数等于0时,获得最小值。
对上面的导数求解,就可以得到极大似然估计求解的硬币正面的概率p=0.6。
这就是极大似然估计硬币正面概率的方法,。那么,将上面的解题步骤进行推广,就可以得到逻辑回归的推导过程。
逻辑回归本质是分类!
逻辑回归,本质上就是把线性回归的方程放到Sigmoid的函数里,公式是:来个通俗的例子: 成年人的平均体重w是60kg,平均身高h是170cm,未成年的平均体重是40kg,平均身高是140cm(为了计算方便,并不是真实数据,别较真)。假设我们训练的线性回归模型是y=0.005w+0.005h,我们直观的感受就是,成年人的回归结果要在1.15附近,未成年人的回归结果在90附近。但是单纯依靠回归结果,我们没办法对未知样本进行一个类别判定,所以,就需要逻辑回归的"弯折"。 当预测一个新的样本时,w=60, h=160,线性回归的结果是110,经过逻辑回归,Ta是成年人的概率:
逻辑回归的梯度下降
逻辑回归的梯度下降和线性回归的梯度下降,在原理上是一样的,一样可以按照NP-hard的思路进行拆解。目标函数:可以将硬币问题进行一般化处理,得到使得经验损失最小,也就是样本所代表的事件,发生的概率最大。
其中,n代表了样本的数量,y_i第i个样本的真实标签(0或1),目标函数的图像可以参考本文第一幅图。
输入序列/值:与线性回归相同,也是w和b的组合。
约束条件:与线性回归相同。
如果对梯度下降不太熟悉,建议看下:算法 | 换个角度理解下:线性回归与梯度下降!
按照极大似然估计求解硬币正面概率的步骤:对目标函数(损失函数)取对偶问题(转换成求最小值),然后取对数;
对目标函数分别求w的偏导数;
非常神奇的是,逻辑回归函数的导数有个特性,h'(x)=h(x)(1-h(x)),那么上面的公式简化下就是:
再次化简!注意上面h(x)(1-h(x))是在求和函数Sum之外的,此时x并没有指定,当与Sum求乘积的时候,h(x)就相当于h(x_i),最后。就可以得到一个非常眼熟的公式:
让偏导数变为0,然后加个学习率,就可以得到w迭代前进的方向;
更新权重w,继续迭代。
突然哲学的广义线性模型
仔细观察损失函数最后对w求偏导数得到的梯度下降公式,与线性回归的梯度下降公式在本质上是完全一样的。数学上为了追求简洁和统一,于是把这些类似的模型统称为:广义线性模型(GML)。这类模型包括:线性回归、多项式回归、逻辑回归、岭回归(Ridge,也是L2正则)、Lasso回归(L1正则)等。想要更详细的了解,建议移步skLearn官网~最后补充一个小总结:线性回归通过最小二乘估计法获取损失函数,逻辑回归是通过极大似然估计法获得损失函数,两者都可以通过梯度下降法寻找最优解(w和b的组合)。求求各位点个关注吧~~~