设置scipy优化最小化步长的方法

use*_*977 5 python optimization scipy

有没有办法让 scipy 优化模块使用更小的步长?我正在优化一个带有大量变量(大约 40 个)的问题,我认为这些变量接近最佳值,但是当我运行 scipy 最小化模块(到目前为止我已经尝试过 L-BFGS 和 CG)时,它们不会收敛,因为初始步长太大。

小智 5

我有类似的问题,我使用 SLSQP 因为我需要边界。使用此求解器,选项 epsilon ('eps') 有助于以更好的步长进行收敛:

minimize(simulation, start_values, method='SLSQP', bounds = bnds, constraints = ({'type': 'ineq', 'fun': lambda x: const(x)}), options = {'eps': 1})
Run Code Online (Sandbox Code Playgroud)

这不是理想的解决方案。


Rob*_*lck 4

我相信 cobyla 是 scipy.optimize.minimize 中唯一支持此功能的技术。您基本上可以使用 rhobeg 参数控制步长的大小。(这并不是真正的步长,因为它是顺序线性方法,但它具有相同的效果)。