导航:首页 > 源码编译 > 梯度算法步长

梯度算法步长

发布时间:2022-10-29 09:03:42

① 梯度下降法原理和步骤

一、梯度法思想
梯度法思想的三要素:出发点、下降方向、下降步长。
机器学习中常用的权重更新表达式为
:,这里的λ就是学习率,本文从这个式子出发来把机器学习中的各种“梯度”下降法阐释清楚。
机器学习目标函数,一般都是凸函数,什么叫凸函数?限于篇幅,我们不做很深的展开,在这儿我们做一个形象的比喻,凸函数求解问题,可以把目标损失函数想象成一口锅,来找到这个锅的锅底。非常直观的想法就是,我们沿着初始某个点的函数的梯度方向往下走(即梯度下降)。在这儿,我们再作个形象的类比,如果把这个走法类比为力,那么完整的三要素就是步长(走多少)、方向、出发点,这样形象的比喻,让我们对梯度问题的解决豁然开朗,出发点很重要,是初始化时重点要考虑的,而方向、步长就是关键。事实上不同梯度的不同就在于这两点的不同!
梯度方向是

,步长设为常数Δ,这时就会发现,如果用在梯度较大的时候,离最优解比较远,W的更新比较快;然而到了梯度较小的时候,也就是较靠近最优解的时候,W的更新竟然也保持着跟原来一样的速率,这样会导致W很容易更新过度反而远离了最优解,进而出现在最优解附近来回震荡。所以,既然在远离最优解的时候梯度大,在靠近最优解的时候梯度小,我们让步长随着这个律动,于是我我们就用λ|W|来代替Δ,最后得到了我们熟悉的式子:

所以说这时的λ是随着坡度的陡缓而变化的,别看它是个常数。
二、全量梯度下降法(Batch gradient descent)
全量梯度下降法每次学习都使用整个训练集,因此每次更新都会朝着正确的方向进行,最后能够保证收敛于极值点,凸函数收敛于全局极值点,非凸函数可能会收敛于局部极值点,缺陷就是学习时间太长,消耗大量内存。
第二、随机梯度下降法(Stochastic Gradient Descent)
SGD一轮迭代只用一条随机选取的数据,尽管SGD的迭代次数比BGD大很多,但一次学习时间非常快。
SGD的缺点在于每次更新可能并不会按照正确的方向进行,参数更新具有高方差,从而导致损失函数剧烈波动。不过,如果目标函数有盆地区域,SGD会使优化的方向从当前的局部极小值点跳到另一个更好的局部极小值点,这样对于非凸函数,可能最终收敛于一个较好的局部极值点,甚至全局极值点。
缺点是,出现损失函数波动,并且无法判断是否收敛。

② 什么是梯度法为什么在接近目标函数的极值点时,梯度法的收敛速度会变慢

梯度下降法是一个最优化算法,通常也称为最速下降法。最速下降法是求解无约束优化问题最简单和最古老的方法之一,虽然现在已经不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的。最速下降法是用负梯度方向为搜索方向的,最速下降法越接近目标值,步长越小,前进越慢。

③ 梯度的计算公式是什么

梯度的计算公式:gra=aₓ(∂u/∂x)+aᵧ(∂u/∂y)+az(∂u/∂z)

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。

(3)梯度算法步长扩展阅读:

在向量微积分中,标量场的梯度是一个向量场。标量场中某一点上的梯度指向标量场增长最快的方向,梯度的长度是这个最大的变化率。更严格的说,从欧几里得空间Rn到R的函数的梯度是在Rn某一点最佳的线性近似。在这个意义上,梯度是雅可比矩阵的特殊情况。

在单变量的实值函数的情况,梯度只是导数,或者,对于一个线性函数,也就是线的斜率。

④ 梯度下降法的步长到底怎么确定

梯度下降法的搜索方向顾名思义就是梯度方向,也就是当前点所在地形最陡峭的下降方向(你这个图里面只有左右两个方向)。


