玩命加载中 . . .

信赖域法


最速下降法、牛顿法、共轭梯度法均为线搜索法,其一般策略是给定点 $\boldsymbol{x}^{(k)}$ 后,定义搜索方向 $\boldsymbol{d}^{(k)}$ ,并沿着该方向进行一维搜索。而信赖域法的搜索范围是一个以 $\boldsymbol{x}^{(k)}$ 为中心的球域(信赖域),在此域内优化目标函数的二次逼近式,直到满足精度要求。信赖域法稳定性强,收敛性好,既有牛顿法的快速局部收敛性,又有理想的全局收敛性质,且不要求目标函数的 Hessian 矩阵正定。

一、信赖域法

无约束问题
$$
\min\quad f(\boldsymbol{x}),\quad \boldsymbol{x}\in\mathbb{R}^n
$$
二次逼近式

  将 $f(\boldsymbol{x})$ 在 $\boldsymbol{x}^{(k)}$ 处进行 Taylor 展开并取二次近似
$$
f(\boldsymbol{x}) \approx f\left(\boldsymbol{x}^{(k)}\right)+\nabla f\left(\boldsymbol{x}^{(k)}\right)^{\mathrm{T}}\left(\boldsymbol{x}-\boldsymbol{x}^{(k)}\right)+\frac{1}{2}\left(\boldsymbol{x}-\boldsymbol{x}^{(k)}\right)^{\mathrm{T}} {\nabla}^{2} f\left(\boldsymbol{x}^{(k)}\right)\left(\boldsymbol{x}-\boldsymbol{x}^{(k)}\right)
$$
记 $\boldsymbol d=\boldsymbol{x}-\boldsymbol{x}^{(k)}$ ,则得到一个二次模型 $\varphi_{k}(\boldsymbol{d})$ ,并且为了在 $\boldsymbol{x}^{(k)}$ 附近用 $\varphi_{k}(\boldsymbol{d})$ 近似 $f\left(\boldsymbol{x}^{(k)}+\boldsymbol{d}\right)$ ,需要限定 $|\boldsymbol{d}| \leqslant r_{k}$ ,$r_{k}$ 是常数,称为信赖域半径。因此原目标优化问题可以归结为求解一系列子问题:
$$
\begin{aligned}
&\min \quad \varphi_{k}(\boldsymbol{d}) \stackrel{\text { def }}{=} f\left(\boldsymbol{x}^{(k)}\right)+\nabla f\left(\boldsymbol{x}^{(k)}\right)^{\mathrm{T}} \boldsymbol{d}+\frac{1}{2} \boldsymbol{d}^{\mathrm{T}} \nabla^{2} f\left(\boldsymbol{x}^{(k)}\right) \boldsymbol{d} \
&\text { s.t. }|\boldsymbol{d}| \leqslant r_{k}
\end{aligned}
$$
其中,范数未作规定,这里讨论取欧式范数,即 $|\cdot|=|\cdot|_{2}$ ,这样约束条件可写为 $(\boldsymbol d^\mathrm{T}\boldsymbol d)^{\frac{1}{2}}\le{r}_k$ 。

搜索方向

  该约束子问题可通过对偶法求解(理解KKT条件和对偶问题)。若 $\boldsymbol{d}^{(k)}$ 是该问题的最优解,则存在乘子 $\hat w\ge 0$ ,使得
