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

来源:互联网 发布:数据作战室有用吗 编辑:程序博客网 时间:2024/05/14 17:04

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

0 0
原创粉丝点击