其他分享
首页 > 其他分享> > Armijo条件,Wolfe条件,Goldstein条件

Armijo条件,Wolfe条件,Goldstein条件

作者:互联网

目录

线搜索

对于迭代式 x k + 1 = x k + α p k x_{k+1} = x_k +\alpha p_k xk+1​=xk​+αpk​,其中 p k p_k pk​是由梯度法,牛顿法,CG法等方法计算出的下降方向, α \alpha α是下降的步长。

  1. 寻找最优值 α = min ⁡ α f ( x k + α p k ) \alpha = {\underset {\alpha}{\operatorname {min} }} f(x_k + \alpha p_k) α=αmin​f(xk​+αpk​)的过程称为精确搜索
  2. 如果只是想找到一个 α \alpha α使得 f ( x k + α p k ) f(x_k + \alpha p_k) f(xk​+αpk​)相对于 f ( x k ) f(x_k) f(xk​)有足够的下降,那么这样的过程称为非精确搜索

非精确线搜索(Armijo条件,Wolfe条件,Goldstein条件)

Armijo条件

要求 f ( x k + α p k ) f(x_k + \alpha p_k) f(xk​+αpk​)相对于 f ( x k ) f(x_k) f(xk​)有足够的下降,可以写作:
f ( x k + α p k ) ≤ f ( x k ) + c 1 α ∇ f ( x k ) T p k f(x_k + \alpha p_k) \leq f(x_k) + c_1\alpha \nabla f(x_k)^T p_k f(xk​+αpk​)≤f(xk​)+c1​α∇f(xk​)Tpk​
因为 f ( x k ) T p k < 0 f(x_k)^T p_k < 0 f(xk​)Tpk​<0,所以要求 c 1 > 0 c_1 > 0 c1​>0,但如果 c 1 ≥ 1 c_1 \geq 1 c1​≥1那么对于某些函数(例如强凸函数)就找不到满足不等式的解。因此上式中 c 1 ∈ ( 0 , 1 ) c_1 \in (0,1) c1​∈(0,1)。

记 ϕ ( α ) = f ( x k + α p k ) , l ( α ) = f ( x k ) + c 1 α ∇ f ( x k ) T p k \phi(\alpha) = f(x_k + \alpha p_k), l(\alpha) = f(x_k) + c_1\alpha \nabla f(x_k)^T p_k ϕ(α)=f(xk​+αpk​),l(α)=f(xk​)+c1​α∇f(xk​)Tpk​,那么Armijo条件框定的范围如下:
在这里插入图片描述
实际应用中, c 1 c_1 c1​一般取得很小,例如 c 1 = 1 0 − 4 c_1 = 10^{-4} c1​=10−4


curvature条件

从上图不难发现只要 α \alpha α足够小就会满足Armijo条件,但这样会导致下降的量不够大,为了避免 α \alpha α取过小的值,又有了下面的的curvature条件
∇ f ( x k + α k p k ) T p k ≥ c 2 ∇ f ( x k ) T p k \nabla f(x_k + \alpha_k p_k)^T p_k \geq c_2 \nabla f(x_k)^T p_k ∇f(xk​+αk​pk​)Tpk​≥c2​∇f(xk​)Tpk​
其中 c 2 ∈ ( c 1 , 1 ) c_2 \in (c_1, 1) c2​∈(c1​,1)。

上式等价于 ϕ ′ ( α k ) ≥ c 2 ϕ ′ ( 0 ) \phi'(\alpha_k) \geq c_2 \phi'(0) ϕ′(αk​)≥c2​ϕ′(0),因此curvature条件框住的范围为:

在这里插入图片描述
由上图可以看出curvature条件可以避开很小的 α \alpha α。一般情况如果 p k p_k pk​是Newton或者quasi-Newton法求得的方向,那么 c 2 = 0.9 c_2 = 0.9 c2​=0.9,如果 p k p_k pk​是非线性CG法求得的,那么 c 2 = 0.1 c_2 = 0.1 c2​=0.1。


Wolfe条件,强Wolfe条件