$$
\begin{aligned}
&\nabla^{2} f\left(\boldsymbol{x}^{(k)}\right) \boldsymbol{d}^{(k)}+\nabla f\left(\boldsymbol{x}^{(k)}\right)+\frac{\hat{w}}{\left(\boldsymbol d^{(k)\mathrm{T}}\boldsymbol d^{(k)}\right)^{\frac{1}{2}}} \boldsymbol{d}^{(k)}=0 \
&\hat{w}\left(|\boldsymbol{d}^{(k)} |-r_{k}\right)=0 .
\end{aligned}
$$
记作
$$
w=\frac{\hat{w}}{\left(\boldsymbol{d}^{(k) \mathrm T} \boldsymbol{d}^{(k)}\right)^{\frac{1}{2}}}
$$
得到 $\boldsymbol{d}^{(k)}$ 是问题最优解的必要条件(KKT条件
$$
\left{\begin{array}{l}
\nabla^{2} f\left(\boldsymbol{x}^{(k)}\right) \boldsymbol d^{(k)}+w \boldsymbol d^{(k)}=-\nabla f\left(\boldsymbol{x}^{(k)}\right), \
w\left(\left|\boldsymbol{d}^{(k)}\right|-r_{k}\right)=0, \
w \geqslant 0, \
\left|\boldsymbol{d}^{(k)}\right| \leqslant r_{k} .
\end{array}\right.
$$
假设 $\nabla^{2} f\left(\boldsymbol x^{(k)}\right)+w \bold{I}$ 可逆,则由上式可得到
$$
\left|\boldsymbol{d}^{(k)}\right|=\left|\left(\nabla^{2} f\left(\boldsymbol{x}^{(k)}\right)+w \bold{I}\right)^{-1} \nabla f\left(\boldsymbol{x}^{(k)}\right)\right|
$$
可知二次模型的解 $\boldsymbol{d}^{(k)}$ 与信赖域半径 $r_k$ 有关。

当信赖域半径由小到大逐渐增大时,搜索方向在最速下降方向和牛顿方向间连续变化。

  • 若 $r_k$ 充分大,则 $w$ 值可能很小,从而搜索方向接近牛顿方向,即

$$
\boldsymbol d^{(k)} \approx-\nabla^{2} f\left(\boldsymbol x^{(k)}\right)^{-1} \nabla f\left(\boldsymbol x^{(k)}\right)
$$

  • 若 $r_k\rightarrow0$,则 $\boldsymbol{d}^{(k)}\rightarrow 0,w\rightarrow\infty$ ,此时搜索方向接近最速下降方向
    $$
    \boldsymbol{d}^{(k)} \approx-\frac{1}{w} \nabla f\left(\boldsymbol{x}^{(k)}\right)
    $$

逼近判决

  求出最优解 $\boldsymbol{d}^{(k)}$ 后,点 $\boldsymbol{x}^{(k)}+\boldsymbol{d}^{(k)}$ 是否能作为原问题的近似解还需要根据用 $\varphi_{k}(\boldsymbol{d})$ 逼近 $f(\boldsymbol{x})$ 是否成功来确定。用函数实际下降量与预测下降量之比来进行衡量
$$
\rho_k=\frac{f\left(\boldsymbol{x}^{(k)}\right)-f\left(\boldsymbol{x}^{(k)}+\boldsymbol{d}^{(k)}\right)}{f\left(\boldsymbol{x}^{(k)}\right)-\varphi_{k}\left(\boldsymbol{d}^{(k)}\right)}
$$
若 $\rho_k$ 足够大,则认为逼近成功,取 $\boldsymbol{x}^{(k+1)}=\boldsymbol{x}^{(k)}+\boldsymbol{d}^{(k)}$ ;否则后继点仍取 $\boldsymbol{x}^{(k)}$ 。

算法步骤

  1. 给定可行点 $\boldsymbol{x}^{(1)}$ ,信赖域半径 $r_1$ ,参数 $0<\mu<\eta<1$ (一般取 $\mu=\frac{1}{4},\eta=\frac{3}{4}$)以及精度要求 $\varepsilon$,置 $k=1$ 。

  2. 计算 $f\left(\boldsymbol{x}^{(k)}\right), \nabla f\left(\boldsymbol{x}^{(k)}\right)$ ,若 $\left|\nabla f\left(\boldsymbol{x}^{(k)}\right)\right| \leqslant \varepsilon$ ,则停止计算,得解 $\boldsymbol{x}^{(k)}$ ;否则,计算 $\nabla^{2} f\left(\boldsymbol{x}^{(k)}\right)$ 。

  3. 求解子问题
    $$
    \begin{aligned}
    &\min \quad \varphi_{k}(\boldsymbol{d}) \stackrel{\text { def }}{=} f\left(\boldsymbol{x}^{(k)}\right)+\nabla f\left(\boldsymbol{x}^{(k)}\right)^{\mathrm{T}} \boldsymbol{d}+\frac{1}{2} \boldsymbol{d}^{\mathrm{T}} \nabla^{2} f\left(\boldsymbol{x}^{(k)}\right) \boldsymbol{d} \
    &\text { s.t. }|\boldsymbol{d}| \leqslant r_{k}
    \end{aligned}
    $$
    得到问题的最优解 $\boldsymbol{d}^{(k)}$ ,并计算
    $$
    \rho_k=\frac{f\left(\boldsymbol{x}^{(k)}\right)-f\left(\boldsymbol{x}^{(k)}+\boldsymbol{d}^{(k)}\right)}{f\left(\boldsymbol{x}^{(k)}\right)-\varphi_{k}\left(\boldsymbol{d}^{(k)}\right)}
    $$

  4. 若 $\rho_k\le\mu$ ,则令 $\boldsymbol{x}^{(k+1)}=\boldsymbol{x}^{(k)}$ ;若 $\rho_k>\mu$ ,则令 $\boldsymbol{x}^{(k+1)}=\boldsymbol{x}^{(k)}+\boldsymbol{d}^{(k)}$ 。

  5. 修改信赖域半径 $r_k$ 。若 $\rho_k\le\mu$ ,令 $r_{k+1}=\frac{1}{2}r_k$;若 $\mu<\rho_k<\eta$ ,令 $r_{k+1}=r_k$;若 $\rho_k\ge\eta$ ,令 $r_{k+1}=2r_k$ 。

  6. 置 $k=k+1$ ,转步骤2。

算法特点

  1. 不要求目标函数的 Hessian 矩阵正定。
  2. 既有牛顿法的快速局部收敛性,也有理想的全局收敛性。
  3. 算法利用二次模型来修正步长,使得目标函数的下降比线搜索方法更有效。
  4. 搜索步长受 Taylor 展开式有效的信赖域的限制,此方法又称为有限步长法。

参考


文章作者: hjd
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hjd !
评论
 上一篇
对偶理论 对偶理论
简单介绍了线性规划以及非线性规划中的对偶理论。包含对偶函数、Lagrange 对偶问题、弱/强对偶定理以及 Slater条件、KKT条件。其中,Slater条件是原问题为凸时关于强对偶的充分不必要条件;KKT条件是关于强对偶的必要不充分条件,原问题为凸时则是充要条件。
2022-08-07
下一篇 
拟牛顿法 拟牛顿法
拟牛顿法,用不包含二阶导数的矩阵近似牛顿法中的 Hessian 矩阵的逆矩阵,从而避免计算二阶导。
2022-06-23
  目录