好的,我注意到您已列出了详尽的已讲词条。我将为您讲解一个尚未出现的、在优化理论和算法设计中具有基础性地位的词条。
信赖域方法的子问题求解算法 (Trust Region Subproblem Solving Algorithms)
我将为您循序渐进地讲解这个概念。
第一步:理解“信赖域方法”的总体框架
- 核心思想:在每一次迭代中,我们都在当前迭代点 \(x_k\) 附近,用一个简单的“模型函数” \(m_k(p)\) 来近似复杂的目标函数 \(f(x)\)。这个近似只在以 \(x_k\) 为中心、半径为 \(\Delta_k\) 的一个“球”(信赖域)内被认为是可靠的。
- 迭代步骤:
- 构建模型:在当前点 \(x_k\),构建一个简单的局部模型 \(m_k(p)\),通常是一个二次模型:\(m_k(p) = f(x_k) + \nabla f(x_k)^T p + \frac{1}{2} p^T B_k p\)。其中 \(p\) 是待求的移动步长,\(B_k\) 是 Hessian 矩阵或其近似(如拟牛顿法的 BFGS 矩阵)。
- 求解子问题:在信赖域 \(\|p\| \le \Delta_k\) 内,求解模型的最优步长 \(p_k\): \(\min_{p \in \mathbb{R}^n} m_k(p) \quad \text{s.t.} \quad \|p\| \le \Delta_k\)。
- 评估与更新:计算实际下降 \(f(x_k) - f(x_k + p_k)\) 与模型预测下降 \(m_k(0) - m_k(p_k)\) 的比值 \(\rho_k\)。
- 如果 \(\rho_k\) 接近1,说明模型近似得很好,接受这一步,并可能扩大信赖域半径 \(\Delta_{k+1} > \Delta_k\)。
- 如果 \(\rho_k\) 很小甚至为负,说明模型近似得很差,拒绝这一步( \(x_{k+1} = x_k\) ),并缩小信赖域半径 \(\Delta_{k+1} < \Delta_k\) 以获取更精确的模型。
4. 迭代:重复以上步骤,直到满足收敛条件。
第二步:聚焦核心——信赖域子问题 (Trust Region Subproblem, TRS)
- 标准形式:在第二步中,我们需要精确求解的子优化问题,通常写作:
\[ \min_{p \in \mathbb{R}^n} \quad g^T p + \frac{1}{2} p^T B p \quad \text{s.t.} \quad \|p\| \le \Delta \]
这里为了简洁,省略了下标 \(k\),其中 \(g = \nabla f(x_k)\), \(B = B_k\),信赖域约束 \(\|p\|\) 通常是2-范数(欧几里得范数)。
- 问题特性:这是一个具有球形约束的(可能非凸)二次优化问题。其挑战在于:
- 非凸性:矩阵 \(B\) 可能不定(即存在负特征值),导致目标函数非凸。传统的无约束优化方法(如牛顿法)会失效。
- 约束性:球形约束使得最优解可能落在边界上( \(\|p\| = \Delta\) ),也可能落在内部( \(\|p\| < \Delta\) )。内部解等价于无约束极小点,但当无约束极小点在信赖域外时,最优解必然落在边界上。
第三步:最优性条件与求解思路
- KKT条件:对于子问题,其拉格朗日函数为 \(L(p, \lambda) = g^T p + \frac{1}{2} p^T B p + \frac{\lambda}{2} (p^T p - \Delta^2)\)。最优解 \(p^*\) 和对应的拉格朗日乘子 \(\lambda^*\) 满足:
- 平稳性条件:\((B + \lambda^* I) p^* = -g\)
- 互补松弛条件:\(\lambda^* (\|p^*\| - \Delta) = 0\)
- 可行性:\(\|p^*\| \le \Delta\)
- 对偶可行性:\(\lambda^* \ge 0\)
- 二阶充分条件:矩阵 \((B + \lambda^* I)\) 半正定。
- 核心洞见:从平稳性条件 \((B + \lambda I) p = -g\) 可以看出,最优解 \(p^*\) 是参数 \(\lambda\) 的函数:\(p(\lambda) = -(B + \lambda I)^{-1} g\)。我们需要找到一个 \(\lambda^* \ge 0\),使得对应的 \(p(\lambda^*)\) 满足:
- 如果 \(\lambda^* = 0\),则 \(B\) 需半正定且 \(\|p(0)\| \le \Delta\)(内部解)。
- 如果 \(\lambda^* > 0\),则必有 \(\|p(\lambda^*)\| = \Delta\)(边界解),且 \(B + \lambda^* I\) 正定。
第四步:经典求解算法——柯西点法与精确求解法
- 柯西点 (Cauchy Point) 法:
- 思想:这是一种快速、廉价的近似求解法。它先沿最速下降方向(负梯度方向 \(-g\) )走到信赖域边界,得到点 \(p^C_s\)。然后在连接原点、最速下降方向和 \(p^C_s\) 的二维子空间内,极小化二次模型。这个二维子空间极小化有解析解。
- 优点:计算量极小(主要是一次梯度计算和一个低维最小化),能保证全局收敛。
- 缺点:解的质量是“一阶”的,收敛速度较慢。通常作为复杂算法的安全备用步骤或初始化步骤。
- 精确求解法:根搜索(牛顿迭代或特征值分解):
- 思想:既然最优解满足 \(\|p(\lambda)\| = \Delta\) (当 \(\lambda > 0\)),我们可以将问题转化为求解关于 \(\lambda\) 的非线性方程:
\[ \phi(\lambda) = \|p(\lambda)\| - \Delta = \|-(B + \lambda I)^{-1} g\| - \Delta = 0, \quad \lambda > 0, \quad B + \lambda I \succ 0 \]
* **求解方法**:
- 特征值分解法:对矩阵 \(B\) 进行特征值分解 \(B = Q \Lambda Q^T\),则 \(p(\lambda) = -Q (\Lambda + \lambda I)^{-1} Q^T g\)。函数 \(\phi(\lambda)\) 可以显式写出,其求解转化为一个关于 \(\lambda\) 的单变量单调递减方程的求根问题,可以用牛顿法高效求解。这是最经典和稳健的精确求解方法。
- 截断共轭梯度法 (Steihaug-Toint CG):这是一种迭代法。它运行标准共轭梯度法来求解方程 \(B p = -g\),但在迭代过程中:
a) 如果得到的解在信赖域内部且共轭梯度法正常收敛,则返回内部解。
b) 如果迭代路径首次触及信赖域边界( \(\|p\| = \Delta\) ),则返回这个边界点作为近似解。
c) 如果检测到曲率为负( \(p^T B p \le 0\) ),意味着模型在边界上可能下降更多,此时算法沿着当前负曲率方向走到边界,并返回该点。
* 优点:截断共轭梯度法特别适合大规模稀疏问题,因为它只需矩阵-向量乘积,无需矩阵求逆或分解。
第五步:算法选择与比较
- 柯西点法:适用于对子问题精度要求不高、或作为复杂算法(如截断共轭梯度法)失效时的安全步。是保证理论收敛性的基石。
- 特征值分解/根搜索法:精度最高,能得到数学上“精确”的全局解。但需要对矩阵 \(B\) 进行分解,计算复杂度为 \(O(n^3)\),适合中小规模稠密问题。
- 截断共轭梯度法:是大规模优化问题的首选。它牺牲了一点精度(返回的通常是边界点,但不一定是边界上全局最优的点),但换来了处理海量变量(\(n\) 很大)的能力,因为它具有迭代法的良好尺度特性。
总结:
信赖域方法的子问题求解算法 是信赖域框架中的核心计算引擎。其目标是在一个球型约束下最小化一个(可能非凸的)二次函数。我们首先通过KKT条件将其转化为一个关于对偶变量 \(\lambda\) 的方程。在实践中,根据问题规模和精度需求,我们有多样化的选择:计算简单但粗糙的柯西点法、精度最高但计算量大的基于特征值分解的精确根搜索法,以及兼顾大规模计算和实用精度的截断共轭梯度法。高效稳健地求解这个子问题,是整个信赖域方法快速、可靠收敛的关键。