信赖域法

最速下降法、牛顿法、共轭梯度法均为线搜索法,其一般策略是给定点 \(\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 展开式有效的信赖域的限制,此方法又称为有限步长法。

参考

posted @ 2022-08-19 11:37  无发可理的理发师  阅读(740)  评论(0编辑  收藏  举报