Wolfe条件 = Armijo条件 + curvature条件
f ( x k + α k p k ) ≤ f ( x k ) + c 1 α k ∇ f ( x k ) T p k ∇ f ( x k + α k p k ) T p k ≥ c 2 ∇ f ( x k ) T p k \begin{aligned} f(x_k + \alpha_k p_k) &\leq f(x_k) + c_1\alpha_k \nabla f(x_k)^T p_k\\ \nabla f(x_k + \alpha_k p_k)^T p_k &\geq c_2 \nabla f(x_k)^T p_k \end{aligned} f(xk​+αk​pk​)∇f(xk​+αk​pk​)Tpk​​≤f(xk​)+c1​αk​∇f(xk​)Tpk​≥c2​∇f(xk​)Tpk​​
其中 0 < c 1 < c 2 < 1 0< c_1 < c_2 < 1 0<c1​<c2​<1

Wolfe条件找到的 α \alpha α有可能离极小值较远,比如:
在这里插入图片描述
因此又提出了强Wolfe条件:
f ( x k + α k p k ) ≤ f ( x k ) + c 1 α k ∇ f ( x k ) T p k ∣ ∇ f ( x k + α k p k ) T p k ∣ ≤ c 2 ∣ ∇ f ( x k ) T p k ∣ \begin{aligned} f(x_k + \alpha_k p_k) &\leq f(x_k) + c_1\alpha_k \nabla f(x_k)^T p_k\\ |\nabla f(x_k + \alpha_k p_k)^T p_k| &\leq c_2 |\nabla f(x_k)^T p_k| \end{aligned} f(xk​+αk​pk​)∣∇f(xk​+αk​pk​)Tpk​∣​≤f(xk​)+c1​αk​∇f(xk​)Tpk​≤c2​∣∇f(xk​)Tpk​∣​
与Wolfe条件相比,强Wolfe条件不允许 ϕ ′ ( α k ) \phi'(\alpha_k) ϕ′(αk​)正得太大,也就是不能越过极小值太远。

(Wolfe条件存在性定理)假设 f : R n → R f: \mathbb{R^n} \rightarrow \mathbb{R} f:Rn→R连续可微, p k p_k pk​是 x k x_k xk​处的下降方向,并且 f f f在 { x k + α p k ∣ α > 0 } \{x_k + \alpha p_k | \alpha > 0\} {xk​+αpk​∣α>0}上有下界。如果 0 < c 1 < c 2 < 1 0 < c_1 < c_2 <1 0<c1​<c2​<1,那么存在一个步长区间即满足Wolfe条件也满足强Wolfe条件

