置信域方法(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}$。我们进行分类讨论:
设$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}\]最后,我们给出置信域算法的具体步骤:
给定初始点$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$;
如果$\Vert\nabla f(x_k)\Vert\leq\epsilon$,停止迭代;
(近似)计算模型子问题$(3)$,得到$s_k$;
计算$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)$式校正置信域半径;
计算$q_k(s)$所需的部件(梯度,黑塞矩阵),令$k:=k+1$,转step 2.