机器学习数学基础- gradient descent算法(下)

Gradient Descent算法

续上文。

gradient descent的用途:

可以用于求解一个函数f(x1,x2,......xn)的local 最小值。

关于local最小值:

一个函数可能有多个local最小值,所谓local最小值是当给定(x1,x2,......xn)的某一个实例,如果在该实例的无限小的附近的任何一个实例的f值都大于该实例的f值,那么该实例所对应的就是f的一个local最小值。

gradient descent算法求解local最小值的方法如下:

任意给定(x1,x2,......xn)的一个实例,简写为x?,那么将x?朝着?f(x?)(注:是一个n维向量)的反向方向移动一个足够小的值,得到x??r?f(x?),其中r是一个足够小的数值,会使得f(x??r?f(x?))的值比f(x?)一定会更小。通过这种方法不断的迭代计算新的x的值,最终能得到local的最小值。

如果回想函数的gradient的定义,就能自然的理解gradient descent算法:

gradient反映的是因变量对自变量的变化的敏感性以及正负相关性,这里我们利用的是正负相关性,也就是说当?f(x?)为正时,说明当x从x?向负向移动一个足够小的值时,f的值会减小;并且,当?f(x?)为负时,说明当x从x?向正向移动一个足够小的值时,f的值会减小。因此,只要将x从x?朝着?f(x?)的反向方向移动一个足够小的值,就会导致f值减小。

如果还不能理解这段话,说明应该回过头去再好好理解下gradient的基本概念了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-01 02:22:18

机器学习数学基础- gradient descent算法(下)的相关文章

机器学习数学基础- gradient descent算法(上)

为什么要了解点数学基础 学习大数据分布式计算时多少会涉及到机器学习的算法,所以理解一些机器学习基础,有助于理解大数据分布式计算系统(例如spark)的设计.机器学习中一个常见的就是gradient descent算法,是线性回归问题的一个基础算法.gradient是数学概念. Gradient 假设一个函数有n个自变量:f(x1,x2......xn),且每个x都是标量值,那么该函数的gradient就是一个n维的向量函数,每个component是f函数针对xi的partial derivati

(二)深入梯度下降(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,现在来看通过梯度下降

梯度下降(Gradient descent)

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

机器学习(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 ... ... .. 上表中面积和房间个数是输入参数,价格是所要输出的解.面

机器学习中的数学(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公开课,在

梯度下降(Gradient Descent)小结

在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(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/?

[NN] Stochastic Gradient Descent - SAG & SVRG

solver : {‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’}, default: ‘liblinear’ Algorithm to use in the optimization problem. For small datasets, ‘liblinear’ is a good choice, whereas ‘sag’ is faster for large ones. For multiclass problems, only ‘newton-cg

机器学习常见的最优化算法

1. 梯度下降法(Gradient Descent) 梯度下降法是最早最简单,也是最为常用的最优化方法.梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解.一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的.梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“.最速下降法越接近目标值,步长越小,前进越慢. 在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法