简述罗伯特梯度算法步骤优化法计算步骤

数学优化入门:梯度下降法、牛顿法、共轭梯度法
1、基本概念
1.1 方向导数
1.2 梯度的概念
因此,对于一元函数,即y=f(x),其梯度的方向总是指向x轴正方向或反方向,而大小即该点的导数。
如果考虑z=f(x,y)描绘的是一座在点(x,y)的高度为f(x,y)的山。那么,某一点的梯度方向是在该点坡度最陡的方向,而梯度的大小告诉我们坡度到底有多陡。
对于含有n个变量的标量函数,其梯度表示为
1.3 梯度与方向导数
函数在某点的梯度是这样一个向量,它的方向与取得最大方向导数的方向一致,而它的模为方向导数的最大值。
1.4 梯度与等高线
函数z=f(x)在点P(x,y)的梯度的方向与过点的等高线f(x,y)=c在这点的法线的一个方向相同,且从数值较低的等高线指向数值较高的等高线,而梯度的模等于函数在这个法线方向的方向导数。这个法线方向就是方向导数取得最大值的方向。
即负梯度方向为最速下降方向。
1.5 等高面
对于二次函数
其中A为n*n的对称正定矩阵,x-为一定点,则函数f(x)的等值面f(x,y)=c是一个以x-为中心的椭球面。
此椭球面的形状受 Hesse 矩阵的条件数影响,长轴与短轴对应矩阵的最小特征值和最大特征值的方向,其大小与特征值的平方根成反比,最大特征值与最小特征值相差越大,椭球面越扁。
矩阵的条件数:矩阵A的条件数等于A的范数与A的逆的范数的乘积,即cond(A)=‖A‖·‖A^(-1)‖,是用来判断矩阵病态与否的一种度量,条件数越大矩阵越病态。
1.6 Hesse 矩阵
在牛顿法中应用广泛,定义为
1.7 Jacobi矩阵
前面讲的都是从n维空间到一维空间的映射函数,对于从n维欧式空间变换到m维欧式空间的函数f,也可以表示成由m个实函数组成y=f(x)=[y1(x1,…xn),…ym(x1,…,xn)]T。对于函数f,如果其偏导数都存在,可以组成一个m行n列的矩阵,即所谓的Jacobi矩阵:
显然, 当f(x) 是一个标量函数时,Jacobi矩阵是一个向量,即f(x)的梯度,此时Hesse 矩阵是一个二维矩阵;当f(x)是一个向量值函数时,Jacobi 矩阵是一个二维矩阵,Hesse 矩阵是一个三维矩阵。
1.8 共轭方向
先给出共轭方向的定义:
当A为单位阵时,这两个方向关于A共轭将等价于两个方向正交,可见共轭是正交概念的推广。
我们在来看共轭方向的几何意义。
前面提到过二次函数
的等值面f(x,y)=c是一个以x-为中心的椭球面。设x^(1)为此椭球面边缘的一点,则x^(1)处的法向量为
将其中后面一项记作
即由x(1)指向椭圆面中心x-的向量。
下面,设d^(1)为此椭球面在x(1)处的切向量,由于切向量d^(1)与法向量delta f(x(1))正交,即
可见,等值面上一点处的切向量与由此点指向极小点的向量是关于A共轭的。
因此,极小化上述二次函数,若依次沿着d^(1)和d^(2)进行一维搜索,则经过两次迭代必达到极小点。
1.9 一维搜索
在许多迭代下降算法中,具有一个共同点,就是得到x(k)后,按某种规则确定一个方向d(k),再从x(k)除法,沿方向d(k)在直线上求目标函数f(x(k)+lambda*d(k))的的极小点,从而得到x(k)的后继点x(k+1),这里求目标函数在直线上的极小点,称为一维搜索,或者线搜索,可以归结为单变量lambda的极小化问题。确定的lambda可以成为步长。
一维搜索方法很多,大致可以分为试探法和函数逼近法(插值法)。当然,这两种方法都是求得即小的的近似值。
试探法包括0.618法、Fibonacci法、进退法、平分法等。
函数逼近法包括牛顿法、割线法、抛物线法、三次插值法、有理插值法等。
2、梯度下降法(最速下降法)
即利用一阶的梯度信息找到函数局部最优解的一种方法。核心迭代公式为
其中,pk是第k次迭代时选取的移动方向,在梯度下降法中,移动的方向设定为梯度的负方向。
ak是第k次迭代是移动的步长,每次移动的步长可以固定也可以改变。在数学上,步长可以通过line search令导数为零找到该方向上的最小值,但是在实际编程时,这样计算的代价太大,我们一般可以将它设定位一个常量。
因此,梯度下降法计算步骤可以概括为
如果目标函数是一个凸优化问题,那么梯度下降法获得的局部最优解就是全局最优解,理想的优化效果如下图,值得注意一点的是,每一次迭代的移动方向都与出发点的等高线垂直:
实际上,梯度还可以提供不在最快变化方向的其他方向上坡度的变化速度,即在二维情况下,按照梯度方向倾斜的圆在平面上投影成一个椭圆。椭球面的形状受 Hesse 矩阵的条件数影响,椭球面越扁,那么优化路径需要走很大的弯路,计算效率很低。这就是常说的锯齿现象( zig-zagging),将会导致收算法敛速度变慢。
前面提到的梯度下降法,主要利用的是目标函数的局部性质,具有一定的“盲目性”。
牛顿法则是利用局部的一阶和二阶偏导信息,去推测整个目标函数的形状,进而可以求得近似函数的全局最小值,然后将当前的最小值设定为近似函数的最小值。也就是说,牛顿法在二阶导数的作用下,从函数的凸性出发,直接搜索怎样到达极值点,即在选择方向时,不仅考虑当前坡度是否够大,还会考虑走了一步之后,坡度是否会变得更大。
相比最速下降法,牛顿法带有一定对全局的预测性,收敛性质也更优良。当然由于牛顿法是二阶收敛的,比梯度下降法收敛的更快。
假设我们要求f(x)的最小值,首先用泰勒级数求得其二阶近似
显然这里x是自变量,x^(k)是常量,求解近似函数phi(x)的极值,即令其倒数为0,很容易得到
从而得到牛顿法的迭代公式
显然除了f(x)二次可微外,还要求f(x)的Hesse矩阵可逆。此外,由于矩阵取逆的计算复杂为 n 的立方,当问题规模比较大时,计算量很大,解决的办法是采用拟牛顿法,如 BFGS, L-BFGS, DFP, Broyden’s Algorithm 进行近似。
此外,如果初始值离局部极小值太远,泰勒展开并不能对原函数进行良好的近似,导致牛顿法可能不收敛。
我们给出阻尼牛顿法的计算步骤,其实阻尼牛顿法相较原始牛顿法只是增加了沿牛顿方向的一维搜索:
4、共轭梯度法
共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点。
共轭梯度法的基本思想是把共轭性与最速下降法相结合,利用已知点处的梯度构造一组共轭方向,并沿这组方向进行搜索,求出目标函数的极小点。根据共轭方向的基本性质,这种方法具有二次终止性。
共轭梯度法中的核心迭代过程可以采取不同的方案,一种是直接延续,即总是用d^(k+1)=-g(k+1)+beta_k*d^(k)构造搜索方向;一种是把n步作为一轮,每搜索一轮之后,取一次最速下降方向,开始下一轮,此种策略称为“重置”。
下面我们介绍一种传统的共轭梯度法
注意,上述算法中均假设采用的精确一维搜索,但实际计算中,精确一维搜索会带来一定困难,代价较大,通常还是采用不精确的一维搜索。但此时(4)中构造的搜索方向可能就不是下降方向了,解决这个问题有两个方法。
其一,当d^(k+1)不是下降方向时,以最速下降方向重新开始。事实上,这也存在问题,但一维搜索比较粗糙时,这样重新开始可能是大量的,会降低计算效率。
其二,在计算过程中增加附加的检验,具体细节可以参考陈宝林老师的“最优化理论与方法”的P301。
没有更多推荐了,梯度下降_百度百科
清除历史记录关闭
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。
梯度下降简介
:对于可微的数量场
为分量的称为f的梯度或斜量。
梯度下降法(gradient descent)是一个算法,常用于机器学习和人工智能当中用来递归性地逼近最小偏差模型。
梯度下降求解过程
顾名思义,梯度下降法的计算过程就是沿梯度下降的方向求解极小值(也可以沿梯度上升方向求解极大值)。
其迭代公式为
代表梯度负方向,
表示梯度方向上的搜索步长。梯度方向我们可以通过对函数求导得到,步长的确定比较麻烦,太大了的话可能会发散,太小收敛速度又太慢。一般确定步长的方法是由线性搜索算法来确定,即把下一个点的坐标看做是ak+1的函数,然后求满足f(ak+1)的最小值的ak+1即可。
因为一般情况下,梯度向量为0的话说明是到了一个极值点,此时梯度的幅值也为0.而采用梯度下降算法进行最优化求解时,算法迭代的终止条件是梯度向量的幅值接近0即可,可以设置个非常小的常数阈值。
梯度下降应用
举一个非常简单的例子,如求函数
的最小值。
利用梯度下降的方法解题步骤如下:
1、求梯度,
2、向梯度相反的方向移动
为步长。如果步长足够小,则可以保证每一次迭代都在减小,但可能导致收敛太慢,如果步长太大,则不能保证每一次迭代都减少,也不能保证收敛。
3、循环迭代步骤2,直到
的值变化到使得
在两次迭代之间的差值足够小,比如0.,也就是说,直到两次迭代计算出来的
基本没有变化,则说明此时
已经达到局部最小值了。
4、此时,输出
就是使得函数
MATLAB如下。
%%&最速下降法图示
%&设置步长为0.1,f_change为改变前后的y值变化,仅设置了一个退出条件。
syms&x;f=x^2;
step=0.1;x=2;k=0;&&&&&&&&&%设置步长,初始值,迭代记录数
f_change=x^2;&&&&&&&&&&&&&%初始化差值
f_current=x^2;&&&&&&&&&&&&%计算当前函数值
ezplot(@(x,f)f-x.^2)&&&&&&&%画出函数图像
axis([-2,2,-0.2,3])&&&&&&&%固定坐标轴
while&f_change&0.&&&&&&&&&&&&&&&&%设置条件,两次计算的值之差小于某个数,跳出循环
&&&&x=x-step*2*x;&&&&&&&&&&&&&&&&&&&&&&&&&%-2*x为梯度反方向,step为步长,!最速下降法!
&&&&f_change&=&f_current&-&x^2;&&&&&&&&&&&%计算两次函数值之差
&&&&f_current&=&x^2&;&&&&&&&&&&&&&&&&&&&&&%重新计算当前的函数值
&&&&plot(x,f_current,'ro','markersize',7)&%标记当前的位置
&&&&pause(0.2);
&&&&k=k+1;
fprintf('在迭代%d次后找到函数最小值为%e,对应的x值为%e\n',k,x^2,x)
梯度下降法处理一些复杂的非线性函数会出现问题,如Rosenbrock函数:
,其最小值在
处,函数值为
。但是此函数具有狭窄弯曲的山谷,最小点
就在这些山谷之中,并且谷底很平。优化过程是之字形的向极小值点靠近,速度非常缓慢。
梯度下降缺点
靠近极小值时收敛速度减慢。
直线搜索时可能会产生一些问题。
可能会“之字形”地下降。
日本数学会.数学百科词典:科学出版社,1984
本词条认证专家为
副教授审核
南京理工大学
清除历史记录关闭 上传我的文档
 上传文档
 下载
 收藏
