我有一个大问题,我正在使用牛顿法进行优化。这涉及到一个大的稀疏 Hessian 矩阵。为了更好地收敛并且不会过早陷入困境,我想让 Hessian 半正定。我翻阅了一些材料:
https://ljk.imag.fr/membres/Jerome.Malick/Talks/11-SIOPT.pdf
https://hal.archives-ouvertes.fr/hal-00574437/file/henrion-malick-revision.pdf
并进行了一些实验,但我没有想出一个实用的解决方案。我想知道是否有人对此事有提示。
编辑:澄清一下,当我投影密集矩阵(使用 Matlab eig)时它工作正常,但对于大型稀疏矩阵,这种方法不实用。
--
我目前的问题是网格相关的,我能够分别处理我的能量中的术语,得到一个本地 6x6 Hessian,我使用特征值分解将其投影到 PSD,a-la
https://www.math.ucla.edu/~jteran/papers/TSIF05.pdf
它工作正常,但我想知道一般问题的解决方案。
--
在这个主题上,我也有(稀疏)线性约束。将它们与 Hessian(拉格朗日乘数样式)结合,得到的 KKT 系统(提取线搜索的方向)变为 [H c; c' 0],即使 H 是 PSD,也可能不是 PSD。对此有什么想法吗?
--
对于代码示例或库,我的首选是 matlab。