【Numerical Optimization】2 线搜索算法 PART 1(Jorge Nocedal 学习笔记)

线搜索理论满足以下模型,其中 a k 为步长, p k 为搜索方向:

x k + 1 = x k + α k p k

为保证 p k 在目标函数 f 的下降方向,需要满足 p k T f k < 0 ,其一般模型为:
p k = B k 1 f k

其中当 B k 对称满秩且正定时,能够保证 p k 指向 f 下降方向

  • steepest descent method: B k = I (单位矩阵)
  • Newton’s method: B k = 2 f ( x k ) (Hessian 矩阵)
  • Quasi-Newton method B k Hessian 估计矩阵(SR1 或 BFGS 方法等)

上述内容可以参考 我的上一篇笔记

这篇笔记对 α k 的选择以及 收敛率(rate of convergence)做深入讨论。


1. 步长 Step Length

对于步长的选择,主要基于两个权衡:

  • α k 能够实现 f 的大幅下降
  • 不能花太多时间做决定

一般最为理想的方法是取下述 ϕ ( . ) 的最小值:

ϕ ( α ) = f ( x k + α p k ) α > 0

但通常此求解过程非常复杂,无法实现,故退而希望 α k 满足以下两个条件:

  • 当前 α k 推进的部分在 f p k 方向的下降区间内
  • α k 较长,可以实现更有效率的下降

故引入以下几种条件。

1.2 Wolfe 条件 The Wolfe Conditions

Wolfe 条件其中包括两条条件:

  • Armijo Condition:保证 α k p k 方向上 f 的下降区间内
    ϕ ( α ) = f ( x k + α p k ) l ( α ) = f ( x k ) + c 1 α f k T p k , c 1 ( 0 , 1 ) ϕ ( α ) l ( α )

    其中 c 1 的典型值为 c 1 = 10 4
  • 曲率条件:保证 α k 在上述条件的基础上足够大,使得算法有效率

ϕ ( α k ) = f ( x k + α k p k ) T p k ϕ ( α k ) c 2 ϕ ( 0 ) , c 2 ( c 1 , 1 )

其中 c 2 的典型值如下:

  • Newton / Quasi-Newton: c 2 = 0.9
  • Nonlinear conjugate gradient method: c 2 = 0.1

综上所述,完整的 Wolfe Conditions 的叙述是:

f ( x k + α p k ) f ( x k ) + c 1 α f k T p k f ( x k + α k p k ) T p k c 2 f k T p k , 0 < c 1 < c 2 < 1

严格 Wolfe Conditions 的叙述是:
f ( x k + α p k ) f ( x k ) + c 1 α f k T p k | | f ( x k + α k p k ) T p k | | c 2 | | f k T p k | | , 0 < c 1 < c 2 < 1

其较于非严格 Wolfe Conditions 加上了 ϕ ( α k ) 必须为正的限定。
这里写图片描述

且需要注意的是,对于所有平滑且取值有界的目标函数 f 都能找到满足 (strong) Wolfe Conditions 的步长 α k (证明略)
故可以看出来 Wolfe Conditions 具有广义尺度不变性,即将 f 乘以一个常数或将 f 进行尺度变换不会改变 Wolfe Conditions 寻找的结果

1.2 Goldstein 条件 The Goldstein Conditions

其完整表达为:

f ( x k ) + ( 1 c ) α k f k T p k f ( x k + α k p k ) f ( x k ) + c α f k T p k , 0 < c < 1 2

前一个不等式控制步长长度使其不至于太短(以致效率过低),后一个不等值控制步长使其不至于超出 f p k 方向上的下降区间

这里写图片描述

Goldstein 条件常用于 Newton type 算法,而不太使用于 Quasi-Newton type 算法

1.3 回溯算法 Backtracking

根据上述两个条件,可以看出仅限定 α k f p k 方向上的下降区间内是不足以促成一个成功的算法的,还需要对其收敛效率进行规定,故上述条件都有两个限定。
然而使用回溯算法便可以省略有关效率的那个限定条件,其算法流程如下:

Choose α ¯ > 0 , ρ ( 0 , 1 ) , c ( 0 , 1 ) ; Set α α ¯
repeat until f ( x k + α p k ) f ( x k ) + c α f k T p k
α ρ α
end(repeat)
Terminate with α k = α

其中 α ¯ 的初值取法如下:

  • Newton and Quasi-Newton: α ¯ = 1
  • 其他算法的 α ¯ 的取值各不相同

其中的收缩系数 ρ 可在每步迭代后进行变动,只要满足 0 < ρ l o < ρ h i < 1 即可

这种算法很适合 Newton,但是不那么适用于 Quasi-Newton 与 Conjugate gradient 算法

2. 线搜索算法的收敛性

可证明,其他算法和 steepest descent algorithm 一样可以具有全局收敛性(虽然实现收敛的路径不同)