粉丝量:38
该文档贡献者很忙,什么也没留下。
 下载此文档
【精品】天津大学最优化方法复习题
下载积分:750
内容提示:【精品】天津大学最优化方法复习题
文档格式:DOC|
浏览次数:86|
上传日期: 03:11:20|
文档星级:
全文阅读已结束,如果下载本文需要使用
 750 积分
下载此文档
该用户还上传了这些文档
【精品】天津大学最优化方法复习题
关注微信公众号优化设计之梯度法_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
优化设计之梯度法
阅读已结束,下载本文到电脑
想免费下载本文?
登录百度文库,专享文档复制特权,积分每天免费拿!
你可能喜欢您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
最优化计算方法(工程优化)复习解析.ppt 198页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
最优化计算方法(工程优化)复习解析
你可能关注的文档:
··········
··········
K-T点的验证 故点 是K-T点。 设 解之得, 即 K-T点的验证 在点 处, 都是起作用约束, 目标函数和约束函数的梯度分别是 故点 不是K-T点。 设 解之得, 即 惩罚函数法----一种使用广泛、有效的间接法
借助罚函数将约束非线性规划转化为一系列无约束问题, 通过求解无约束问题来求解约束非线性规划,所以也称为序 列无约束极小化技术(sequentail unconstrained minimization
technique,简称SUMT)
根据约束特点(等式或不等式)构造某种罚函数p(x),把 它加到目标函数中去,将约束非线性规划转化为一系列无约 束问题: 基本思想: 罚因子 惩罚函数 惩罚项 惩罚函数法----一种使用广泛、有效的间接法 基本思想:
这种惩罚策略,对于在无约束的求解过程中企图违反约束的 迭代点给予很大的目标函数值,
迫使无约束问题的极小点或者无限地向可行域D靠近,
或者一直保持在可行域D内移动,
直到收敛到原来约束最优化问题的极小点。 罚因子 惩罚函数 惩罚项 惩罚函数法 外点法:
对违反约束的点在目标函数中加入相应的惩罚,
可行点不予惩罚,
这种方法的迭代点一般在可行域D的外部移动; 罚因子 按照惩罚函数的构成方式,惩罚函数法分为3种: 惩罚函数 惩罚函数法
对从内部企图穿越可行域D边界的点在目标函数中加入障碍, 距边界越近,障碍越大, 在边界上给予无穷大的障碍, 从而保证迭代点一直在可行域内部移动;
罚因子 按照惩罚函数的构成方式,惩罚函数法分为3种: 惩罚函数 混合法:将外点法和内点法结合。 几何解释 外点罚函数法 求曲线y=f(x)在D内的最小点 抬高到一定程度后, 此曲线的无约束极小点就是原来函数在D内的最小点 改造曲线, 使其在D内保持不变, 在D外将曲线逐步抬高, 可行点不惩罚, 违反约束的点在目标函数中加入惩罚, 外点罚函数法 罚函数p(x)应满足的性质 (1) p(x)连续 (2) (3) 罚函数p(x)的构造 给出了罚函数p(x)的一个形式 gi hj连续,p(x)也连续 外点罚函数法----算法步骤 步骤1:给定初始点
,初始罚因子
初始点,求解无约束优化问题
得到极小点
, 其中 步骤3:若
,则停止计算,得到近似极小点
用解析法求驻点 或者 用无约束优化方法求解 常取
,置k:=k+1,转步骤2。 定理: 设约束问题(1)和无约束问题(2)的最优解为
和 取序列 且 则由外点法产生的点列 的任何聚点 必是(1)的最优解。 外点罚函数法----算法收敛性分析 例1:用外点罚函数法求解如下优化问题:
外点罚函数法----算例 解:问题只有不等式约束,对应的罚函数为:
外点罚函数法----算例 解析法求F(x,Mk)的极小点,令
,舍去该点;
得到F(x,Mk)的驻点 令
,得到原约束问题的极小点
F(x,Mk)的驻点 故F(x,Mk)的极小点为 例2:用外点罚函数法求解如下优化问题:
外点罚函数法----算例 解:问题只有等式约束,对应的罚函数为:
外点罚函数法----算例 解析法求F(x,Mk)的极小点,令
外点罚函数法----算例 从中得到F(x,Mk)的驻点为 从而F(x,Mk)的极小点为 外点罚函数法----算例 令
,得到原约束问题的极小点为
F(x,Mk)的极小点为 外点罚函数法----特点
(3)初始罚因子要选择得当,否则会影响迭代计算的正常进行,
太小,将增加迭代的次数;
太大,会使惩罚函数的性态变坏,甚至难以收敛到极值点
许多计算表明,取
常常可以取得满意的效果;
按经验公式计算
(1) 初始点可以任选
(2)对等式约束和不等式约束均可适用 通常取c=[5,10]。 外点罚函数法----特点
(4)罚因子Mk 递增(→∞),
,递增系数c,
正在加载中,请稍后...

我要回帖

更多关于 梯度下降法原理和步骤 的文章

 

随机推荐