使用 Hessian 矩阵进行有界优化 (scipy)
Bounded optimization using the Hessian matrix (scipy)
我正在尝试优化少量变量(从 2 到 10 之间的某处)的函数。我想做的是计算有界超立方体上函数的最小值
[0,1] x [0,1] x ... x [0,1]
函数的计算、它的梯度和它的 hessian 都相对简单、快速和准确。
现在,我的问题是:
使用 scipy
,我可以使用 scipy.optimize.minimize(..., method='Newton-CG')
或 scipy.optimize.minimize(..., method='TNC')
来计算函数的最小值,但是:
- 第一种方法使用 Hessian 矩阵,但我无法为正在优化的变量设置界限
- 第二种方法允许我设置变量的界限,但该方法不使用 Hessian。
有什么方法可以同时使用两者吗?
我正在尝试优化少量变量(从 2 到 10 之间的某处)的函数。我想做的是计算有界超立方体上函数的最小值
[0,1] x [0,1] x ... x [0,1]
函数的计算、它的梯度和它的 hessian 都相对简单、快速和准确。
现在,我的问题是:
使用 scipy
,我可以使用 scipy.optimize.minimize(..., method='Newton-CG')
或 scipy.optimize.minimize(..., method='TNC')
来计算函数的最小值,但是:
- 第一种方法使用 Hessian 矩阵,但我无法为正在优化的变量设置界限
- 第二种方法允许我设置变量的界限,但该方法不使用 Hessian。
有什么方法可以同时使用两者吗?