Armijo-Goldstein准则与Wolfe-Powell准则是不精确的一维搜索的两大准则。

之所以要遵循这些准则是为了能使算法收敛(求最优解)。即要使我们的不精确的一维搜索的步长满足一定的规则,使之后的求最优解的过程不至于因为步长过大或者过小而不收敛。

Armijo-Goldstein准则

Armijo-Goldstein准则的核心思想有两个:①目标函数值应该有足够的下降;②一维搜索的步长α不应该太小。

我们来看看Armijo-Goldstein准则的数学表达式:

其中, 0<ρ<12

1)为什么要规定 ρ∈(0,0.5) 这个条件?其实可以证明:如果没有这个条件的话,将影响算法的超线性收敛性。具体的证明过程,大家可以参考袁亚湘写的《最优化理论与方法》一书,我没有仔细看,我觉得对初学者,不用去管它。
(2)第1个不等式的左边式子的泰勒展开式为:
f(xkkdk)=f(xk)+αkgkTdk+o(αk)
去掉高阶无穷小,剩下的部分为: f(xk)+αkgkTdk
而第一个不等式右边与之只差一个系数 ρ
我们已知了 gkTdk<0 (这是 dk 为下降方向的充要条件),并且 ρ∈(0,0.5) ,因此,1式右边仍然是一个比 f(xk) 小的数,即:
f(xk)+αkρgkTdk<f(xk)
也就是说函数值是下降的(下降是最优化的目标)。
(3)由于 ρ∈(0,0.5) 且 gkTdk<0 ( dk 是一个下降方向的充要条件),故第2个式子右边比第1个式子右边要小,即:
αk(1−ρ)gkTdkkρgkTdk<0
如果步长 α 太小的话,会导致这个不等式接近于不成立的边缘。因此,式2就保证了 α 不能太小。

我还要把很多书中都用来描述Armijo-Goldstein准则的一幅图搬出来说明一下

横坐标是 α ,纵坐标是 f ,表示在 xk,dk 均为常量、 α 为自变量变化的情况下,目标函数值随之变化的情况。
之所以说 xk,dk 均为常量,是因为在一维搜索中,在某一个确定的点 xk 上,搜索方向 dk 确定后,我们只需要找到一个合适的步长 α 就可以了。
当 x 为常量, α 为自变量时, f(x+αd) 可能是非线性函数(例如目标函数为 y=x2 时)。因此图中是一条曲线。
右上角的 f(xk+αdk) 并不是表示一个特定点的值,而是表示这条曲线是以 α 为自变量、 xk,dk 为常量的函数图形。
当 α=0 时,函数值为 f(xk) ,如图中左上方所示。水平的那条虚线是函数值为 f(xk) 的基线,用于与其他函数值对比。
f(xk)+αkρgkTdk 那条线在 f(xk) 下方(前面已经分析过了,因为 gkTdk<0 ), f(xk)+αk(1−ρ)gkTdk 又在 f(xk)+αkρgkTdk 的下方(前面也已经分析过了),所以Armijo-Goldstein准则可能会把极小值点(可接受的区间)判断在区间bc内。显而易见,区间bc是有可能把极小值排除在外的(极小值在区间ed内)。
所以,为了解决这个问题,Wolfe-Powell准则应运而生。

Wolfe-Powell准则

Wolfe-Powell准则也有两个数学表达式,其中,第一个表达式与Armijo-Goldstein准则的第1个式子相同,第二个表达式为

这个式子已经不是关于函数值的了,而是关于梯度的。
此式的几何解释为:可接受点处的切线斜率≥初始斜率的 σ 倍。
上面的图已经标出了 σgTkdk 那条线(即 e 点处的切线),而初始点( α=0 的点)处的切线是比 e 点处的切线要“斜”的,由于 σ∈(ρ,1) ,使得 e 点处的切线变得“不那么斜”了——不知道这种极为通俗而不够严谨的说法,是否有助于你理解。
这样做的结果就是,我们将极小值包含在了可接受的区间内( e 点右边的区间)。

Wolfe-Powell准则到这里还没有结束!在某些书中,你会看到用另一个所谓的“更强的条件”来代替(3)式,即:

这个式子和(3)式相比,就是左边加了一个绝对值符号,右边换了一下正负号(因为 gTkdk<0 ,所以 −σgTkdk>0 )。
这样做的结果就是:可接受的区间被限制在了 [b,d] 内,如图:

图中红线即为极小值被“夹击”的生动演示。


转自   https://www.codelast.com/

