【机器学习】Andrew Ng——02单变量线性回归
来源:互联网 发布:应变数据采集仪 编辑:程序博客网 时间:2024/06/07 13:17
单变量线性回归
房屋价格问题
首先我们来看卖房问题,如果有朋友想要出售房屋,如何根据已有数据来预测房屋的销售价格。下图所展示的是在第一章概述中提及的有监督学习的回归问题,对于每个样本的输入,都有正确的输出或者答案。如果以直线来表示房屋价格问题,那么当房屋价格为1250平方英尺时,房屋销售价格约为22万。
m 为训练样本的数目
x’s 为“输入”变量,也称之为 特征
y’s 为“输出”变量,也称之为“目标”变量
房价预测问题的大致学习过程如上图所示,其中x表示房屋的面积大小,y表示预测的价格,h(hypothesis)将输入变量 x 映射到输出变量 y,那么我们该如何表示h?
我们定义h为:。简写为 h(x),即是单变量线性回归问题。
代价函数(Cost Function)
对于训练集(x, y),选取参数θ0, θ1使得hθ(x)尽可能的接近y。我们选择的参数 θ0 和 θ1 决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距就是建模误差(modeling error)。
我们采用的方法就是求训练集的平方误差函数(squared error function)并选取合适的参数使其最小化。
我们用三维图来观察θ0, θ1和J(θ0, θ1)的关系,可以看出,在三维空间中存在一个使得J(θ0,θ1)最小的点。
梯度下降(Gradient Descent )
梯度下降算法可应用于多种多样的函数求解,定义一个函数J(θ0, θ1, θ2, …,θn ),通过最小化 θ0 到 θn 来最小化此代价函数J(θ0 到θn)。为简化问题,我们只用到两个参数θ0, θ1,并且将θ0,和θ1初始化为零。
在梯度下降算法中,所要做的就是不停地一点点改变 θ0 和 θ1 ,试图通过这种改变使得 J(θ0 ,θ1) 变小,直到找到 J(θ0 ,θ1) 的最小值,或者是局部最小值。我们可以把它想象成一座山,我们正在一步一步寻找最快下山的路。
现在我希望大家把这个图像想象为一座山。想像类似这样的景色,公园中有两座山,想象一下你正站立在山的这一点上,站立在你想象的公园这座红色山上。在梯度下降算法中,我们要做的就是旋转360度,看看我们的周围,并问自己,如果我想要下山,如果我想尽快走下山,我们需要朝什么方向?
如果我们站在山坡上的某一点,你看一下周围 ,你会发现最佳的下山方向大约是那个方向。好的,现在你在山上的新起点上,你再看看周围,然后再一次想想我应该从什么方向迈着小碎步下山? 然后你按照自己的判断又迈出一步,往那个方向走了一步。然后重复上面的步骤,从这个新的点,你环顾四周并决定从什么方向将会最快下山,然后又迈进了一小步,又是一小步…并依此类推,直到你接近局部最低点的位置。
此外这种下降有一个有趣的特点,不同的起始点开始进行梯度下降算法,你会得到一个非常不同的局部最优解,这就是梯度下降算法的一个特点。
梯度下降算法
梯度下降算法公式如上图所示。在梯度下降算法中,我们需要同时更新 θ0 和 θ1。
如果α过小,梯度下降可能很慢;如果过大,梯度下降有可能迈过最小点,导致收敛失败而分散。
如果参数已经处于局部最低点,即使α 保持不变,梯度下降也已收敛到局部最低点。
梯度下降一步后,新的导数会变小一点点。随着梯度下降法的运行,移动的幅度会自动变得越来越小,直到最终移动幅度非常小,便已收敛到局部极小值。
在梯度下降算法中,当接近局部最低点时,梯度下降法会自动采取更小的幅度。这是因为接近局部最低点(导数等于零)时,导数值会自动变得越来越小,所以梯度下降将自动采取较小的幅度,这就是梯度下降的做法,所以实际上没有必要再另外减小α。
梯度下降算法应用于线性回归模型:
可以看出,用于线性回归的代价函数总是呈现一个弓形,即凸函数。凸函数没有任何局部最优解,只有一个全局最优解。
目前我们所介绍的梯度下降,是批量梯度下降,就是说在梯度下降的每一步中我们都用到了所有的训练样本。在每一个单独的梯度下降中,我们都要对所有训练样本的微分求导项进行求和,这项需要对所有m个训练样本求和。
- 【机器学习】Andrew Ng——02单变量线性回归
- Andrew Ng机器学习之二 单变量线性回归
- Andrew NG 机器学习 笔记-week1-单变量线性回归
- Andrew NG机器学习课程笔记系列之——机器学习之单变量线性回归(Linear Regression with One Variable)
- 机器学习 Machine Learning(by Andrew Ng)----第二章 单变量线性回归(Linear Regression with One Variable)
- 【机器学习】Andrew Ng——04多变量线性回归
- 【转载】Andrew Ng机器学习公开课笔记 — 线性回归和梯度下降
- Andrew Ng机器学习公开课笔记 — 线性回归和梯度下降
- Andrew NG机器学习课程笔记系列之——机器学习之多变量线性回归(Linear Regression with multiple variables)
- 机器学习课程笔记-andrew ng 多参数线性回归
- Andrew Ng 机器学习(2.1)--线性回归--原理
- Andrew Ng机器学习之三 多变量线性回归
- Andrew NG 机器学习 笔记-week2-多变量线性回归
- Andrew NG机器学习线性回归编程作业
- Andrew Ng机器学习笔记week1 线性回归
- Andrew Ng机器学习笔记week2 多变量线性回归
- Andrew Ng机器学习笔记ex1 线性回归
- 机器学习入门——单变量线性回归
- poj_1611_并查集 题解记录
- kylin安装及配置
- Mybatis --- 映射文件、参数处理、参数值的获取、select元素
- rabbitmq队列模式
- 网页设计排版中哪些元素最重要?
- 【机器学习】Andrew Ng——02单变量线性回归
- Docker Private Registry搭建(三)
- arguments.callee使用
- MyBatis Generator 自动化生成代码工具
- sprintf的用法
- C语言(Head First C)-8:高级函数:函数指针 qsort() 可变参数函数
- 自学编程之路——位运算
- javascript中的函数
- 屏蔽鼠标右键