斯坦福机器学习笔记 第3周 六、逻辑回归(二)
来源:互联网 发布:网络拓扑图功能描述 编辑:程序博客网 时间:2024/06/05 06:47
六、逻辑回归
6.4 代价函数
参考视频: 6 - 4 - Cost Function (11 min).mkv
我们将要介绍如何拟合逻辑回归模型中的参数
对于线性回归模型,我们定义的代价函数是所有模型误差的平方和。理论上来说,我们也可以对逻辑回归模型沿用这个定义,但是问题在于,当我们将
这意味着我们的代价函数有很多局部最小值,这将影响梯度下降算法寻找全局最小值。
线性回归的代价函数为:
我们重新定义逻辑回归的代价函数为:
其中
这样构建的
将构建的
代入代价函数得到:
在得到这样一个代价函数以后,我们便可以用梯度下降算法来求得能使代价含糊最小的参数了。算法为:
求导后得到:
在这个视频中,我们定义了单训练样本的代价函数,该函数是一个凸函数(凸性分析超出范围,不给出证明直接使用),并且没有局部最优值。
除了梯度下降算法以外,还有一些常被用来令代价函数最小的算法,这些算法更加复杂和优越,而且通常不需要人工选择学习率,通常比梯度下降算法要更加快速。有:共轭梯度(Conjugate Gradient),局部优化法(Broyden fletcher goldfarb shann, BFGS)和有限内存局部优化法(LBFGS)。fminunc是matlab和octave中都带的一个最小值优化函数,使用时我们需要提供代价函数和每个参数的求导,下面是octave中使用fminunc函数的代码示例(非重点):
function [jVal, gradient] = costFunction(theta) jVal = [...code to compute J(theta)...]; gradient = [...code to compute derivative of J(theta)...];endoptions = optimset('GradObj', 'on', 'MaxIter', '100');initialTheta = zeros(2,1);[optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);
在下一节中,我们会把单训练样本的代价函数的这些理念进一步发展,然后给出整个训练集的代价函数的定义。我们还会找到一种比目前用的代价函数更简单的写法,并应用梯度下降法得到我们的逻辑回归算法。
6.5 简化的成本函数和梯度下降
参考视频 : 6 - 5 - Simplified Cost Function and Gradient Descent (10 min).mkv
我们将会找出一种稍微简单一点的方法来写代价函数来替换我们现在用的方法,同时还要弄清楚如何运动梯度下降法来拟合逻辑回归的参数。
以下是逻辑回归的代价函数:
这个式子可以合并为:
就是逻辑回归的代价函数:
根据这个代价函数,为了拟合出参数,该怎么做呢?我们要试图尽量让
最小化代价函数的方法,是使用梯度下降(gradient descent)。即:
求导后得到:
采用向量化的方法来同时更新所有
- 将学习率
α 后面的部分∑mi=1(hθ(x(i))−y(i))x(i)j 求出来 - n个特征
θ=⎡⎣⎢⎢⎢⎢⎢⎢θ0θ1θ2...θn⎤⎦⎥⎥⎥⎥⎥⎥,θ=⎡⎣⎢⎢⎢⎢⎢⎢θ0θ1θ2...θn⎤⎦⎥⎥⎥⎥⎥⎥−α∑i=1m(...)x(i)j
你会发现这个方法正是用来做线性回归梯度下降的。
在线性回归中讲到了特征缩放,它提高梯度下降的收敛速度,并且也适用于逻辑回归。如果你的特征范围差距很大的话,那么应用特征缩放的方法,也可以逻辑回归的梯度下降收敛更快。
6.6 高级优化
参考视频 : 6 - 6 - Advanced Optimization (14 min).mkv
暂略。
6.7 多类别分类:一对多
参考视频 : 6 - 7 - Multiclass Classification_ One-vs-all (6 min).mkv
二元分类问题的数据分布可能是:
而多元分类的问题,数据集可能是这样:
我们用三种不同的符号来表示三个类别,问题就是在三个类型的数据集,我们如何进行分类。
简单来说,一对多的分类工作是:先将class 1看作正类(y=1),其余看作负类(y=0),得到模型
我们最后会得到一系列模型:
当我们要与测试,我们把所有的分类模型都运行以便,然后对每一个输入变量,选择最高可能性的输出变量作为结果,即
无论
- 斯坦福机器学习笔记 第3周 六、逻辑回归(二)
- 斯坦福机器学习笔记 第3周 六、逻辑回归(一)
- coursera-斯坦福-机器学习-吴恩达-第3周笔记-逻辑回归
- 斯坦福机器学习笔记 第1周 二、单变量线性回归(二)
- 斯坦福机器学习笔记 第1周 二、单变量线性回归(一)
- 机器学习笔记(六) 逻辑回归
- 斯坦福机器学习公开课笔记(三)--逻辑回归
- 斯坦福机器学习课程笔记week2&3 线性/逻辑斯蒂回归
- (斯坦福机器学习课程笔记)用广义线性模型推导逻辑回归模型
- 斯坦福机器学习Coursera课程:第三周作业--逻辑回归
- 斯坦福机器学习公开课学习笔记(3)—拟合问题以及局部权重回归、逻辑回归
- 斯坦福机器学习笔记六
- 斯坦福机器学习-第三周(分类,逻辑回归,过度拟合及解决方法)
- 斯坦福机器学习笔记 第2周 四、多变量线性回归
- 斯坦福机器学习笔记 第2周 五、Octave教程(二)
- 【机器学习-斯坦福】学习笔记3 - Logistic回归
- 机器学习(二)逻辑回归
- 机器学习(二):逻辑回归
- eclipse设置代码提示
- 脚本修改tomcat端口
- PHP之get,post,request
- python开发数据库之前言
- 并发编程<四>并发不可预期结果的根本原因
- 斯坦福机器学习笔记 第3周 六、逻辑回归(二)
- AnnotationTransactionAttributeSource is only available on Java 1.5 and higher
- mysql创建定时任务
- Python批量爬取微信公众号文章中的图片
- 2017年--Java新手如何学习Spring、Struts、Hibernate三大框架?
- SecureCRT工具介绍
- Dive to Python
- 英盛网新媒体营销、运营视频教程 售价598元
- HttpClient连接池抛出大量ConnectionPoolTimeoutException: Timeout waiting for connection异常排查