机器学习(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 ... ... .. 上表中面积和房间个数是输入参数,价格是所要输出的解.面…
在求解算法的模型函数时,常用到梯度下降(Gradient Descent)和最小二乘法,下面讨论梯度下降的线性模型(linear model). 1.问题引入 给定一组训练集合(training set)yi,i = 1,2,...,m,引入学习算法参数(parameters of learning algorithm)θ1,θ2,.....,θn,构造假设函数(hypothesis function)h(x)如下: 定义x0 = 1,则假设函数h(x)也可以记为以下形式: 这里xi(i = 1…
梯度下降法是一个最优化算法,通常也称为最速下降法.最速下降法是求解无约束优化问题最简单和最古老的方法之一,虽然现在已经不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的.最速下降法是用负梯度方向为搜索方向的,最速下降法越接近目标值,步长越小,前进越慢. 中文名 梯度下降 外文名 steepest descent (gradient descent) 用于 求解非线性方程组 类型 最优化算法 目录 1 简介 2 求解过程 3 例子 4 缺点 简介 梯度下降法(gradient de…
版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在verycd可下载,可惜没有翻译.不过还是可以看.另外一个是prml-pattern recogni…
一直以来都以为自己对一些算法已经理解了,直到最近才发现,梯度下降都理解的不好. 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,现在来看通过梯度下降…
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,现在来看通过梯度下降法来自动找到最优解,对于上述待优化问题,下图给出其三维图像,可见要找到最优解,就…
首先,我们继续上一篇文章中的例子,在这里我们增加一个特征,也即卧室数量,如下表格所示: 因为在上一篇中引入了一些符号,所以这里再次补充说明一下: x‘s:在这里是一个二维的向量,例如:x1(i)第i间房子的大小(Living area),x2(i)表示的是第i间房子的卧室数量(bedrooms). 在我们设计算法的时候,选取哪些特征这个问题往往是取决于我们个人的,只要能对算法有利,尽量选取. 对于假设函数,这里我们用一个线性方程(在后面我们会说到运用更复杂的假设函数):hΘ(x) = Θ0+Θ1…
本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在verycd可下载,可惜没有翻译.不过还是可以看.另外一个是prml-pattern recognition a…
1.用梯度下降算法来训练或者学习训练集上的参数w和b,如下所示,第一行是logistic回归算法,第二行是成本函数J,它被定义为1/m的损失函数之和,损失函数可以衡量你的算法的效果,每一个训练样例都输出y,把它和基本真值标签y进行比较 右边展示了完整的公式,成本函数衡量了参数w和b在训练集上的效果.要找到合适的w和b,就很自然的想到,使得成本函数J(w,b)尽可能小的w和b 2.接下来看看梯度下降算法,下图中的横轴表示空间参数w和b,在实践中,w可以是更高维的,但是为了绘图的方便,我们让w是一个…
梯度下降法 不是一个机器学习算法 是一种基于搜索的最优化方法 作用:最小化一个损失函数 梯度上升法:最大化一个效用函数 举个栗子 直线方程:导数代表斜率 曲线方程:导数代表切线斜率 导数可以代表方向,对应J增大的方向.对于蓝点,斜率为负,西塔减少时J增加,西塔增加时J减少,我们想让J减小,对应导数的负方向,因此前面需要加上负号. (伊塔对应步长)-------(1) 用当前点的西塔加上(1)式,得到新的西塔.因为导数是负值,前面又有负号,所以整个是正值,加上一个正值对应西塔在增大. 多维函数中,…
最陡下降法(steepest descent method)又称梯度下降法(英语:Gradient descent)是一个一阶最优化算法. 函数值下降最快的方向是什么?沿负梯度方向  d=−gk…
梯度下降法作为一种反向传播算法最早在上世纪由geoffrey hinton等人提出并被广泛接受.最早GD由很多研究团队各自发表,可他们大多无人问津,而hinton做的研究完整表述了GD方法,同时hinton为自己的研究多次走动人际关系使得其论文出现在了当时的<nature>上,从此GD开始得到业界的关注.这为后面各种改进版GD的出现与21世纪深度学习的大爆发奠定了最重要的基础. PART1:original版的梯度下降法 首先已经有了 对weights和bias初始化过的神经网络计算图,也有一…
1.我们之前已经定义了代价函数J,可以将代价函数J最小化的方法,梯度下降是最常用的算法,它不仅仅用在线性回归上,还被应用在机器学习的众多领域中,在后续的课程中,我们将使用梯度下降算法最小化其他函数,而不仅仅是最小化线性回归的代价函数J.本节课中,主要讲用梯度下降的算法来最小化任意的函数J,下图是我们的问题: (1)梯度下降的思路: 给定θ0和θ1的初始值,首先将θ0和θ1初始化为0,在梯度下降中我们要做的是不停的改变θ0和θ1,来使得J(θ0,θ1)变小,直到我们找到J的值的最小值或者局部最小值…
在此记录使用matlab作梯度下降法(GD)求函数极值的一个例子: 问题设定: 1. 我们有一个$n$个数据点,每个数据点是一个$d$维的向量,向量组成一个data矩阵$\mathbf{X}\in \mathbb{R}^{n\times d}$,这是我们的输入特征矩阵. 2. 我们有一个响应的响应向量$\mathbf{y}\in \mathbb{R}^n$. 3. 我们将使用线性模型来fit上述数据.因此我们将优化问题形式化成如下形式:$$\arg\min_{\mathbf{w}}f(\math…
一.简介 cost fuction是用来判断机器预算值和实际值得误差,一般来说训练机器学习的目的就是希望将这个cost function减到最小.本文会介绍如何找到这个最小值. 二.线性回归的cost function 假设现在有个一元一次方程式 h(x) = wx + b,要用来预测实际值y, 今天我输入了一组(x0, x1, x2......xm)and(y0, y1, y2, y3.......ym),那cost function = [(h(x0) - y0)**2 +......(h(…
梯度下降 Gradient Descent 梯度下降是一种迭代法(与最小二乘法不同),目标是解决最优化问题:\({\theta}^* = arg min_{\theta} L({\theta})\),其中\({\theta}\)是一个向量,梯度是偏微分. 为了让梯度下降达到更好的效果,有以下这些Tips: 1.调整学习率 梯度下降的过程,应当在刚开始的时候,应该步长大一些,以便更快迭代,当靠近目标时,步长调小一些. 虽然式子中的微分有这个效果,但同时改变一下学习率的值,可以很大程度加速这个过程.…
回归(Regression) 在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如locally weighted回归,logistic回归,等等. 用一个很简单的例子来说明回归,这个例子来自很多的地方,比如说weka.大概就是,做一个房屋价值的评估系统,一个房屋的价值来自很多地方,比如说面积.房间的数量(几室几厅).地段.朝向等等,这些影响房屋价值的变量被称为特征(feature),fe…
随着所学算法的增多,加之使用次数的增多,不时对之前所学的算法有新的理解.这篇博文是在2018年4月17日再次编辑,将之前的3篇博文合并为一篇. 1.Problem and Loss Function 首先,Linear Regression是一种Supervised Learning,有input X,有输出label y.X可以是一维数据,也可以数多维的,因为我们用矩阵来计算,所以对公式和算法都没有影响.我们期望X经过一个算法hθ(X)=θTX后,得到的结果尽可能接近label y.但在初始状…
概述   梯度下降法(Gradient Descent)是一个算法,但不是像多元线性回归那样是一个具体做回归任务的算法,而是一个非常通用的优化算法来帮助一些机器学习算法求解出最优解的,所谓的通用就是很多机器学习算法都是用它,甚至深度学习也是用它来求解最优解.所有优化算法的目的都是期望以最快的速度把模型参数θ求解出来,梯度下降法就是一种经典常用的优化算法. 梯度下降法的思想   思想就类比于生活中的一些事情,比如你去询问你的一个朋友工资多少,他不会告诉你,但是他会让你去猜,然后告诉你猜的结果.你每…
现代的机器学习系统均利用大量的数据,利用梯度下降算法或者相关的变体进行训练.传统上,最早出现的优化算法是SGD,之后又陆续出现了AdaGrad.RMSprop.ADAM等变体,那么这些算法之间又有哪些区别和联系呢?本文试图对比的介绍目前常用的基于一阶梯度的优化算法,并给出它们的(PyTorch)实现. SGD 算法描述 随机梯度下降法(Stochastic Gradient Descent,SGD)是对传统的梯度下降算法(Gradient Descent,GD)进行的一种改进.在应用GD时,我们…
在Batch Gradient Descent及Mini-batch Gradient Descent, Stochastic Gradient Descent(SGD)算法中,每一步优化相对于之前的操作,都是独立的.每一次迭代开始,算法都要根据更新后的Cost Function来计算梯度,并用该梯度来做Gradient Descent. Momentum以及Nestrov Momentum相较于前三种算法,虽然也会根据Cost Function来计算当前的梯度,但是却不直接用此梯度去做Grad…
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share 项目合作联系QQ:231469242 http://scikit-learn.org/stable/modules/sgd.html Stochasti…
最近开始学习Coursera上的斯坦福机器学习视频,我是刚刚接触机器学习,对此比较感兴趣:准备将我的学习笔记写下来, 作为我每天学习的签到吧,也希望和各位朋友交流学习. 这一系列的博客,我会不定期的更新,希望大家多多批评指正. Supervised Learning(监督学习) 在监督学习中,我们的数据集包括了算法的输出结果,比如具体的类别(分类问题)或数值(回归问题),输入和输出存在某种对应关系. 监督学习大致可分为回归(classification)和分类(regression). 回归:对…
梯度下降算法和线性回归算法比较如图: 对我们之前的线性回归问题运用梯度下降法,关键在于求出代价函数的导数,即: 我们刚刚使用的算法,有时也称为批量梯度下降.实际上,在机器学习中,通常不太会给算法起名字,但这个名字”批量梯度下降”,指的是在梯度下降的每一步中,我们都用到了所有的训练样本,在梯度下降中,在计算微分求导项时,我们需要进行求和运算,所以,在每一个单独的梯度下降中,我们最终都要计算这样一个东西,这个项需要对所有…
在之前的学习中,我们给出了一个数学上关于梯度下降的定义,本次视频我们更深入研究一下,更直观地感受一下这个算法是做什么的,以及梯度下降算法的更新过程有什么意义.梯度下降算法如下: 描述:对…
本章节主要讲怎么确定梯度下降的工作是正确的,第二是怎么选择学习率α,如下图所示: 上图显示的是梯度下降算法迭代过程中的代价函数j(θ)的值,横轴是迭代步数,纵轴是j(θ)的值 如果梯度算法正常工作,那么每一步迭代之后,那么j(θ)值应该是每一次迭代后都会相应降低,曲线的用处在于告诉你迭代到哪一步之后,已经收敛了,比如上图迭代到400次之后,j(θ)值基本就收敛了,因为迭代函数并没有随着迭代次数降低. 另外一个方法,叫自动收敛测试,也可以很好的判断梯度下降是否已经达到了收敛,比如j(θ)值在每一步…
以房屋价格为例,假设有两个特征向量:X1:房子大小(1-2000 feets), X2:卧室数量(1-5) 关于这两个特征向量的代价函数如下图所示: 从上图可以看出,代价函数是一个又瘦又高的椭圆形轮廓图,如果用这个代价函数来运行梯度下降的话,得到最终的梯度值,可能需要花费很长的时间,甚至可能来回震动,最终才能收敛到全局最小值.为了减少梯度下来花费的时间,最好的办法就是对特征向量进行缩放(feature scaling). 特征向量缩放(feature scaling):具体来说,还是以上面的房屋…
梯度下降(GD)是最小化风险函数.损失函数的一种常用方法,随机梯度下降和批量梯度下降是两种迭代求解思路,下面从公式和实现的角度对两者进行分析,如有哪个方面写的不对,希望网友纠正. 下面的h(x)是要拟合的函数,J(theta)损失函数,theta是参数,要迭代求解的值,theta求解出来了那最终要拟合的函数h(theta)就出来了.其中m是训练集的记录条数,i是参数的个数. 1.批量梯度下降的求解思路如下: (1)将J(theta)对theta求偏导,得到每个theta对应的的梯度 (2)由于是…
在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法.这里就对梯度下降法做一个完整的总结. 1. 梯度 在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度.比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,简称grad f(x,y)或者▽f(x,y).对于在点(x0,y0)的具体梯度向量就是(∂f/∂x0, ∂f/∂…
机器学习基础--梯度下降法(Gradient Descent) 看了coursea的机器学习课,知道了梯度下降法.一开始只是对其做了下简单的了解.随着内容的深入,发现梯度下降法在很多算法中都用的到,除了之前看到的用来处理线性模型,还有BP神经网络等.于是就有了这篇文章. 本文主要讲了梯度下降法的两种迭代思路,随机梯度下降(Stochastic gradient descent)和批量梯度下降(Batch gradient descent).以及他们在python中的实现. 梯度下降法 梯度下降是…