文章目录

  • 1 前言
  • 2 什么是逻辑回归
  • 3 逻辑回归的代价函数
  • 4 利用梯度下降法求参数
  • 5 结束语
  • 6 参考文献


1 前言

逻辑回归是分类当中极为常用的手段,因此,掌握其内在原理是非常必要的。我会争取在本文中尽可能简明地展现逻辑回归(logistic regression)的整个推导过程。

2 什么是逻辑回归

逻辑回归在某些书中也被称为对数几率回归,明明被叫做回归,却用在了分类问题上,我个人认为这是因为逻辑回归用了和回归类似的方法来解决了分类问题。

假设有一个二分类问题,输出为逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习,而线性回归模型产生的预测值为逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_02是实数值,我们希望有一个理想的阶跃函数来帮我们实现逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归_03值到逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_04值的转化。

逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归_05

然而该函数不连续,我们希望有一个单调可微的函数来供我们使用,于是便找到了逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归_06来替代。

逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_07

两者的图像如下图所示(图片出自文献2)

逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_08


图1:sigmoid & step function

有了逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归 极大似然估计_09之后,由于其取值在逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_10,我们就可以将其视为类逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_11的后验概率估计逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归 极大似然估计_12。说白了,就是如果有了一个测试点逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_13,那么就可以用逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归 极大似然估计_09算出来的结果来当做该点逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_13属于类别逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_11的概率大小。

于是,非常自然地,我们把逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归 极大似然估计_09计算得到的值大于等于逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_18的归为类别逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_11,小于逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_18的归为类别逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归 极大似然估计_21

逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_22

同时逻辑回归与自适应线性网络非常相似,两者的区别在于逻辑回归的激活函数是逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归_06而自适应线性网络的激活函数是逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_24,两者的网络结构如下图所示(图片出自文献1)。

逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_25


图2:自适应线性网络

逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_26


图3:逻辑回归网络

3 逻辑回归的代价函数

好了,所要用的几个函数我们都有了,接下来要做的就是根据给定的训练集,把参数逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_27给求出来了。要找参数逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_27,首先就是得把代价函数(cost function)给定义出来,也就是目标函数。

我们第一个想到的自然是模仿线性回归的做法,利用误差平方和来当代价函数。

逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_29

其中,逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_30逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_31表示第逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_31个样本点,逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归 极大似然估计_33表示第逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_31个样本的真实值,逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归_35表示第逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_31个样本的预测值。

这时,如果我们将逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_37代入的话,会发现这是一个非凸函数,这就意味着代价函数有着许多的局部最小值,这不利于我们的求解。

逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_38


图4:凸函数和非凸函数

那么我们不妨来换一个思路解决这个问题。前面,我们提到了逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归_39可以视为类逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_11的后验估计,所以我们有

逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归_41

逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归 极大似然估计_42

其中,逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_43表示给定逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_27,那么逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_13逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归_46的概率大小。

上面两式可以写成一般形式

逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_47

接下来我们就要用极大似然估计来根据给定的训练集估计出参数逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_27

逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_49

为了简化运算,我们对上面这个等式的两边都取一个对数

逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_50

我们现在要求的是使得逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_51最大的逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_27。没错,我们的代价函数出现了,我们在逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_51前面加个负号不就变成就最小了吗?不就变成我们代价函数了吗?

逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归 极大似然估计_54

为了更好地理解这个代价函数,我们不妨拿一个例子的来看看

逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归_55

也就是说

逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_56

我们来看看这是一个怎么样的函数

逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_57


图5:代价函数

从图中不难看出,如果样本的值是逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_11的话,估计值逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归_39越接近逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_11付出的代价就越小,反之越大;同理,如果样本的值是逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归 极大似然估计_21的话,估计值逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归_39越接近逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归 极大似然估计_21付出的代价就越小,反之越大。

4 利用梯度下降法求参数

在开始梯度下降之前,要这里插一句,逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_64有一个很好的性质就是

逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_65

下面会用到这个性质。

还有,我们要明确一点,梯度的负方向就是代价函数下降最快的方向。什么?为什么?好,我来说明一下。借助于泰特展开,我们有

逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_66

其中,逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_67逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_68为向量,那么这两者的内积就等于

逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_69

逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_70时,也就是逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_68逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_67的负方向上时,取得最小值,也就是下降的最快的方向了~

okay?好,坐稳了,我们要开始下降了。

逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归 极大似然估计_73

没错,就是这么下降。没反应过来?那我再写详细一些

逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归_74

其中,逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_75表示第逻辑回归 极大似然估计 罗辑回归 极大似然_逻辑回归 极大似然估计_76个特征的权重;逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_77为学习率,用来控制步长。

重点来了。

逻辑回归 极大似然估计 罗辑回归 极大似然_极大似然估计_78

所以,在使用梯度下降法更新权重时,只要根据下式即可

逻辑回归 极大似然估计 罗辑回归 极大似然_分类器_79

此式与线性回归时更新权重用的式子极为相似,也许这也是逻辑回归要在后面加上回归两个字的原因吧。

当然,在样本量极大的时候,每次更新权重会非常耗费时间,这时可以采用随机梯度下降法,这时每次迭代时需要将样本重新打乱,然后用下式不断更新权重。

逻辑回归 极大似然估计 罗辑回归 极大似然_机器学习_80

也就是去掉了求和,而是针对每个样本点都进行更新。

5 结束语

以上就是我参考了基本书中的说法之后对逻辑回归整个推到过程的梳理,也不知道讲清楚没有。
如有不足,还请指正~

6 参考文献

[1] Raschka S. Python Machine Learning[M]. Packt Publishing, 2015.
[2] 周志华. 机器学习 : = Machine learning[M]. 清华大学出版社, 2016.