文章目录
- 无约束优化:线搜索最速下降
- 无约束优化问题
- 线搜索最速下降
- 精确线搜索
- 非精确线搜索
- Armijo准则
- Goldstein准则
- Wolfe准则
- 参考文献
无约束优化:线搜索最速下降
无约束优化问题
线搜索最速下降
对于光滑函数 f ( x ) f(x) f(x),沿着函数负梯度方向下降速度最快。对于线搜索最速下降方法而言,核心问题是如何选择搜索步长 τ \tau τ,一般有以下四种方法:
- 固定步长: τ = c \tau = c τ=c。如下图所示,若常数取太大,则搜索振荡厉害且对于非凸函数有可能发散;若太小,则收敛速度慢;
- 渐消步长: τ = c / k \tau=c/k τ=c/k。适用性强,对于非光滑函数、梯度存在噪声( ▽ f ( x ) ′ = ▽ f ( x ) + ε \triangledown f(x)'=\triangledown f(x)+\varepsilon ▽f(x)′=▽f(x)+ε ,随机噪声)适用,稳健性强但收敛速度慢,适用于条件差但对收敛速度要求不高的场景;
- 精确线搜索: τ = arg min α f ( x k + α d ) \tau=\arg \min _\alpha f\left(x^k+\alpha d\right) τ=argminαf(xk+αd),实际应用较少,下面详述;
- 非精确线搜索: τ ∈ { α ∣ f ( x k ) − f ( x k + α d ) ≥ − c ⋅ α d T ∇ f ( x k ) } \tau \in\left\{\alpha \mid f\left(x^k\right)-f\left(x^k+\alpha d\right) \geq-c \cdot \alpha d^{\mathrm{T}} \nabla f\left(x^k\right)\right\} τ∈{α∣f(xk)−f(xk+αd)≥−c⋅αdT∇f(xk)},重要,下面详述。
精确线搜索
此时我们构造了一个辅助函数
ϕ
(
α
)
=
f
(
x
k
+
α
d
k
)
\phi(\alpha)=f\left(x^k+\alpha d^k\right)
ϕ(α)=f(xk+αdk),
α
\alpha
α是该辅助函数的自变量,该函数的几何含义非常直观:它是目标函数
f
(
x
)
f(x)
f(x)在射线
{
x
k
+
α
d
k
:
α
>
0
}
\left\{x^k+\alpha d^k: \alpha>0\right\}
{xk+αdk:α>0}上的限制。线搜索的目标就是选取合适的
α
k
\alpha_{k}
αk使得
ϕ
(
α
k
)
\phi\left(\alpha_k\right)
ϕ(αk)尽可能小,自然而言引入一个子优化问题:
α
k
=
arg
min
α
>
0
ϕ
(
α
)
\alpha_k=\underset{\alpha>0}{\arg \min } \phi(\alpha)
αk=α>0argminϕ(α)
这个子优化算法就是精确线搜索,目的是找到精确的最佳步长
α
k
\alpha_{k}
αk。但在原本的最速下降优化问题中再引入一个子优化问题,这本身就带来比较大的计算量,因此精确线搜索在实际应用中较少使用。由此,引出非精确线搜索算法,即把条件放宽,不要求得到精确的最佳步长
α
k
\alpha_k
αk,而是仅仅要求
ϕ
(
α
)
\phi(\alpha)
ϕ(α)满足某些不等式要求。
非精确线搜索
Armijo准则
设 d k d^k dk是点 x k x^k xk处的下降方向,若 f ( x k + α d k ) ⩽ f ( x k ) + c 1 α ∇ f ( x k ) T d k f\left(x^k+\alpha d^k\right) \leqslant f\left(x^k\right)+c_1 \alpha \nabla f\left(x^k\right)^{\mathrm{T}} d^k f(xk+αdk)⩽f(xk)+c1α∇f(xk)Tdk,则称步长 α \alpha α满足Armijo准则,其中 c 1 ∈ ( 0 , 1 ) c_1 \in(0,1) c1∈(0,1)是一个常数。一般 d k d^k dk为负梯度方向,则 c 1 α ∇ f ( x k ) T d k < 0 c_1 \alpha \nabla f\left(x^k\right)^{\mathrm{T}} d^k <0 c1α∇f(xk)Tdk<0,若满足Armijo准则,则严格满足 f ( x k + α d k ) < f ( x k ) f\left(x^k+\alpha d^k\right) < f\left(x^k\right) f(xk+αdk)<f(xk),因此又称该准则为充分下降条件,可保证每一步迭代充分下降。
该准则有非常直观的几何含义,如上图所示。在实际应用中,参数 c 1 c_1 c1通常选为一个很小的正数,例如 c 1 = 1 0 − 3 c_1=10^{-3} c1=10−3,这使得Armijo准则非常容易满足。但仅仅使用该准则无法保证迭代的收敛性,因为取 α = 0 \alpha=0 α=0也是满足准则中的条件,而这意味着迭代序列中的点固定不变,这样重复收敛就没有意义,因此Armijo准则一般搭配其他准则来使用。基于Armijo准则的最速下降算法步骤如下:
上述算法不会无限进行下去,因为沿着梯度负方向,当 α \alpha α充分小时,该准则总是成立的。为了避免步长过小,在实际应用中一般会给 α \alpha α设置一个下界,这就是Goldstein准则。
Goldstein准则
Armijo-Goldstein准则,简称Goldstein准则,简单来说就是同时给 α \alpha α设置上下界,定义如下:
设
d
k
d^k
dk是点
x
k
x^k
xk处的下降方向,若
f
(
x
k
+
α
d
k
)
⩽
f
(
x
k
)
+
c
α
∇
f
(
x
k
)
T
d
k
,
f
(
x
k
+
α
d
k
)
⩾
f
(
x
k
)
+
(
1
−
c
)
α
∇
f
(
x
k
)
T
d
k
\begin{aligned} & f\left(x^k+\alpha d^k\right) \leqslant f\left(x^k\right)+c \alpha \nabla f\left(x^k\right)^{\mathrm{T}} d^k, \\ & f\left(x^k+\alpha d^k\right) \geqslant f\left(x^k\right)+(1-c) \alpha \nabla f\left(x^k\right)^{\mathrm{T}} d^k \end{aligned}
f(xk+αdk)⩽f(xk)+cα∇f(xk)Tdk,f(xk+αdk)⩾f(xk)+(1−c)α∇f(xk)Tdk
则称步长
α
\alpha
α满足Goldstein准则,其中
c
∈
(
0
,
0.5
)
c \in (0, 0.5)
c∈(0,0.5).
该准则的几何意义同样非常直观,如上图所示,在区间 [ α 1 , α 2 ] [\alpha_1,\alpha_2] [α1,α2]中的点均满足Goldstein准则。但需要注意的是,该准则可能避开最优的函数值, ϕ ( α ) \phi(\alpha) ϕ(α)的最小值点并不在区间 [ α 1 , α 2 ] [\alpha_1,\alpha_2] [α1,α2]内。为此,我们引入Armijo-Wolfe准则。
Wolfe准则
Armijo-Wolfe准则,简称Wolfe准则,定义如下:
设
d
k
d^k
dk是点
x
k
x^k
xk处的下降方向,若
f
(
x
k
+
α
d
k
)
⩽
f
(
x
k
)
+
c
1
α
∇
f
(
x
k
)
T
d
k
∇
f
(
x
k
+
α
d
k
)
T
d
k
⩾
c
2
∇
f
(
x
k
)
T
d
k
\begin{aligned} & f\left(x^k+\alpha d^k\right) \leqslant f\left(x^k\right)+c_1 \alpha \nabla f\left(x^k\right)^{\mathrm{T}} d^k \\ & \nabla f\left(x^k+\alpha d^k\right)^{\mathrm{T}} d^k \geqslant c_2 \nabla f\left(x^k\right)^{\mathrm{T}} d^k \end{aligned}
f(xk+αdk)⩽f(xk)+c1α∇f(xk)Tdk∇f(xk+αdk)Tdk⩾c2∇f(xk)Tdk
则称步长
α
\alpha
α满足Wolfe准则,其中
c
1
,
c
2
∈
(
0
,
1
)
c_1,c_2 \in (0,1)
c1,c2∈(0,1)为给定常数且
c
1
<
c
2
c_1 < c_2
c1<c2.
由该准则的定义可以看出,仍然使用第一个条件即Armijo准则确定步长上界,在第二个条件中 ∇ f ( x k + α d k ) T d k \nabla f\left(x^k+\alpha d^k\right)^{\mathrm{T}} d^k ∇f(xk+αdk)Tdk是 ϕ ( α ) \phi(\alpha) ϕ(α)的导数,也就是要求 ϕ ( α ) \phi(\alpha) ϕ(α)在点 α \alpha α处切线的斜率不能小于 ϕ ′ ( 0 ) \phi^{\prime}(0) ϕ′(0)的 c 2 c_2 c2倍。如下图所示,在区间 [ α 1 , α 2 ] [\alpha_1,\alpha_2] [α1,α2]中的点均满足Wolfe准则, α k = arg min α > 0 ϕ ( α ) \alpha_k=\underset{\alpha>0}{\arg \min } \phi(\alpha) αk=α>0argminϕ(α)子优化问题的最优解处( ϕ ( α ) \phi(\alpha) ϕ(α)的极小值点)有 ϕ ′ ( α ∗ ) = ∇ f ( x k + α ∗ d k ) T d k = 0 \phi^{\prime}\left(\alpha^*\right)=\nabla f\left(x^k+\alpha^* d^k\right)^{\mathrm{T}} d^k=0 ϕ′(α∗)=∇f(xk+α∗dk)Tdk=0,永远满足Wolfe准则的第二个条件。因此,该准则在绝大多数情况下包含线搜索子问题的精确解,在实际应用中,参数 c 2 = 0.9 c_2=0.9 c2=0.9.
参考文献
机器人中的数值优化
最优化:建模、算法与理论/最优化计算方法