本文是《机器学习宝典》第 8 篇,读完本文你能够掌握机器学习中逻辑回归模型。
在前一篇 线性回归 中已经知道可以通过
来建立特征空间与连续值目标结果之间的关系,也就是说能够解决回归问题,如果想要解决分类问题,如何实现呢?一种办法就是我们对
再做一次函数转换,将它变为
,这样能够将
为不同实数区间时对应到不同的类别,这样就能够得到分类模型,逻辑回归(Logistic Regression)就是基于上面的原理来实现分类的。逻辑回归算是工业界应用最广泛的的模型之一了,比如推荐系统,广告点击预估等等。
由于实际生活中二分类的情况居多,所以下面以二分类为切入点来说明下逻辑回归的原理。
介绍逻辑回归之前,有必要介绍下 sigmoid 函数,我们已经知道,将多个特征进行线性求和可以用
表示,它得到的结果可能是一个非常大的正数,也有可能是一个负数,为了能够实现将结果转化成一个区分二分类问题的结果,比如将结果约束到(0,1),常用的一个函数是 sigmoid 函数,它的表达式为:
对应的图形如下:
从图形中可以看到,sigmoid 函数有以下性质:
借助 sigmoid 函数,逻辑回归可以将二分类问题中的特征空间与目标结果之间的关系用下面的函数来建立起来:
其中,
,
,b 表示一个常数。
的结果为模型的输出,值域为 (0,1),我们可以将
的输出结果看作是样本属于正样本的概率。如果
,那么
,也就意味着该样本属于正样本的概率高于 0.5;如果
,那么
,也就意味着该样本属于正样本的概率低于 0.5;如果
,那么
,也就意味着该样本属于正样本的概率等于 0.5。
一般将结果高于 0.5 的结果认为是 1(正类),低于 0.5 的结果认为是 0(负类)。
在我们将特征空间与目标结果之间的关系通过函数
表达出来后,想要求解其中的参数
和
,我们需要有一个损失函数。逻辑回归的损失函数可以通过最极大似然估计法(Maximum likelihood estimation, 简称MLE)来推导我们的损失函数。
我们需要知道:一个样本可以理解为发生的一次事件,样本生成的过程即事件发生的过程。对于二分类问题来讲,产生的结果有两种可能(0 或 1),符合伯努利试验的概率假设。因此,我们可以说样本的生成过程即为伯努利试验过程,产生的结果(0/1)服从伯努利分布。这里我们假设结果为 1 的概率为
,结果为 0 的概率为
。 那么,对于一个样本,目标结果的概率分布公式表示如下:
将上面的两个式子合在一起,即可表示一个样本的概率分布函数:
上面的式子可以表示一个样本的的概率分布,分号是为了强调在分号后面的
和 b 都是影响概率分布的参数,那么对于 m 训练个样本(观测样本),假设每个样本的生成过程独立,那么 m 个样本的概率分布为:
其中,m 为样本的个数,
表示第 i 个样本的特征向量,
表示第 i 个样本的真实结果,
表示第 i 个样本的预测结果。
上面的式子不仅可以理解为 m 个训练样本的概率分布表达式。如果从统计学的角度可以理解为参数
和 b 的似然性的函数表达式(即似然函数表达式),那么参数
和
在 m 个训练样本下的似然函数为:
这个似然函数表示的含义是说当参数
和
取不同的值时,在给定的
(m 个训练样本)条件下,对应的
的概率,有了似然函数,只需要求出似然函数最大时参数
和
的值即可。
虽然有了似然函数,但是我们需要的是损失函数,对于损失函数来说,当然是越小越好,所以直接对似然函数取负,同时为了方便计算,可以对似然函数取 log,可得到最终的损失函数如下:
其中,
,
表示一个常数,m 为样本的个数,
表示第 i 个样本的特征向量,
表示第 i 个样本的真实结果,
表示第 i 个样本的预测结果。
有了损失函数之后,可以使用很多种优化算法来求解,除了上一篇文章介绍的最小二乘法外,这次介绍一个叫做梯度下降的算法来求解参数
和
。
标量场中某一点上的梯度指向标量场增长最快的方向,梯度的长度是这个最大的变化率。
在空间坐标中以参数
和
为轴画出损失函数
的三维图像,可知这个函数为一个凸函数。为了找到合适的参数,先将
和
赋一个初始值,正如图中的小红点。因为这个损失函数是凸的,无论初始化的值是多少,总会到达同一个点或大致相同的点。梯度下降就是从起始点开始,试图在最陡峭的下降方向下坡,以便尽可能快地下坡到达最低点,这个下坡的方向便是此点的梯度值。
每次迭代的时候,沿着梯度的反方向,下降速度最快,用数学公式表示如下:
其中,
为学习率,通常为一个小于1的数,用来控制梯度下降过程中每一次移动的规格,相当于迈的步子大小。
的不宜太小也不宜过大:太小会使迭代次数增加,容易陷入局部最优解;太大容易错过最优解。
可以看到,关键点在于求偏导,在求偏导之前,先了解一个常识,sigmoid 函数的导数可以这样表示:
。
同时我们已知:
的求解方式与
求解方式类似,可以得到
。
参考: