微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。