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都可以求出一个梯度的方向,我们就可以找到一个整体的方向,这个方向就是下降最快的方向。

上面的算法中,需要循环操作的有两个部分:一个是要遍历所有训练样本;另一个是对于每个训练样本,都要遍历向量θ的每一维,以得到整体的下降最快的方向。

随机梯度下降法:

可以用下面的伪代码表示随机梯度下降法的原理

最小二乘拟合法:

为了能进行下面的公式推导,需要有下面一些知识预备:

公式推导过程:


0 0
原创粉丝点击