scipy 中的 Hessian 矩阵优化和根提供为矩阵向量乘法函数

问题描述

我正在尝试使用 scipy 优化解决无约束最小化问题。 可用的基于梯度的算法可以很好地解决我的问题,而且我可以得到一个不错的局部最小化器......达到一定程度。

确实,接近收敛时,数值不准确开始出现,成本函数的值保持不变,而其梯度的范数仍然是 $\approx 10^{-5}$。

在这一点上,我宁愿切换到成本函数梯度的求根算法。 幸运的是,我知道如何计算我的函数的 Hessian(即梯度的梯度)。

由于与手头问题相关的技术原因,计算函数值的复杂度类别、其梯度和它的 Hessian 为 O(n ln(n))、O(n ln(n)) 和 O(n^ 2 ln(n))(其中n在问题的维度上是线性的,这与连续最小化问题的离散化大小有关)。

但是,我能够编写一个函数,该函数将向量作为输入并返回函数的 Hessian 乘以该向量的 O(n ln(n))。

我的问题:我可以使用 scipy 的寻根算法来利用这个事实吗,就像 scipy.optimize 让我提供这个函数一样(见 https://docs.scipy.org/doc/scipy/reference/tutorial/optimize.html#hessian-product-example)?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)