林轩田机器学习基石心得10:Logistic Regression
0. 前言
这篇文章是我精简的总结了视频中第10课的内容,推荐另一篇笔记:
http://blog.****.net/red_stone1/article/details/72229903
- 这一节主要介绍的是逻辑回归分类器。
1. Logistic Regression Problem
- 逻辑回归问题:之前的课程中,我们需要的目标函数预测结果要么是+1/-1(二分类问题),或者是一个具体的值(回归问题)。如果我们需要的是一个样本为正的概率,比如病人得心脏病的概率等。这一类问题就叫做软性二分类问题,也是逻辑回归要解决的问题。
-
训练数据问题:我们实际中得到的样本标签不会是一个概率。
比如医院里保存的数据不可能是这个病人在某年某月有多大概率的心脏病,而是得了或者没得(也就是确切的+1或-1)。我们可以把实际中的数据看成是理想数据加上了噪声的影响。- risk score:通过线性回归的方法,可以将样本特征进行加权处理。计算的结果s,就是risk score:
逻辑回归中的方法是使用sigmoid函数,将risk score 限定在[0,1]之间。我们的目标就是找到一个hypothesis:。
- risk score:通过线性回归的方法,可以将样本特征进行加权处理。计算的结果s,就是risk score:
-
sigmoid函数:函数形式为:。
因此假设函数为:
2. Logistic Regression Error
逻辑回归的误差定义:我们需要在所有假设函数集中找到一个假设函数,使其与目标函数尽可能接近。逻辑回归中用到了最大似然估计的方法。
目标函数:对于一组样本数据
目标函数能够预测出每个样本的标签概率(即+1的概率和-1的概率),我们就可以计算目标函数预测结果与实际样本标签一致的概率为:
其中就是估计样本为正的概率,那么就是样本为负的概率。通常来说,预测结果与样本标签一致的概率是很高的(目标函数是理想化的,肯定高啊)。假设函数:我们的目的是要学得假设函数与目标函数尽可能相似,也就是假设函数预测样本标签与实际标签相同的概率尽可能大。
求解步骤:由于是一个常数,我们在求最大值时影响不大,因此我们可以舍去。我们得到的似然估计为:
对两边求对数log,得到结果为:
将sigmoid函数带进去得到:
最后我们得到误差结果:
该误差又称为cross-entropy error。
3. Gradient of Logistic Regression Error
目标:我们已经推到了的表达式,那接下来的问题就是如何找到合适的向量w,让最小。
性质:连续、可微、二次可微的凸曲线(开口向上)。
求解最小的方法:与线性回归相似,由于是凸函数,求解梯度为0的点就可以了。
梯度求解过程:对第2部分的结果进行微分就可以了,过程这里不再赘述,直接放结果:
令上式为0的情况,只有部分为0,也就是,这要求所有样本都是线性可分的,但是这并不容易达到。因此下一部分提出求解梯度的方法。
4. Gradient Descent
梯度下降算法:我们的目的是最小化,梯度下降算法是求解这一问题的一种简单算法。
梯度:在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,简称grad f(x,y)或者▽f(x,y)。对于函数f(x,y),在点(x0,y0),沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。
梯度下降:在机器学习算法中,在最小化损失函数时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数,和模型参数值。
每次迭代公式:
步长:太大的步长和太小的步长都不合适。因此,η应该选择合适的值,一种方法是在梯度较小的时候,选择小的η,梯度较大的时候,选择大的η,即η正比于。这样保证了能够快速、稳定地得到最小值。
5. 总结
- 本次课程主要介绍了逻辑回归。
- 逻辑回归的目的是预测样本为正的概率。
- 逻辑回归的误差结果为。
- 由于样本未必是线性可分的,逻辑回归的误差最小难以通过导数为0求解。
- 梯度下降求解最小误差。