智客公社

标题: 机器学习(五):逻辑回归(二) [打印本页]

作者: nuoya00888    时间: 2018-9-23 20:05
标题: 机器学习(五):逻辑回归(二)
逻辑回归(二)
[attach]43716[/attach][attach]43717[/attach]






说明

编程语言:Python
机器环境:Windows
参考书籍:《机器学习实战》
可参考学习视频:
吴恩达机器学习视频:
https://study.163.com/course/courseMain.htm?courseId=1004570029
注:本文章内容为视频与书籍相结合内容,知识点有所穿插




决策边界(Decision Boundary)

决策边界

对于逻辑回归问题,可以确定一组回归系数,将不同类别数据进行分隔开来,类似一条分隔线,这条分割线被称为决策边界\判定边界。
如下图:
[attach]43718[/attach][attach]43719[/attach]
数据集有两个特征x1与x2,我们用圆形表示y的一个分类,记作0,用叉号表示y的另一个分类,记住1,绘制在图形中,我们现在需要绘制决策边界将数据点进行分类,左侧的紫色的一条直线及右侧的紫色的圆形可以将数据点进行比较好的划分,即是我们寻找的决策边界。
即:x1+x2=3是左侧的决策边界;
(x1)^2+(x2)^2=1是右侧的决策边界(圆点在原点且半径为 1 的圆形 )


逻辑回归的目的

[attach]43720[/attach]



如上,结合逻辑回归的公式,求解下图的决策边界,即求出了最佳回归系数,得到了我们需要的假设函数h(x)(Hypothesis Function),假设函数即我们目标的近似函数。
[attach]43721[/attach]

用向量进行表示的话,参数为[-1 0 0 1 1] 。这个参数即为上述例子的最佳回归系数。逻辑回归就是用假设函数去拟合决策边界。




代价函数(Cost Function)

代价函数

又叫损失函数或成本函数,直观的理解就是多个样本预测值和实际值之间的差距和,这个差距因为有正有负,所以可以用绝对值的和表示,为了方便计算最小代价(计算最小代价可能用到最小二乘法),可采用平方的和表示。
对于线性回归,其代价函数形式是平方误差的形式:
[attach]43722[/attach]



[attach]43723[/attach]

[attach]43724[/attach]





梯度下降(Gradient Descent)

[color=rgba(0, 0, 0, 0.85)]梯度下降
梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数的最小值。
梯度下降背后的思想是:开始时我们随机选择一个参数的组合,计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组
合,可能会找到不同的局部最小值。 

对于逻辑回归的代价函数,我们要求出最小化代价函数的参数值。
[attach]43725[/attach]

我们要反复更新每个参数,用上述式子来更新,就是用它自己减去学习率乘以后面的微分项。

将代价函数代入,对其求导:
[attach]43726[/attach]

逻辑回归训练算法的过程,就是使用梯度下降算法找到最佳参数
最小化代价函数,除了上述的梯度下降算法,还有一些更高级的算法:如
[attach]43727[/attach]

共轭梯度法、BFGS(变尺度法)、L-BFGS三种高级算法,其优点是比梯度下降算法更快,而且不需要人工地去选择学习率(步长)来进行迭代。


梯度上升(Gradient Ascent)
上述是吴恩达课程中解决逻辑回归问题的方法,采用的是梯度下降算法最小化代价函数。《机器学习实战》书中提到的是梯度上升算法,此最大值是此算法可以找到逻辑回归分类器在数据集上的最佳回归系数。并用随机梯度上升算法降低了计算复杂度。

之所以用梯度上升算法,是为了求最大值,这里的最大值是求极大似然估计的最大值。
[attach]43728[/attach]

(推导过程可参照:https://www.cnblogs.com/chenyang920/p/7426187.html
此表达式正好是去除了负号的m倍的逻辑回归的代价函数,此处为求最大值。


算法实现

随机梯度上升的伪代码

每个回归系数初始化为1
对数据集中每个样本  
          计算该样本的梯度 
          使用alpha * gradient 来更新回归系数的值(有可能是向量); 
返回回归系数




总结

逻辑回归的目的就是寻找一个非线性函数sigmoid的最佳拟合参数,求解过程可由最优化算法来完成。如果是求解代价函数的最小值,可以采用梯度下降的方法,如果是求解极大似然估计的最大值,可采用梯度上升算法,而梯度上升又可简化为随机梯度上升算法。


下期 机器学习(六):归一化、过拟合和正则化






机器学习系列:

家明将与大家一起学习机器学习,借助于网上的教程与书籍指导,家明总结,与大家一起进步,共同应对AI时代。




















欢迎光临 智客公社 (http://bbs.cnaiplus.com/) Powered by Discuz! X3.4