Line Search Method 1 - 步长计算 (Step length calculation)

原创 2015年11月20日 11:53:11

本文是一系列关于 Numerical Optimization 的博客的第一篇,主要讨论 Line Search Method 中步长 α 的计算。
该系列博客以 Nocedal 的 Numerical Optimization 一书(2006年第二版,下面简称“该书”)为主题,讨论书中的内容,并结合自己的仿真进行更生动形象的解释。博客中所有在图例中带有 “Figure” 的图片都是从Numerical Optimization 一书中截取的,在此予以说明。

在该书的前两张,作者主要对优化算法进行了入门的介绍,以及一些数学基础知识的回顾。从第三章开始将介绍主要内容,其中第三章主要介绍 Line Search Method。

Line Search Method,顾名思义,就是在某条线上去搜索下个迭代点的位置,即

xk+1=xk+αkpk
其中,pk 是(下降的)方向,αk 是步长。这就体现出其与 Trust Region Method 的不同之处,因为后者是在当前迭代点的某个邻域内去寻找下个迭代点的值。关于 Line Search Method 中所沿的那条线,具体不同的方法有不同的选择。比如最速下降法(Steepest Descent Method)就是直接取当前点导数的反方向,即 f(x) ,而在牛顿法中的方向的选取则为 2f(x)1f(x) ,在拟牛顿法中则有另外的选取方法,但这些方法所选取的方向都有一个共同之处就在于要求目标函数值在当前点沿着这个方向是下降的,即
pTkfk<0
在本文接下来的内容中会主要介绍步长 α 的选取,也就是说,在这里我们认为方向 pk 已经确定了,然后接下来的工作是找到一个合适的步长 α 。首先,我们能想到的就是求解一个单变量的优化命题,让原目标函数在该方向上取得最大的下降量,即
minϕ(α)=f(xk+αpk),α>0
但一般来说,得到上面这个优化优化命题的解的代价往往很大,因为即使是单变量优化命题,如果目标函数形状很奇怪的话,如下面 Figure 3.1 ,这个方向上的最优点也是很难求的。

这里写图片描述

这里要说明的一点是,为了保证算法能最终收敛到极小点,那么对 α 一定是有要求的。比如,如果我们只是单纯保证 α 的选取能使得目标函数之逐步下降的话,那么这是不足够的,例如下图 Figure 3.2,目标函数的最小值是-1。如果我们选取补偿使得目标函数的值以 f(xk)=5/k,k=1,2,... 这样的级数收敛的话,那么函数值将最终收敛到0而非最优值-1。

这里写图片描述

因此,步长 αk 的选取必须满足一定的条件才能保证迭代点收敛到极小点。其中一组条件被称为 The Wolfe Conditions,包括两个不等式。首先是

f(xk+αkpk)f(xk)+c1αkf(xk)Tpk

其中,c1(0,1)。这个条件的意思是,除了要保证目标函数的要有所下降之外,还要保证下降的程度要和步长 α 成正比,这一点也可以从 Figure 3.3 中看出来,可接受的 α 必须要使得迭代点的函数值在虚线以下。这里注意,在实际中 c1 一般取一个较小的值,比如 c1=104

这里写图片描述

但光这一个条件还不能保证迭代点的正确收敛,因为从图中可以看出当 α 取很小的值时,这个条件就一定是满足的,因此,另一个条件从曲率(斜率)的角度进行了约束:

f(x+αkpk)Tpkc2f(xk)Tpk

其中 c2(c1,1)。这个条件的意思是,在下一个迭代点处的斜率一定要大于在当前点(α=0)处的斜率。因为我们可以看出来,上面这个条件的左面是以 α 为变量的函数在下一个迭代点出的导数,而右边则是其在当前迭代点的导数。上面的这个条件可以从 Figure 3.4 中进行理解。

这里写图片描述

其实也可以这样理解,当某个 α 的取值使得在该点 ϕ(α) 的导数很小(绝对值很大)时,就表示目标函数还有下降的可能因此不能在这儿停,知道导数变大趋于0,甚至变成正值(在往上走了),说明可能就要停下来了。

综合上面两个条件就可以得到 The Wolfe Condition

f(xk+αkpk)f(xk+αkpk)Tpkf(xk)+c1αkfTkpkc2fTkpk
满足 Wolfe condition 的步长得到的迭代点可以使得目标函数值有充分的下降,但不一定要落在这个方向上的极小值处。如 Figure 3.5 所示。

这里写图片描述

