机器学习(六):CS229ML课程笔记(2)——逻辑回归

上一篇文章记录了线性回归,下面要说一说逻辑回归。

一、监督学习:

当我们预测连续值的时候被称为回归regression问题,预测离散值被称为分类classification问题。


Part 2:

1.为什么要逻辑回归:

参考链接

我们套用Andrew Ng老师的课件中的例子,下图中X为数据点肿瘤的大小,Y为观测结果是否是恶性肿瘤。通过构建线性回归模型,如hθ(x)所示,构建线性回归模型后,我们设定一个阈值0.5,预测hθ(x)≥0.5的这些点为恶性肿瘤,而hθ(x)<0.5为良性肿瘤。

机器学习(六):CS229ML课程笔记(2)——逻辑回归

但很多实际的情况下,我们需要学习的分类数据并没有这么精准,比如说上述例子中突然有一个不按套路出牌的数据点出现,如下图所示:

机器学习(六):CS229ML课程笔记(2)——逻辑回归

你看,现在你再设定0.5,这个判定阈值就失效了,而现实生活的分类问题的数据,会比例子中这个更为复杂,而这个时候我们借助于线性回归+阈值的方式,已经很难完成一个鲁棒性很好的分类器了。
在这样的场景下,逻辑回归就诞生了。在逻辑回归模型中,y是一个定性变量,比如y=0或1,logistic方法主要应用于研究某些事件发生的概率

2.逻辑回归(Logistic regression):

先认识一个函数(logistic function or sigmoid function):

机器学习(六):CS229ML课程笔记(2)——逻辑回归,g(z)在(0,1)之间。

机器学习(六):CS229ML课程笔记(2)——逻辑回归

从函数图上可以看出,函数y=g(z)在z=0的时候取值为1/2,而随着z逐渐变小,函数值趋于0,z逐渐变大的同时函数值逐渐趋于1,通过这个函数可以将原始线性回归得到的连续的输出结果映射到0到1的范围。

所以我们定义线性回归的预测函数为:

机器学习(六):CS229ML课程笔记(2)——逻辑回归

对上述函数的求导:

机器学习(六):CS229ML课程笔记(2)——逻辑回归

一般使用梯度下降法效果最好的是凸函数,如下图第二个,但是我们目前面对的是非凸函数,有多个局部最低点,如图第一个,所以之前先行回归的求解方式在这里的效果可能不好。(下图来自博客https://blog.csdn.net/zjuPeco/article/details/77165974

机器学习(六):CS229ML课程笔记(2)——逻辑回归

3.逻辑回归的求解(找代价函数)

3.1 从概率论角度:

我们把hθ(x)(就是上面的g(θT·x)视为类为1 的后验概率:(这是假设条件)

机器学习(六):CS229ML课程笔记(2)——逻辑回归(1)

p(y=1|x)p(y=1|x;w)表示给定θ,那么x点 y = 1 的概率大小。

上面的公式(1)可以被写成下面的这个式子(将y=0或者y=1带入会有很奇妙的事情发生):

机器学习(六):CS229ML课程笔记(2)——逻辑回归(2)

公式(2)是一个训练集,如果有m个独立的训练集,用极大似然估计给定的训练集:

机器学习(六):CS229ML课程笔记(2)——逻辑回归(3)

也就是求上述公式(3)的最大概率对应的θ,对这个函数去log,方便求解:

机器学习(六):CS229ML课程笔记(2)——逻辑回归

这就是代价函数了。如果样本的值是1的话,估计值h(z)越接近1付出的代价就越小,估计值越接近0付出的代价就越大如果样本的值是0的话,估计值h(z)越接近1付出的代价就越大,估计值越接近0付出的代价就越小;

此时在用类似梯度下降法的梯度上升法(gradient ascent),因为前面是求误差最小,这里是求概率最大。(也可以在整个式子前面加个符号就变成就函数最小啦,再用梯度下降)

更新θ的公式:

机器学习(六):CS229ML课程笔记(2)——逻辑回归

求解过程(里面用到了前面推导的g'(z) = g(z)(1-g(z)):

机器学习(六):CS229ML课程笔记(2)——逻辑回归

最后得到:

机器学习(六):CS229ML课程笔记(2)——逻辑回归

α是学习率。

发现和之前最小二乘的结果很相似,但不相同。后面学了GLM会具体解释原因哒~

如果对上述过程还是不理解,推荐一篇好博文:逻辑回归(logistic regression)的本质——极大似然估计


3.2 感知机学习算法:

在此穿插另外一种算法: The perceptron learning algorithm

强迫输出结果只能为两个,0或者1:

机器学习(六):CS229ML课程笔记(2)——逻辑回归

也就是用这个阈值函数(threshold function)代替了上面的sigmoid function,

其他的和上面求解没有区别。

3.3 牛顿法

牛顿除了上述的梯度上升法的另外一种最大化机器学习(六):CS229ML课程笔记(2)——逻辑回归的方式。

“基本牛顿法是一种是用导数的算法,它每一步的迭代方向都是沿着当前点函数值下降的方向。”(来自链接

举个例子:在一维的情形下,对于一个需要求解的优化函数机器学习(六):CS229ML课程笔记(2)——逻辑回归,求函数的极值的问题可以转化为求导函数机器学习(六):CS229ML课程笔记(2)——逻辑回归。对函数机器学习(六):CS229ML课程笔记(2)——逻辑回归进行泰勒展开到二阶,得到
机器学习(六):CS229ML课程笔记(2)——逻辑回归
对上式求导并令其为0,则为
机器学习(六):CS229ML课程笔记(2)——逻辑回归
即得到
机器学习(六):CS229ML课程笔记(2)——逻辑回归(1)
这就是牛顿法的更新公式。可能用图片来看会更直接:

机器学习(六):CS229ML课程笔记(2)——逻辑回归

因为我们现在求得是机器学习(六):CS229ML课程笔记(2)——逻辑回归的极值,所以将上述的机器学习(六):CS229ML课程笔记(2)——逻辑回归变成机器学习(六):CS229ML课程笔记(2)——逻辑回归,以公式(1)进行不断迭代,最后即可得到极值的横坐标。

下面要说的就是机器学习(六):CS229ML课程笔记(2)——逻辑回归的二阶倒数的求法。公式(1)在此问题中可以用下面公式替代,这是换了一种写法:

机器学习(六):CS229ML课程笔记(2)——逻辑回归

其中机器学习(六):CS229ML课程笔记(2)——逻辑回归表示机器学习(六):CS229ML课程笔记(2)——逻辑回归对θ的一阶偏导数,H 表示的是二阶偏导数,也被称为 Hessian,是个m×m的矩阵。

机器学习(六):CS229ML课程笔记(2)——逻辑回归

总结:牛顿方法Newton’s method一般比 (batch) gradient descent方法的迭代次数少,但是它的每个循环的代价较大,因为每次都要计算一个m×m的H矩阵,当样本m不是很大大的时候,这种方法比梯度下降收敛的更快。当牛顿法被用来解逻辑回归的 log likelihood function机器学习(六):CS229ML课程笔记(2)——逻辑回归求最大问题的时候被称作 Fisher scoring.

机器学习(六):CS229ML课程笔记(2)——逻辑回归

Linear Regression 和logistic Regression都是属于GLM,套了logistic之后,输出结果就变成一个概率了,loss function和 likelihood function取反是类似的东西,都可以作为优化的目标。loss function 直接对残差求平方和,直觉上也是挺合理的;当然,对于logistic Regression来说,概率值求残差就说不太通了,更重要的原因是非凸函数,不好求解。