Proof:因为 ϕ ( α ) = f ( x k + α p k ) \phi(\alpha) = f(x_k + \alpha p_k) ϕ(α)=f(xk​+αpk​)有下界,而 l ( α ) = f ( x k ) + c 1 α ∇ f ( x k ) T p k l(\alpha) = f(x_k) + c_1\alpha \nabla f(x_k)^T p_k l(α)=f(xk​)+c1​α∇f(xk​)Tpk​是无界减函数,因此 l ( α ) l(\alpha) l(α)和 ϕ ( α ) \phi(\alpha) ϕ(α)一定有交点。记 α ′ \alpha' α′为最小的交点,那么有:
f ( x k + α ′ p k ) = f ( x k ) + c 1 α ′ ∇ f ( x k ) T p k f(x_k + \alpha' p_k) = f(x_k) + c_1\alpha' \nabla f(x_k)^T p_k f(xk​+α′pk​)=f(xk​)+c1​α′∇f(xk​)Tpk​
并且对所有小于 α ′ \alpha' α′的值,Armijo条件都成立。

又由中值定理,存在 α ′ ′ ∈ ( 0 , α ′ ) \alpha'' \in (0, \alpha') α′′∈(0,α′)使得:
f ( x k + α ′ p k ) − f ( x k ) = α ′ ∇ f ( x k + α ′ ′ p k ) T p k f(x_k + \alpha' p_k) - f(x_k) = \alpha' \nabla f(x_k + \alpha'' p_k)^T p_k f(xk​+α′pk​)−f(xk​)=α′∇f(xk​+α′′pk​)Tpk​
⇒ ∇ f ( x k + α ′ ′ p k ) T p k = c 1 f ( x k ) T p k ≥ c 2 f ( x k ) T p k \Rightarrow \nabla f(x_k + \alpha'' p_k)^T p_k = c_1 f(x_k)^T p_k \geq c_2 f(x_k)^T p_k ⇒∇f(xk​+α′′pk​)Tpk​=c1​f(xk​)Tpk​≥c2​f(xk​)Tpk​
因此 α ′ ′ \alpha'' α′′满足Wolfe条件,又由f的连续可微性, α ′ ′ \alpha'' α′′的领域也满足Wolfe条件, c 1 f ( x k ) T p k c_1 f(x_k)^T p_k c1​f(xk​)Tpk​又是负值,因此该区间也满足强Wolfe条件,得证。


Goldstein条件

Goldstein条件如下:
f ( x k ) + ( 1 − c ) α k ∇ f ( x k ) T p k ≤ f ( x k + α k p k ) ≤ f ( x k ) + c α k ∇ f ( x k ) T p k f(x_k) + (1-c)\alpha_k \nabla f(x_k)^T p_k \leq f(x_k + \alpha_k p_k) \leq f(x_k) + c\alpha_k \nabla f(x_k)^T p_k f(xk​)+(1−c)αk​∇f(xk​)Tpk​≤f(xk​+αk​pk​)≤f(xk​)+cαk​∇f(xk​)Tpk​
其中 0 < c < 1 / 2 0 < c < 1/2 0<c<1/2

上式的右边即为Armijo条件,而左边是为了避免找到的 α \alpha α太小:
在这里插入图片描述
但Goldstein条件的问题是它左边的不等式有可能会将所有的极小值点排除在外。一般情况下Goldstein条件常用于Newton-type方法,但不适用于quasi-Newton方法


Backtracking线搜索

因为Wolfe条件的实现比较复杂,如果只是为了解决Armijo条件可能取值太小的问题,我们可以使用Backtracking线搜索:
在这里插入图片描述
只要初始的 α ‾ \overline{\alpha} α取得足够大,那么Backtracking线搜索方法就可以找到一个足够大的满足Armijo条件的 α \alpha α。


强Wolfe条件线搜索算法

如果要使用Wolfe条件来搜索步长,[3]中提供了如下两步式算法:
在这里插入图片描述
算法解释如下:

  1. 如果 ϕ ( α i ) > ϕ ( 0 ) + c 1 α i ϕ ′ ( 0 ) \phi(\alpha_i) > \phi(0) + c_1 \alpha_i \phi'(0) ϕ(αi​)>ϕ(0)+c1​αi​ϕ′(0)(即 α i \alpha_i αi​不满足Armijo条件);或者 ϕ ( α i ) > ϕ ( α i − 1 ) \phi(\alpha_i) > \phi(\alpha_{i-1}) ϕ(αi​)>ϕ(αi−1​);或者 ϕ ′ ( α i ) ≥ 0 \phi'(\alpha_i) \geq 0 ϕ′(αi​)≥0均说明 α i \alpha_i αi​已经越过了极小值点 ϕ ( α ) \phi(\alpha) ϕ(α)开始上升了,因此区间 ( α i − 1 , α i ) (\alpha_{i-1}, \alpha_i) (αi−1​,αi​)包含了满足强Wolfe条件的点,则转入zoom算法在区间 ( α i − 1 , α i ) (\alpha_{i-1}, \alpha_i) (αi−1​,αi​)中寻找符合条件的 α \alpha α
  2. 如果 ϕ ( α i ) ≤ ϕ ( 0 ) + c 1 α i ϕ ′ ( 0 ) \phi(\alpha_i) \leq \phi(0) + c_1 \alpha_i \phi'(0) ϕ(αi​)≤ϕ(0)+c1​αi​ϕ′(0)并且 ∣ ϕ ′ ( α i ) ∣ ≤ − c 2 ϕ ′ ( 0 ) |\phi'(\alpha_i)| \leq -c_2\phi'(0) ∣ϕ′(αi​)∣≤−c2​ϕ′(0),那么 α i \alpha_i αi​即是满足强Wolfe条件的步长,搜索停止
  3. 若上述都不符合,则迭代重复以上。一般这个位置会设置一个最大迭代次数,避免线搜寻陷在某一步一直出不来

在这里插入图片描述


Reference:

  1. Numerical Optimization, Jorge Nocedal, Stephen J. Wright, 2006

标签:Wolfe,xk,条件,Tpk,Armijo,pk,alpha
来源: https://blog.csdn.net/muyuu/article/details/120098335