gpt4 book ai didi

numpy - 在 scipy 中使用 hessian 进行约束优化

转载 作者:行者123 更新时间:2023-12-05 06:44:22 26 4
gpt4 key购买 nike

我想最小化一个受约束(变量是非负数)的函数。我可以准确计算梯度和 Hessian。所以我想要这样的东西:

result = scipy.optimize.minimize(objective, x0, jac=grad, hess=hess, bounds=bds)

我需要指定优化方法 ( http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html )。不幸的是,我似乎找不到同时允许用户指定边界和 Hessian 矩阵的方法!

这特别烦人,因为方法“TNC”和“Newton-CG”看起来基本相同,但是 TNC 在内部估计 Hessian(在 C 代码中),而 Newton-CG 不允许约束。

那么,如何使用用户指定的 Hessian 进行约束优化?似乎在 scipy 中应该有一个简单的选择——我错过了什么吗?

最佳答案

我意识到了我的问题的解决方法,即将约束优化转换为无约束优化。

在我的例子中,因为我有约束 x > 0,所以我决定优化 log(x) 而不是 x。这对我的问题很容易做到,因为我使用的是自动微分。

不过,这似乎是一个不太令人满意的解决方案——我仍然认为 scipy 应该允许一些受约束的二阶最小化方法。

关于numpy - 在 scipy 中使用 hessian 进行约束优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29449625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com