Logistic 回归
前言
前面的课程我们讨论的都是线性回归方程,比如根据历史数据预测房价等,他们的共同特别就是数据是一种随着变量呈现一种线性关系。那么对于分类问题,如根据邮件的内容标记是否垃圾邮件,机器学习的解法又是怎么样的呢?下面我们就来介绍一种分类模型—— Logistic回归
一、Logistic回归
logistic回归解决的是分类问题,比如标记邮件是否垃圾邮件,预测肿瘤良性和恶性等。和线性回归不同的是,线性回归的结果是一系列的数值,而逻辑回归是一个 是和否 的结果。对于这种二分类问题(乃至多分类)我们可以用这种模型来解决我们的问题
1、分类算法
由于预测的结果是 0 和 1的值,对于这种突变模型,我们常用的预测方程式Logistic函数,也成为Sigmoid函数(以下统称sigmoid函数)。下面是他的函数形式和图像,我们可以看到他的模型是一个0 - 1突变的模型,我们就可以设定当
hθ(x) >= 0.5 时,预测 y = 1
hθ(x) < 0.5 时,预测 y = 0
2、决策边界
在具有两个类的统计分类问题中,决策边界或决策表面是超曲面,其将基础向量空间划分为两个集合,一个集合。 分类器将决策边界一侧的所有点分类为属于一个类,而将另一侧的所有点分类为属于另一个类。
下面我们来看下上面那个方程的推断
hθ(x) = g(θTx) = 1/(1 + e-(θx)) >= 0.5,由上面的图像可得 θTx >= 0
hθ(x) = g(θTx) = 1/(1 + e-(θx)) < 0.5,由上面的图像可得 θTx < 0
那么我们来看下一个例子,下面θ0 + θ1x1 + θ2x2组成的线就是我们的决策边界
对于依赖的θTx 的不同,我们可以绘制很多更复杂的决策边界来分类我们的模型,而这个决策边界是非线性的。如下示
二、代价函数及梯度下降法
上面已经讨论过我们的模型方程了,那么接下来看下sigmoid函数的代价方程。如果我们沿用线性回归的代价函数,那么代入hθ(x)中,我们的函数图像会像左边的图示一样,就会想蛇一样曲曲折折,这样根据梯度下降法求出来就会有很多局部最优解(梯度等于0),这样的函数我们称为非凸函数(non-convex)。显然我们目标是要右图那种函数——**凸函数(convex)**才能最好的拟合我们的模型
1、代价函数
Logistic回归的代价函数如下示,至于为什么会设计成这种形式就和概率论的熵有关了,我们记住这个模型即可。
y = 1时,局部有最优解(蓝点),y = 0时,局部有最优解(红点)
2、简化模型
上面哪种形式不太方便,我们可以写成以下的模型(可以试着把y = 0和y = 1的情况代入就是上面的公式了),然后得到了我们的代价函数,就可以用梯度下降法求解我们θ的值了
3、梯度下降法
将我们的代价函数求导的结果,可以发现几乎和我们的线性回归的导数一样,只不过是函数方程变化了而已
三、高级优化算法及多分类问题
1、几种高级优化算法
对于机器学习的优化方法除了我们知道的梯度下降法之外还有以下几种,当然如果要推导或者是编程实现是非常困难的。我们可以调用框架(tensorflow、pytorch等)中的这种方法即可
2、多分类问题
对于二分类问题我们可以用上面的方法实现,而对于多分类呢?教程中给出的方法是将划分成两类,然后分别预测其中的θ,最后将值综合起来即可(教程中非常简略,后续其实深度学习中有更好的方式实现 softmax等,我们以后再讨论)。
总结
以上就是《吴恩达机器学习》系列视频 Logistic 回归 的内容笔记,以便后续学习和查阅。