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 是光滑的,因此在 α′′ 的附近必然有一个区间使得上述的条件成立,因此原命题得证。

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

相关文章推荐

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

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

最速梯度法和牛顿法的步长的算法

% Program: inex_lsearch.m % Title: Inexact Line Search % Description: Implements Fletcher's inexa...

浅谈熵和打升级 (A brief talk about entropy and Sheng ji)

本文将结合打升级来大概总结一下信息论中熵的含义,及其与系统随机性,混乱程度和可预测性的一些关系。后续可能会修改本文添加更多内容。关于熵的内容介绍主要来自于Wikipedia。...
  • dymodi
  • dymodi
  • 2017年01月07日 10:54
  • 580

大量数据删除

今天领导安排一个任务,将一张日志表中7月份之前的日志都删除掉。 我查了一下数据量发现,现在总共有190多万的数据,7月份之前有150多万,这要删除大头啊。 开始,我使用delete语句,如下: ...

Educational Codeforces Round 1 F Cut Length(计算几何)

题意: 给定一个N≤103个点的简单多边形,不一定是凸的,存在多点共线给定一个N\le 10^3个点的简单多边形, 不一定是凸的, 存在多点共线 给定M≤100条直线,求直线与简单多边形的公...
  • lwt36
  • lwt36
  • 2016年01月19日 23:34
  • 489

希尔排序---for循环步长大于1时候的终止条件有问题

#include using namespace std; void insert_sort(int a[], int n); int main(){ int a[]={ 3,7,2,9...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Line Search Method 1 - 步长计算 (Step length calculation)
举报原因:
原因补充:

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