Armijo-Goldstein准则与Wolfe-Powell准则的更多相关文章

  1. CSS页面重构“鑫三无准则”之“无图片”准则——张鑫旭

    一.再说关于“鑫三无准则” “鑫三无准则”这个概念貌似最早是在去年的去年一篇名叫“关于Google圆角高光高宽自适应按钮及其拓展”的文章中提过.这是自己在页面重构的经验中总结出来的一套约束自己CSS的 ...

  2. [css] 页面重构“鑫三无准则” 之“无宽度”准则

    原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]本文地址:http://www.zhangxinxu.com/wordpress/?p=1152 一 ...

  3. 多准则决策模型-TOPSIS方法

    多准则决策–Multiple Criteria Decision Making 多准则决策–Multiple Criteria Decision Making 多准则决策是指在具有相互冲突.不可共度的 ...

  4. Maths | 相关接收机与最大似然准则

    目录 一. 接收机的概念 1.信号解调器 2.检测器 二. 相关解调器的解调过程及其原理 1.构造相关解调器 2.得到接收信号在基向量上的投影 3.相关器输出的性质 三.检测器的实现及其数学原理 1. ...

  5. 全是干货!UI设计的30条黄金准则!

    http://www.wex5.com/portfolio-items/js-1/ 全是干货!UI设计的30条黄金准则!   总的来说,好的UI界面有几个特征:简洁.便利.目标明确.人性化.字面上看这 ...

  6. 入侵检测基本准则(Basic principles of intrusion detection)【v1.0】

    所谓“入侵检测”,顾名思义,就是对入侵行为的发觉.他通过对计算机网络或计算机系统中若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象.” 但实际上,所谓的“违 ...

  7. 【原创】牛顿法和拟牛顿法 -- BFGS, L-BFGS, OWL-QN

    数据.特征和数值优化算法是机器学习的核心,而牛顿法及其改良(拟牛顿法)是机器最常用的一类数字优化算法,今天就从牛顿法开始,介绍几个拟牛顿法算法.本博文只介绍算法的思想,具体的数学推导过程不做介绍. 1 ...

  8. 【翻译】MongoDB指南/CRUD操作(一)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...

  9. 深度|作为C端应用的代表,成功的陌生社交应用是什么样子的?

    作 为C端应用的代表,成功的陌生社交应用是什么样子的?活跃用户数?收益回报率?在实际社交产品设计中,我们一直为这些所谓的KPI左右,具体到设计行为 上:摆弄相应的界面元素,优化一下文案.页面流,但却很 ...

随机推荐

  1. stm32时钟设置函数

    这里涉及到一个很重要的寄存器,时钟配置寄存器:RCC_CFGR #if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defin ...

  2. 用C#实现XML和实体类之间序列化和反序列化相互转换

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  3. NativeViewer for VS2010

    记得非常久之前公布了一款能够在调试中可视化Mat数据的插件,只是仅仅能用于VS2012及以上.我用的是VS2010(笔记本跑10都卡的不得了,12不敢奢望),不免有些遗憾.非常高兴的say如今这个问题 ...

  4. 92. Reverse Linked List II【Medium】

    92. Reverse Linked List II[Medium] Reverse a linked list from position m to n. Do it in-place and in ...

  5. linux用户密码生成

    linux账户保存在/etc/passwd,密码保存在/etc/shadow. 通过man 5 passwd,man 5 shadow可查看文件中各字段含义. encrypted password   ...

  6. win7下怎么卸载jdk

    在安装了java jdk之后,会有两个程序,如果不仔细卸载的话,就少卸载一个而不能完全卸载,下面看看在win7下怎么卸载jdk. win7下怎么卸载jdk步骤:     第一步:点击“开始”,再点击“ ...

  7. Spark OOM:java heap space,OOM:GC overhead limit exceeded解决方法

    问题描述: 在使用spark过程中,有时会因为数据增大,而出现下面两种错误: java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMe ...

  8. 关于Linq to Sql 中的left join 中defaultifempty的相关注意事项

    在使用Linq to Sql的时候,进行两个表的左连接的时候要注意defaultifempty的使用,这个函数本来的意思即是:如果为空则使用默认值代替,默认值为 NULL ,当然也可以使用defaul ...

  9. MEF基础概念学习笔记

    MEF,是微软.net框架下的一个框架类库.可以使你的程序低耦合的加载扩展.在开发插件,或者开发一些需要灵活扩展的功能的时候经常用到.例如微软给出的计算器的例子.当你开发计算器的时候,初始功能只提供了 ...

  10. nyoj677 谍战

    本题能够说是最小割入门级题目. 假设能想到是最小割问题.那么建图思路便是水到渠成的事了. 加入一个源点S和汇点T: 把S与每一个间谍相连.容量为无穷大: 把城市N(即飞机场的位置)与汇点T相连.容量为 ...