置信域方法简介

Posted by Welt Xing on December 18, 2021

置信域方法(Trust-region Methods)又称为信赖域方法,它是一种最优化方法,能够保证最优化方法总体收敛。

它解决的是无约束的凸优化问题:

\[\min_{x\in\mathbb{R}^n}\quad f(x)\tag{1}\]

其中$f$是定义在$\mathbb{R}^n$上的二阶可微函数。对于当前所在的位置$x_k$,给定一个距离$\Delta_k$,我们想在以$x_k$为球心,$\Delta_k$为半径的高维球体中找到一个下降幅度最大的点,也就是

\[\begin{aligned} \min_{s_k}&\quad f(x_k+s)-f(x_k)\\ \text{s.t.}&\quad\Vert s\Vert\leq\Delta_k \end{aligned}\tag{2}\]

这样的问题还是很复杂,因此我们利用泰勒展开,得到一个近似问题:

\[\begin{aligned} \min_{s_k}&\quad q_k(s)=\nabla f(x_k)^Ts+\frac12s^T\nabla^2f(x_k)s\\ \text{s.t.}&\quad\Vert s\Vert\leq\Delta_k \end{aligned}\tag{3}\]

这里的黑塞矩阵$\nabla^2f(x_k)$由于计算复杂的原因,常常会用另一个矩阵进行替代,所以在有的资料上写作$B_k$. 我们将$\Delta_k$称作“置信域半径”。

上述优化问题便是置信域方法的一个模型子问题(因该问题是二次模型而得名),我们将目标函数设为$q_k(s)$,也就是第$k$次子问题。通过迭代求解子问题,最终得到目标解。可以知道,随着$s$的增大,由泰勒展开生成的二次模型会越来越偏移原来的目标函数。

设第$k$个子问题解出来的$s$为$s_k$,我们定义$r_k$:

\[r_k=\frac{f(x_k)-f(x_k+s_k)}{q_k(s_k)}\tag{4}\]

分子是真实下降量,分母是二次模型的下降量,也就是预测下降量,其比值用于衡量二次模型与目标函数的近似程度。如果$r_k$够大,也就是真实下降量够大,我们会接受这个$s_k$,令$x_{k+1}=x_k+s_k$,进行下一轮迭代,否则停留在原处。注意两种情况都是要修改置信域半径$\Delta_k$的。

接下来讨论选取$\Delta_k$的方法。设$0<\eta_1\leq\eta_2<1$,同时对该问题的置信域半径做出约束:所有的置信域半径不得超过$\bar{\Delta}$。我们进行分类讨论:

  • $r_k$太小,也就是$r_k<\eta_1$,表明二次模型与$f(x)$的差距太大,这是因为$\Delta_k$太大导致的,我们需要将置信域大幅度缩小;
  • $r_k$太大,也就是$r_k\geq\eta_2$,说明二次模型的估计过于保守,我们需要扩大置信域;
  • $r_k$不大不小,本着准确估计的原则,我们对置信界进行适当缩小。

设$0<\gamma_1<1<\gamma_2$,我们将上面的规则形式化,得到校正置信域半径的方法:

\[\begin{cases} \Delta_{k+1}\in[0,\gamma_1\Delta_k]&\text{if }r_k<\eta_1\\ \Delta_{k+1}\in[\gamma_1\Delta_k,\Delta_k]&\text{if }r_k\in[\eta_1,\eta_2)\\ \Delta_{k+1}\in[\Delta_k,\min\{\gamma_2\Delta_k,\bar{\Delta}\}]&\text{if }r_k\geq\eta_2\\ \end{cases}\tag{5}\]

最后,我们给出置信域算法的具体步骤:

  1. 给定初始点$x_0, \bar{\Delta}, \Delta_0\in(0,\bar{\Delta}),\epsilon\geq0,0<\eta_1\leq\eta_2<1,0<\gamma_1<1<\gamma_2,k:=0$;

  2. 如果$\Vert\nabla f(x_k)\Vert\leq\epsilon$,停止迭代;

  3. (近似)计算模型子问题$(3)$,得到$s_k$;

  4. 计算$r_k$,令

    \[x_{k+1}=\begin{cases} x_k+s_k&\text{if }r_k\geq\eta_1\\ x_k&\text{else} \end{cases}\]
  5. 按$(5)$式校正置信域半径;

  6. 计算$q_k(s)$所需的部件(梯度,黑塞矩阵),令$k:=k+1$,转step 2.