具有非正定 Hessian 矩阵的牛顿法的共轭梯度

计算科学 优化 线性求解器
2021-12-04 07:38:13

我想最小化一个非线性函数f(x)使用牛顿法。在每个优化步骤,我计算一个下降方向d更新x使用二阶近似f(x)

2f(x) d=f(x)

所以我需要求解一个线性系统,但是 Hessian 矩阵2f(x)可能不是肯定的,这可能会给我一个无效的下降方向。我想运行共轭梯度来求解线性系统。在共轭梯度法中,其中一个步骤涉及到这个操作vT2 f(x) v(计算α根据 Shewchuk 的笔记,第 50 页https://www.cs.cmu.edu/~quake-papers/painless-conjugate-gradient.pdf,我正在使用v而不是d因为在我的约定中d是要更新的下降方向x)。我可以回收这个操作来知道 Hessian 是否不是正定的(如果这样的操作是负的)。

我这样实现了我的算法,所以一旦我检测到该操作是否定的,我就会停止 CG 求解器并返回迭代到该点的解决方案。我实际上已经看到它在实践中运行良好,但我没有严格的理由这样做。我记得听到/读过人们说每次 CG 迭代都会按照“重要性”的顺序处理不同的特征值,因此通过尽早停止,您最终会探索 Hessian 的正定部分。谁能指出我对此的更严格的理由?这是使用 CG 进行非线性优化来强制正定性的有效方法吗?

0个回答
没有发现任何回复~