2 Linear Regression, Gradient descent

来源:互联网 发布:女生袜子知乎 编辑:程序博客网 时间:2024/05/01 15:20

本学习笔记参考自Andrew的机器学习课程(点此打开), 内容来自视频以及其讲义, 部分内容引用网友的学习笔记,会特别注明


本集课程内容


1.线性回归 Linear Regression
2.梯度下降 Gradient descent
3.正规方程组 the normal equations

问题引入


课程开始介绍了一个自动驾驶的例子,里面所用到的算法就是有监督的学习(驾驶员提供正确的答案供汽车开始学习),其实这是一个回归问题,因为该算法输出代表着汽车的方向,是一个连续值。本集课程所用的例子仍然是第一节课所讲的房价与面积的例子,数据表如下:


我们先简化问题,根据数据只在坐标轴做出price—area的图像,大概如下:



那么现在引出的问题:给你一组训练数据,你如何来预测房子的面积与价格的之间的关系呢?这也是本集要解决的问题
上面例子所用到的符号如下:
m:表示训练样本的数目,即上面数据表的行数
x:表示输入变量,也称为特征,上面的例子的x = (area, bedrooms)
n:表示特征的数量,这里即n = 2
y:表示输出变量,也称目标变量,这里y就是price
(x, y):表示一组训练样本
:表示第i组样本

监督学习的过程描述




线性回归


所谓线性回归即在上述监督学习描述过程中的y与x的关系是线性的,用数学描述如下:


其中x1, x2表示输入向量x的分量,这里的x1=area, x2=bedrooms

为了便于整理公式,我们令x0 = 1,所以可变换为


这样可以用求和的记号更加方便的表示如下


n表示特征的数目,如果这里的n = 2,公式更一般的可以写为:


这里的θ被称为该学习算法的参数,我们的目的也是通过线性关系这个假设,利用训练样本求得θ

为了能够找到参数θ,我们需要一个衡量h的函数,来表明在某个参数为θ时这个线性回归模型的好坏,用下面的误差函数来刻画:


由于为了后面求偏导时候把指数掉下来的2给抵消掉,所以在前面乘了一个1/2。很明显的是当J(θ)最小时,总误差最小,这时的模型效果最好,即



要使这个J(θ)最小,本集介绍了两种方法,第一种是梯度下降法, 第二种是最小二乘法


梯度下降法


度下降法也是一种搜索方法,它的基本步骤如下:
1.初始化θ
2.不断的改变θ,使得函数值不断减小
其中θ参数的调整方式如下,阿尔法表示学习速度:

下面假设我们的样本只有一组,也就是m = 1, 可以推导上述的参数调整公式为:


同理,很容易计算,当样本有m组时,调整参数的表达式:


对这个例子来说误差函数在三维图形上是碗状的,只有全局的最优值,所以最后一定会收敛。

让其迭代的更新方式这里介绍的有两种,第一种是批梯度下降(batch  gradient descent), 另一种是随机梯度下降的算法,有时也叫增量梯度下降[ stochastic gradient descent (also incremental  gradient descent)]

批梯度下降


批梯度处理的迭代方式是要更新某一个参数时,需要把所有训练样本都计算一次求得误差后才更新。这种方式是比较慢的,因为当m的值很大时,在没有更新一个参数前,可能计算所有样本的误差就花费了很久的时间了。

增量梯度下降



增量梯度下降是每计算一个训练样本的误差时,就对参数更新一次。所以增量梯度下降一个好处就是为了开始学习,只需要检查一个样本就能够开始更新参数,一般而言,训练集比较大的情况,增量梯度下降比批梯度下降要快。增量梯度处理的一个缺点就是不会精确的收敛到全局最优值,它可能会在全局最优值周围徘徊,能够得到很接近全局最优值的参数。对于这类的最小二乘回归问题,还有一种能够直接给出答案的解法。

最小二乘法

最小二乘法也叫最小平方法,这个名字好像是来源于日语,二乘就是平方的意思。前面介绍的梯度下降和这里的最小二乘目标都是一致的,但是梯度下降是迭代算法,是对最优值进行搜索得到的,而最小二乘是直接计算出最优结果。这里的推导见课件,里面定义了对矩阵求导的符号,结果如下:





0 0
原创粉丝点击