步长的选择要看函数的性质,一般可导函数,只要步长足够小,则保证每次函数值都不会增加,此外:

  1. 如果函数可导,且函数的梯度满足李普希兹连续(常数为L),若以小于 的步长迭代,则能保证每次迭代的函数值都不增,则保证最终会收敛到梯度为0的点。也可以采用Line search确定步长,Line search的本质目的其实也是为了保证函数值下降(或称作不增)。

  2. 2. 如果函数还是凸的,则最终会走到最优点。

⑤ 梯度下降法是什么

梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最陡下降法,但是不该与近似积分的最陡下降法(英语:Method of steepest descent)混淆。

要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。

如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。

梯度下降算法使用当前位置的梯度迭代计算下一个点,然后对其进行缩放(按学习率)并从当前位置减去获得的值(迈出一步)。它减去该值,因为我们想要最小化函数(最大化它会增加)。

缺点

梯度下降法的缺点包括:

1、靠近局部极小值时速度减慢。

2、直线搜索可能会产生一些问题。

3、可能会“之字型”地下降。

⑥ 梯度下降法的步长到底怎么确定

自适应滤波器的收敛速度在很大程度上取决于步长因子.当步长参数较大时,滤波器收敛到稳态需要迭代次数较少,但滤波效果比步长较小时差,而且均方误差的稳态值随着步长的变大而增大;但是当步长参数较小时,收敛速度则会降低,因此只有选择合适的步长参数,才能使该滤波器的性能稳定.

⑦ 机器学习中随机梯度下降法的步长参数

梯度下降法是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小(cost函数是凸函数,比如x^2梯度就是越来越小),前进越慢。梯度下降法的搜索迭代示意图如下左图所示:图片示例了这一过程,这里假设F定义在平面上,并且函数图像是一个碗形。蓝色的曲线是等高线(水平集),即函数F为常数的集合构成的曲线。红色的箭头指向该点梯度的反方向。(一点处的梯度方向与通过该点的等高线垂直)。沿着梯度下降方向,将最终到达碗底,即函数F值最小的点。

梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。对于上面的linear regression问题,最优化问题对theta的分布是unimodal,即从图形上面看只有一个peak,所以梯度下降最终求得的是全局最优解。然而对于multimodal的问题,因为存在多个peak值,很有可能梯度下降的最终结果是局部最优。

⑧ 梯度下降的求解过程

顾名思义,梯度下降法的计算过程就是沿梯度下降的方向求解极小值(也可以沿梯度上升方向求解极大值)。
其迭代公式为 ,其中 代表梯度负方向, 表示梯度方向上的搜索步长。梯度方向我们可以通过对函数求导得到,步长的确定比较麻烦,太大了的话可能会发散,太小收敛速度又太慢。一般确定步长的方法是由线性搜索算法来确定,即把下一个点的坐标ak+1看做是的函数,然后求满足f(ak+1)的最小值的 即可。
因为一般情况下,梯度向量为0的话说明是到了一个极值点,此时梯度的幅值也为0.而采用梯度下降算法进行最优化求解时,算法迭代的终止条件是梯度向量的幅值接近0即可,可以设置个非常小的常数阈值。

⑨ 梯度法<sup>[1,6]</sup>

设地球物理数据和模型参数之间满足以下非线性关系:

d=f(m) (8.1)

其中:f表示非线性算子;d、m都是列向量。

建立如下目标函数:

φ(m)=[d-f(m)]2=min (8.2)

目标函数在模型mi处的梯度为

地球物理反演教程

梯度法的模型修改量是目标函数的负梯度:

mi+1=mi+Δmi=mi-λgi(8.4)

其中:λ为步长因子,是一个数,用来控制修改量的大小;g、m都为列向量。

下面推导λ的计算公式。

将式(8.2)目标函数φ(m)按泰勒公式展开,并略去高次项得

地球物理反演教程

将式(8.4)中的Δmi=-λgi带入式(8.5)得

地球物理反演教程

设经过修改模型后,目标函数φ(mi+1)为零,有

地球物理反演教程

由上式可推出步长因子λ的计算公式:

地球物理反演教程