接下来的 Lemma 3.1. 证明了针对连续可到的函数 f ,满足上述 Wolfe condition 的区间一定存在。这里简述如下:

Lemma 3.1.
假设函数 f:RnR 连续可导。pk 表示在点 xk 处的一个下降方向,同时假设 f 沿着方向 {xk+αpk|α>0} 上的值有下界。那么对于 0<c1<c2<1,存在步长 α 的区间使得上述的 Wolfe condition 满足。

证明:
因为 ϕ(α)=f(xk+αpk) 针对任意的 α>0 有下界,而关于 α 的线性函数 l(x)=f(xk)+c1αkfTkpkα>0 上是没有下界的,因此二者的曲线必有一个交点,记该交点为 α ,即

f(xk+αpk)=f(xk)+αc1fTkpk
因此对于任何小于 αα 值,Wolfe condition 中的第一条必然满足,同时根据中值定理,存在 α′′(0,α) 使得
f(xk+αpk)=f(xk)+αf(xk+α′′pk)Tpk
结合上面两式,同时因为 c1<c2,我们有
f(xk+α′′pk)Tpk=c1fTkpk>c2fTkpk
α′′ 亦满足Wolfe condition 中的第二条。
同时因为我们假设 f 是光滑的,因此在 α′′ 的附近必然有一个区间使得上述的条件成立,因此原命题得证。

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

线搜索(line search)方法

转自http://www.cnblogs.com/kemaswill/p/3416231.html  在机器学习中, 通常需要求某个函数的最值(比如最大似然中需要求的似然的最大值). 线搜索(l...
  • tsroad
  • tsroad
  • 2015年12月10日 14:27
  • 2965

scipy.optimize.minimize 的优化算法(2): Powell中的line search算法

Powell中的line search算法
  • zhoudi2010
  • zhoudi2010
  • 2017年01月20日 09:39
  • 1053

数值优化(Numerical Optimization)学习系列-线搜索方法(LineSearch)

数值优化的学习过程是长期的、是枯燥的也是最有用的,一旦入门对机器学习者、算法工作者都会有很大的帮助。在此记录Numerical Optimization的学习、思考和实践。...
  • fangqingan_java
  • fangqingan_java
  • 2015年12月27日 18:44
  • 4988

无约束最优化问题

估计有些读者看到这个题目的时候会觉得很数学,和自然语言处理没什么关系,不过如果你听说过最大熵模型、条件随机场,并且知道它们在自然语言处理中被广泛应用,甚至你明白其核心的参数训练算法中有一种叫LBFGS...
  • nocml
  • nocml
  • 2012年12月12日 17:08
  • 13476

Line Search Method 1 - 步长计算 (Step length calculation)

本文是一系列关于 Numerical Optimization 的博客的第一篇,主要讨论 Line Search Method 中步长 α\alpha 的计算。 该系列博客以 Nocedal 的 N...
  • dymodi
  • dymodi
  • 2015年11月20日 11:53
  • 1352

fluent计算 简易时间步长计算器

  • 2014年06月11日 19:34
  • 24KB
  • 下载

机器学习与线性回归

线性回归(Linear Regression) 是机器学习的一个很基础很简单的模型了,但它的地位却非常重要,很多时候常用于预测、分类等任务中。...
  • TungYu
  • TungYu
  • 2017年08月31日 00:06
  • 202

android学习——SeekBar和RatingBar

SeekBar 带滑块的进度条  xml java class SeekBarListener implements OnSeekBarChan...
  • janronehoo
  • janronehoo
  • 2011年10月19日 21:13
  • 1422

关于数列极限(及数项级数)与搜索算法的步长选取

在用计算机求解优化问题的时候,常常会涉及到搜索步长的问题,无论你是使用梯度下降还是使用牛顿法,还是其他的一些搜索算法而言,步长的选取都是无可避免的问题,当然步长的选取也有一系列的方法,而比较常用的有设...
  • u010842413
  • u010842413
  • 2014年03月31日 08:06
  • 1101

卷积与反卷积、步长(stride)与重叠(overlap)

1. 卷积与反卷积如上图演示了卷积核反卷积的过程,定义输入矩阵为 II(4×44\times 4),卷积核为 KK(3×33\times 3),输出矩阵为 OO(2×22\times 2): 卷积的过...
  • lanchunhui
  • lanchunhui
  • 2017年03月10日 22:27
  • 4925
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Line Search Method 1 - 步长计算 (Step length calculation)
举报原因:
原因补充:

(最多只允许输入30个字)