知识点概述
基于模型的无导数优化方法是一类非常有效的DFO算法。其核心思想是在当前迭代点附近,通过一组采样点上的函数值来插值构建一个目标函数的近似模型(通常是二次模型)。然后,在一个信赖域内最小化这个模型来产生一个试探步。算法的成功关键在于维护一个几何构型良好的插值点集,以保证模型的准确性。
教材原文
Some of the most effective algorithms for … DFO … construct a linear or quadratic model of the objective function and define the next iterate by seeking to minimize this model inside a trust region. Suppose that at the current iterate we have a set of sample points . We wish to construct a quadratic model of the form We determine the … coefficients … by imposing the interpolation conditions
详细解释
-
模型构建
- 插值: 算法不使用导数,而是通过函数值来推断曲率信息。它选取个点,并要求二次模型在这些点上的值与真实函数的值完全相等。
- 模型自由度: 一个n维二次模型有 个待定系数()。因此,为了唯一确定一个二次模型,需要 个插值点。
- 线性模型: 作为简化,也可以构建线性模型 ,此时只需要个插值点。
-
算法框架 (Algorithm 9.1)
- 这是一个信赖域框架,结合了模型构建和插值点集管理。
- 步骤:
- 构建模型: 利用当前的个插值点,求解一个线性方程组来确定二次模型的系数。
- 求解子问题: 在信赖域 内最小化模型,得到试探步。
- 评估步长: 计算实际下降与预测下降比。
- 如果足够大(例如 ),则接受步长,并将新点加入插值集,替换掉其中一个旧点。
- 如果很小,则拒绝步长。
- 管理插值集和信赖域:
- 如果步长被接受,可能会扩大信赖域。
- 如果步长被拒绝,需要判断是模型不够好还是信赖域太大。通过检查插值点集的“几何质量”(例如,基于拉格朗日多项式),如果几何构型不好,则调用一个几何改进程序来替换插值点以改善模型质量;如果几何构型良好,则说明是模型在当前信赖域内失效,此时应缩小信赖域。
-
插值点集的管理
- 重要性: 插值点集的几何构型直接决定了插值模型的质量和稳定性。如果所有点都共线或共面,模型将是退化的。
- Poisedness: 一个好的插值点集被称为是“poised”的,这意味着由插值条件定义的线性系统是良态的(非奇异的)。
- 更新策略: 当接受一个新点时,需要从旧的插值集中移除一个点。一个好的策略是选择那个使得新点的拉格朗日函数最大的点,这样可以最大化新点集的行列式,从而改善模型的几何质量。
-
最小范数变化更新 (Minimum-Change Updating)
- 这是一种降低模型构建成本的变体。它不要求个点,而是使用较少的点(例如个)。
- 为了确定模型,除了满足插值条件外,还增加了一个额外要求:新的Hessian模型与旧的模型之间的变化最小(在Frobenius范数意义下)。
- 这使得算法更接近于传统的拟牛顿法,并降低了每次迭代的计算成本(从降至)。
学习要点
- 核心思想: 用函数值插值代替导数来构建二次模型。
- 与信赖域的结合: 模型法天然地与信赖域框架结合,通过求解信赖域子问题来产生步长。
- 插值点几何: 理解插值点集的几何构型(poisedness)对模型质量至关重要,是算法稳健性的关键。
- 成本: 认识到构建完整的二次模型需要个函数值,且每步迭代成本高昂(或),这限制了该方法只能用于中小型问题。
实践应用
- 基于模型的DFO方法是目前解决中小型黑箱优化问题的最有效和最可靠的方法之一。
- 著名的算法和软件包括Powell的UOBYQA和NEWUOA,以及Conn, Scheinberg, Toint的DFO。
- 它们被成功应用于航空航天设计、工程模拟参数校准等领域,在这些领域中,函数求值成本极高且导数不可用。
关联知识点
- 前置知识: 022-方法-无导数优化概述, 010-方法-信赖域方法概述
- 后续知识: 024-方法-坐标与模式搜索法