码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习(1)之梯度下降(gradient descent)

时间:2014-09-06 01:00:52      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   io   使用   ar   2014   div   

机器学习(1)之梯度下降(gradient descent)

题记:最近零碎的时间都在学习Andrew Ng的machine learning,因此就有了这些笔记。

 

梯度下降是线性回归的一种(Linear Regression),首先给出一个关于房屋的经典例子,

面积(feet2) 房间个数 价格(1000$)
2104 3 400
1600 3 330
2400 3 369
1416 2 232
3000 4 540
... ... ..

 

上表中面积和房间个数是输入参数,价格是所要输出的解。面积和房间个数分别表示一个特征,用X表示。价格用Y表示。表格的一行表示一个样本。现在要做的是根据这些样本来预测其他面积和房间个数对应的价格。可以用以下图来表示,即给定一个训练集合,学习函数h,使得h(x)能符合结果Y。

bubuko.com,布布扣

 

可以用以下式子表示一个样本:

 bubuko.com,布布扣

θ表示X映射成Y的权重,x表示一次特征。假设x0=1,上式就可以写成:

bubuko.com,布布扣

分别使用x(j),y(j)表示第J个样本。我们计算的目的是为了让计算的值无限接近真实值y,即代价函数可以采用LMS算法

bubuko.com,布布扣

bubuko.com,布布扣

要获取J(θ)最小,即对J(θ)进行求导且为零:

bubuko.com,布布扣

当单个特征值时,上式中j表示系数(权重)的编号,右边的值赋值给左边θj从而完成一次迭代。

bubuko.com,布布扣

单个特征的迭代如下:

bubuko.com,布布扣

多个特征的迭代如下:

bubuko.com,布布扣

上式就是批梯度下降算法(batch gradient descent),当上式收敛时则退出迭代,何为收敛,即前后两次迭代的值不再发生变化了。一般情况下,会设置一个具体的参数,当前后两次迭代差值小于该参数时候结束迭代。注意以下几点:

(1) a 即learning rate,决定的下降步伐,如果太小,则找到函数最小值的速度就很慢,如果太大,则可能会出现overshoot the minimum的现象;
 
(2) 初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;
 
(3) 越接近最小值时,下降速度越慢;
 
批梯度下降算法的步骤可以归纳为以下几步:
 
(1)先确定向下一步的步伐大小,我们称为Learning rate ;
(2)任意给定一个初始值:θ向量,一般为0向量
(3)确定一个向下的方向,并向下走预先规定的步伐,并更新θ向量
(4)当下降的高度小于某个定义的值,则停止下降;

 

机器学习(1)之梯度下降(gradient descent)

标签:des   style   blog   http   io   使用   ar   2014   div   

原文地址:http://www.cnblogs.com/rcfeng/p/3958926.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!