信赖域法
最速下降法、牛顿法、共轭梯度法均为线搜索法,其一般策略是给定点 \(\boldsymbol{x}^{(k)}\) 后,定义搜索方向 \(\boldsymbol{d}^{(k)}\) ,并沿着该方向进行一维搜索。而信赖域法的搜索范围是一个以 \(\boldsymbol{x}^{(k)}\) 为中心的球域(信赖域),在此域内优化目标函数的二次逼近式,直到满足精度要求。信赖域法稳定性强,收敛性好,既有牛顿法的快速局部收敛性,又有理想的全局收敛性质,且不要求目标函数的 Hessian 矩阵正定。
一、信赖域法
无约束问题
二次逼近式
将 \(f(\boldsymbol{x})\) 在 \(\boldsymbol{x}^{(k)}\) 处进行 Taylor 展开并取二次近似
记 \(\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}\) 是常数,称为信赖域半径。因此原目标优化问题可以归结为求解一系列子问题:
其中,范数未作规定,这里讨论取欧式范数,即 \(\|\cdot\|=\|\cdot\|_{2}\) ,这样约束条件可写为 \((\boldsymbol d^\mathrm{T}\boldsymbol d)^{\frac{1}{2}}\le{r}_k\) 。
搜索方向
该约束子问题可通过对偶法求解(理解KKT条件和对偶问题)。若 \(\boldsymbol{d}^{(k)}\) 是该问题的最优解,则存在乘子 \(\hat w\ge 0\) ,使得
记作
得到 \(\boldsymbol{d}^{(k)}\) 是问题最优解的必要条件(KKT条件)
假设 \(\nabla^{2} f\left(\boldsymbol x^{(k)}\right)+w \bold{I}\) 可逆,则由上式可得到
可知二次模型的解 \(\boldsymbol{d}^{(k)}\) 与信赖域半径 \(r_k\) 有关。
当信赖域半径由小到大逐渐增大时,搜索方向在最速下降方向和牛顿方向间连续变化。
- 若 \(r_k\) 充分大,则 \(w\) 值可能很小,从而搜索方向接近牛顿方向,即
- 若 \(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\) 足够大,则认为逼近成功,取 \(\boldsymbol{x}^{(k+1)}=\boldsymbol{x}^{(k)}+\boldsymbol{d}^{(k)}\) ;否则后继点仍取 \(\boldsymbol{x}^{(k)}\) 。
算法步骤
-
给定可行点 \(\boldsymbol{x}^{(1)}\) ,信赖域半径 \(r_1\) ,参数 \(0<\mu<\eta<1\) (一般取 \(\mu=\frac{1}{4},\eta=\frac{3}{4}\))以及精度要求 \(\varepsilon\),置 \(k=1\) 。
-
计算 \(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)\) 。
-
求解子问题
\[\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)} \] -
若 \(\rho_k\le\mu\) ,则令 \(\boldsymbol{x}^{(k+1)}=\boldsymbol{x}^{(k)}\) ;若 \(\rho_k>\mu\) ,则令 \(\boldsymbol{x}^{(k+1)}=\boldsymbol{x}^{(k)}+\boldsymbol{d}^{(k)}\) 。
-
修改信赖域半径 \(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\) 。
-
置 \(k=k+1\) ,转步骤2。
算法特点
- 不要求目标函数的 Hessian 矩阵正定。
- 既有牛顿法的快速局部收敛性,也有理想的全局收敛性。
- 算法利用二次模型来修正步长,使得目标函数的下降比线搜索方法更有效。
- 搜索步长受 Taylor 展开式有效的信赖域的限制,此方法又称为有限步长法。
参考
- 《最优化理论与算法》陈宝林著。
- 理解KKT条件和对偶问题