给定初始模型mi后,首先计算出梯度gi,然后按式(8.8)计算步长因子,最后按式(8.4)修改模型。如果:

φ(mi+1)<φ(mi) (8.9)

则说明修正量合适,采用新模型继续迭代。否则减小λ后再计算,一般λ减小一半。

梯度法的计算过程如下:

(1)给定初始模型m0;

(2)进行正演计算;

(3)判断是否满足精度要求,是则反演结束,否则进行第(4)步;

(4)按照式(8.4)修改模型,转第(2)步。

一般反演精度采用实测数据和理论数据的相对均方差来量度。

因为目标函数的梯度就是φ值下降最快的方向,所以梯度法又称为“最速下降法”。下面用一个简单的例子来说明梯度法的原理。设有如下一维目标函数:

φ(x)=f(x) (8.10)

从图8.1可见,x0为目标函数的极小值点。g1为x1处的梯度,g2为x2处的梯度。如果初始模型为x1,模型修改量应该为正值才能使目标函数向最小值前进。从图上可知g1为负值,负梯度为正,满足修改方向。同理如果初始模型为x2,模型修改量应该为负值。从图上可知g2为正值,负梯度为负值,满足修改量为负值的要求。

图8.1 一维目标函数示意图

从这个例子容易看出即使初始模型远远偏离极小值点,只要按照负梯度方向修改模型参数,总能使目标函数达到极小值点。但是上图的极小值点只有一个,容易达到全局极小,如果目标函数具有多个极小值点,那么初始模型的选择就很关键了,选的不好容易陷入局部极小。此外在极小值点附近梯度法反演收敛的速度将会很慢。因此一般在反演的开始采用梯度法,在反演的后期采用其他收敛速度快的反演方法,如前面所介绍的最小二乘法(或称为高斯-牛顿法)。

图8.2 最小二乘法和梯度法修正方向示意图

最小二乘法和梯度法在极小值点附近的模型修正方向如图8.2所示[10]。这个图形将形象的说明为何梯度法在极小值点附近收敛速度慢。

图8.2是二维的简单情况,目标函数是个椭圆面。在初始模型m0处梯度法的修正方向是最速下降方向,也就是和等值线的切线垂直的方向,可见它的方向偏离椭圆的中心极小值点。而最小二乘法(高斯-牛顿法)是解椭圆函数最优化问题的精确方法[6],它的修正方向将会指向椭圆的中心极小值点。因此在接近极小值点附近最小二乘法的收敛速度要快于梯度法。

为了克服最速下降法收敛慢的缺点,1964年Fletcher和Reeves提出了无约束极小化的共轭梯度法,它是直接从Hestenes和Stiefel(1952)解线性方程组的共轭梯度法发展而来。共轭梯度法使最速下降方向具有共轭性,提高了算法的有效性和可靠性[6]

梯度法的关键是计算目标函数的梯度,最终还是会归结为计算观测数据对模型参数的偏导数。在一维反演时可以用有限差分法进行偏导数的计算,在高维反演时可以采用其他快速计算偏导数的方法,如第9章将要介绍的利用互换定理计算二维直流电测深偏导数矩阵。

阅读全文

与梯度算法步长相关的资料

热点内容
个人所得税java 浏览:752
多余的服务器滑道还有什么用 浏览:180
pdf劈开合并 浏览:17
不能修改的pdf 浏览:742
同城公众源码 浏览:478
一个服务器2个端口怎么映射 浏览:283
java字符串ascii码 浏览:65
台湾云服务器怎么租服务器 浏览:464
旅游手机网站源码 浏览:321
android关联表 浏览:932
安卓导航无声音怎么维修 浏览:324
app怎么装视频 浏览:426
安卓系统下的软件怎么移到桌面 浏览:83
windows拷贝到linux 浏览:760
mdr软件解压和别人不一样 浏览:892
单片机串行通信有什么好处 浏览:328
游戏开发程序员书籍 浏览:851
pdf中图片修改 浏览:277
汇编编译后 浏览:482
php和java整合 浏览:838