Andrew Ng机器学习笔记2——梯度下降法and最小二乘拟合
来源:互联网 发布:开票软件怎么重装 编辑:程序博客网 时间:2024/04/30 07:21
今天正式开始学习机器学习的算法,老师首先举了一个实例:已知某地区的房屋面积与价格的一个数据集,那么如何预测给定房屋面积的价格呢?我们大部分人可以想到的就是将画出房屋面积与价格的散点图,然后拟合出价格关于面积的曲线,那么对于一个已知的房屋面积,就可以在拟合的曲线上得到预测的价格。这个问题就是回归。
要想用数学方法解决这一问题,肯定得定义一堆符号来描述问题啦,下面是符号定义:
符号定义完了,来看看我们究竟需要解决什么问题:
先找到一个训练样本集合,提供给学习算法,算法之后会生成一个输出函数,我们用h(假设)表示这个函数,这个函数的任务就是:接受一个输入,并输出一个对真实值的估计(output estimates),也就是将输入映射到估计。接下来需要决定如何表示这个假设,为了方便分析,将价格关于房屋面积的关系假设为线性关系,这时就是一个线性回归问题啦~
基于上述描述可以知道,我们需要选取合适的θ,使得给定一个输入x,假设函数h可以很好的估计真实值y。当样本数目为m时,这一问题就可以表示为:
为了在以后求导时可以约去2,通常给上式乘以一个1/2,这时,要求解的问题就可以用下式表示:
关于如何求出使得目标函数最小的θ,老师讲了两种方法:最小二乘法和梯度下降法。
首先介绍梯度下降法:
如图,假设你站在十字星号标识的这一点上,360度环视一周,然后问你自己,如果只走一小步,那么往哪个方向走能使我下山最快?梯度下降算法就是这样工作的,走的方向实际上就是梯度方向。直到走到了一个函数局部最小值。这时,回到最初的十字星号标识的点上,在这一点附近选择一个稍微偏右上的一个点,继续走又会遇到一个局部最小值。——梯度下降算法有时会依赖于参数初始值。
Question:
—如何360度环视一周,找到下降最快的方向?
—实际上并没有环视一周,只需要计算出函数的偏导数,因为求最小值,所以梯度方向是偏导数的反方向。
对于上面提到的问题:首先给定θ一个初始值,有了θ的初始值,就可以得到初始的假设h函数(因为h函数与输入样本的特征和θ有关),也就得到了初始的输出关于输入的关系函数,那么,对于每一个训练样本,都能计算出估计值与真实值的偏差的平方和,累加,就得到当前的目标函数值;其次,给θ赋新值,这一新值是在原来的θ基础上减去函数在那一点的梯度得到的,再次计算目标函数值,不断迭代这一过程,直至目标函数取得局部最小值。下面介绍公式推导过程:
首先介绍只有一组训练样本的情况:
推广到训练样本有m组(m>1)时:
对于向量θ,向量的维数等于样本特征的维数,每一维分量θi都可以求出一个梯度的方向,我们就可以找到一个整体的方向,这个方向就是下降最快的方向。
上面的算法中,需要循环操作的有两个部分:一个是要遍历所有训练样本;另一个是对于每个训练样本,都要遍历向量θ的每一维,以得到整体的下降最快的方向。
随机梯度下降法:
可以用下面的伪代码表示随机梯度下降法的原理
最小二乘拟合法:
为了能进行下面的公式推导,需要有下面一些知识预备:
公式推导过程:
- Andrew Ng机器学习笔记2——梯度下降法and最小二乘拟合
- 斯坦福大学机器学习公开课, 梯度下降算法,随机梯度下降算法,最小二乘拟合法总结以及证明
- Andrew Ng机器学习笔记(一):梯度下降法
- 监督学习之梯度下降——Andrew Ng机器学习笔记(一)
- 【转载】Andrew Ng机器学习公开课笔记 — 线性回归和梯度下降
- Andrew Ng机器学习公开课笔记 — 线性回归和梯度下降
- Andrew Ng机器学习课程笔记--week10--优化梯度下降
- Andrew NG 机器学习听课笔记(2)——过学习与欠学习,最小二乘的概率意义、logistic回归
- Andrew NG 机器学习听课笔记(2)——过学习与欠学习,最小二乘的概率意义、logistic回归
- 【机器学习入门】Andrew NG《Machine Learning》课程笔记之二 :基本概念、代价函数、梯度下降和线性回归
- 斯坦福机器学习: 网易公开课系列笔记(二)——线性回归、梯度下降算法和最小二乘公式
- 斯坦福大学公开课机器学习课程(Andrew Ng)二监督学习应用 梯度下降
- Andrew Ng 机器学习 第一课 监督学习应用.梯度下降 笔记
- 线性回归、梯度下降 - Andrew Ng机器学习公开课笔记1.1
- Andrew Ng机器学习笔记+Weka相关算法实现(一)梯度下降与回归方法
- Coursera 机器学习(by Andrew Ng)课程学习笔记(一)——简单的线性回归模型和梯度下降
- 最小二乘与梯度下降法
- Stanford机器学习课程(Andrew Ng) Week 1 Parameter Learning --- 梯度下降法
- AndroidBucket Android开发常用整理
- ListView中Button的点击事件冲突
- jQuery1.72 内存泄露追踪(附解决方案)
- background
- 剑指offer(23):栈的压入、弹出序列
- Andrew Ng机器学习笔记2——梯度下降法and最小二乘拟合
- 开发一定要买台苹果电脑,最好是苹果笔记本
- Android中Activity和Fragment页面跳转
- BFS-BZOJ-1627-[Usaco2007 Dec]穿越泥地
- Linux SVN启动和关闭
- svn“作为新项目检出,并使用新建项目向导进行配置”和“做为工作空间中的项目检出”的区别?
- think in java 中的混型和多返回值
- c语言指针知识(1)
- ImageView内存清理