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

机器学习(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。

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

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

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

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

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

单个特征的迭代如下:

多个特征的迭代如下:

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

(1) a 即learning rate,决定的下降步伐,如果太小,则找到函数最小值的速度就很慢,如果太大,则可能会出现overshoot the minimum的现象;

(2) 初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;

(3) 越接近最小值时,下降速度越慢;

批梯度下降算法的步骤可以归纳为以下几步:

(1)先确定向下一步的步伐大小,我们称为Learning rate ;

(2)任意给定一个初始值:θ向量,一般为0向量

(3)确定一个向下的方向,并向下走预先规定的步伐,并更新θ向量

(4)当下降的高度小于某个定义的值,则停止下降;

时间: 2024-08-10 02:09:07

机器学习(1)之梯度下降(gradient descent)的相关文章

机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

机器学习中的数学(1)-回归(regression).梯度下降(gradient descent) 版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在

机器学习中的数学-回归(regression)、梯度下降(gradient descent)<1>

机器学习中的数学(1)-回归(regression).梯度下降(gradient descent) 版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在

(转)机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在verycd可下载,可惜没有翻译.不过还是可以看.另外一个是prml-pattern recogni

梯度下降(Gradient descent)

首先,我们继续上一篇文章中的例子,在这里我们增加一个特征,也即卧室数量,如下表格所示: 因为在上一篇中引入了一些符号,所以这里再次补充说明一下: x‘s:在这里是一个二维的向量,例如:x1(i)第i间房子的大小(Living area),x2(i)表示的是第i间房子的卧室数量(bedrooms). 在我们设计算法的时候,选取哪些特征这个问题往往是取决于我们个人的,只要能对算法有利,尽量选取. 对于假设函数,这里我们用一个线性方程(在后面我们会说到运用更复杂的假设函数):hΘ(x) = Θ0+Θ1

(二)深入梯度下降(Gradient Descent)算法

一直以来都以为自己对一些算法已经理解了,直到最近才发现,梯度下降都理解的不好. 1 问题的引出 对于上篇中讲到的线性回归,先化一个为一个特征θ1,θ0为偏置项,最后列出的误差函数如下图所示: 手动求解 目标是优化J(θ1),得到其最小化,下图中的×为y(i),下面给出TrainSet,{(1,1),(2,2),(3,3)}通过手动寻找来找到最优解,由图可见当θ1取1时,与y(i)完全重合,J(θ1) = 0 下面是θ1的取值与对应的J(θ1)变化情况 由此可见,最优解即为0,现在来看通过梯度下降

机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradient Decent)

最近在Coursera上看吴大神的Machine Learning,感觉讲的真的很棒.所以觉得应该要好好做做笔记,一方面是加强自己对ML中一些方法的掌握程度和理解,另一方面也能方便自己或者同样爱好ML的同学. 线性回归(Linear Regression) 线性回归(Linear Regression)应该是机器学习中最基本的东西了.所谓回归,想必大家在高中时期的课程里面就接触过,给定一系列离散的点(x0,y0),求一条直线 f(x)=ax+b 以使得最小.在machine learning 中

梯度下降法Gradient Descent

梯度下降法: 应用:求线性回归方程的系数 目标:最小化损失函数 (损失函数定义为残差的平方和) 搜索方向:负梯度方向,负梯度方向是下降最快的方向 #Gradient Descent 梯度下降法 # 在直接设置固定的step时,不宜设置的过大,当步长过大时会报错: # Error in while ((newerror > error) | (iter < maxiter)) { : missing value where TRUE/FALSE needed #原因是step过大,会导致在迭代过

梯度下降法Gradient descent(最速下降法Steepest Descent)

最陡下降法(steepest descent method)又称梯度下降法(英语:Gradient descent)是一个一阶最优化算法. 函数值下降最快的方向是什么?沿负梯度方向  d=−gk 原文地址:https://www.cnblogs.com/focusonoutput/p/12151198.html

讲透机器学习中的梯度下降

本文始发于个人公众号:TechFlow,原创不易,求个关注 在之前的文章当中,我们一起推导了线性回归的公式,今天我们继续来学习上次没有结束的内容. 上次我们推导完了公式的时候,曾经说过由于有许多的问题,比如最主要的复杂度问题.随着样本和特征数量的增大,通过公式求解的时间会急剧增大,并且如果特征为空,还会出现公式无法计算的情况.所以和直接公式求解相比,实际当中更倾向于使用另外一种方法来代替,它就是今天这篇文章的主角--梯度下降法. 梯度下降法可以说是机器学习和深度学习当中最重要的方法,可以说是没有