证明略

3. 收敛率 Rate of convergence

一个好的算法,需要满足下面两个条件:

  • 严格的全局收敛保证
  • 收敛速度快

但是这两个需要相互权衡,譬如: steepest descent method 具有极佳的全局收敛保证,但收敛速度慢;而纯 Newton method 收敛速度快,但有时可能达不到全局收敛。
故为了检验算法的全局收敛性,需要引入一个量“收敛率”

在正式讨论各类算法的收敛率之前,首先引入另外两个小概念,方便后面叙述:
有两个迭代点 x k + 1 , x k ,最优收敛点 x ,若存在实数 q > 0 满足:

lim k | | x k + 1 x | | | | x k x | | = q

若:

  • q ( 0 , 1 ) ,线性收敛
  • q = 0 ,超线性收敛

3.1 steepest descent 的收敛率

首先我们假设一个典型的二次目标函数:

f ( x ) = 1 2 x T Q x b T x f ( x ) = Q x b

其中 Q 对称正定,其最佳收敛点为 x ,即有 f ( x ) = 0
在此算法中 p k = f k ,设步长为 α k ,则有:
f ( x k α f k ) = 1 2 ( x k α f k ) T Q ( x k α f k ) b T ( x k α f k )

使得上式等于 0,可以得到步长推断式:
α k = f k T f k f k T Q f k

这样就得到了迭代方程:
x k + 1 = x k ( f k T f k f k T Q f k ) f k

使用下式量化收敛率,即计算所得值和理想值之间的差距:

1 2 | | x x | | Q 2 = f ( x ) f ( x )

根据上面的讨论可以严格推导 steepest descent method 的收敛率推导式:
| | x k + 1 x | | Q 2 = 1 ( f k T f k ) 2 ( f k T Q f k ) ( f k T Q 1 f k ) | | x k x | | Q 2

然而,这个推倒式太难计算了,所以给出了一些计算的替代方案:

  • f 为严格二次凸函数时:
    定义不等式:
    | | x k + 1 x | | Q 2 ( λ n λ 1 λ n + λ 1 ) 2 | | x k x | | Q 2

    其中 0 < λ 1 λ 2 . . . λ n Q 的特征值
    可以看出,当所有特征值相等时(即 Q = I 时), f k 的形状是圆形,且 p k 直指全局收敛点;随着 κ ( Q ) = λ n λ 1 的增大,其轮廓越来越椭圆,且路径越来越曲折。

这里写图片描述

  • f 仅仅是二次连续可微:
    r ( λ n λ 1 λ n + λ 1 , 1 ) f ( x k + 1 ) f ( x ) r 2 [ f ( x k ) f ( x ) ]

这显示出 steepest descent 算法在某些情况下(通常在 κ ( Q ) 很大的情况下),可能会非常非常慢。

3.2 Newton’s method

p k 遵循下式:

p k N = 2 f k 1 f k

但需要注意的是,在上式中有一个限定条件—— 2 f k 必须是正定的,才能保证 p k 指向下降方向。

假定 f 二次可微,那么其 Hessian 矩阵 2 f ( x ) Lipschitz 连续,x* 是最佳点(在 x* 附近开区间内 2 f 连续且 f ( x ) = 0 2 f ( x ) 正定)。迭代式为 x k + 1 = x k + p k ,且 p k 的方法为 Newton 法,则:

  • 如果初始点 x 0 距离 x 足够近,那么序列在 x 处收敛
  • 其 { x k } 的收敛率是二次的
  • 梯度序列 { | | f k | | } 二次收敛于 0

上述证明略。

但上面的定量非常棒棒,主要是能够递推出下列优厚性质:
当使用 Newton’s method 递推得到 p k 时:

  • 对于所有 k, α k 都可通过 Wolfe/Goldstein conditions 的检验(即对于 Newton’s method 可以直接使用 α k 作为步长)
  • 如果还满足 lim k | | f k + 2 f k p k | | | | p k | | = 0 ,那么对于所有 k 来说, | | x x | | Q 2 = 0
  • 利用线搜索法时, α k = 1 对于所有 k 局部二次收敛

3.3 Quasi-Newton method

p k 推导式为:

p k = B k 1 f k

其中 B k 的推导方法有 SR1,BFGS 等。其步长类似 Newton’s method, 先初定为 α = 1 ,如果其满足 Wolfe conditions 那么就接受这个初定值。

假定 f : R n R 中二次连续可微,迭代方式为 x k + 1 = x k + α k p k ,其中保证 p k 指向下降方向并且 α k 满足 Wolfe conditions( c 1 0.5 )。如果序列 x k 收敛于 x ,即 f ( x ) = 0 c10.5 c 1 0.5 )。如果序列 x k 收敛于 x ,即 f ( x ) = 0 x k 收敛于 x ,即 f ( x ) = 0

相关文章
相关标签/搜索