如何在Python中降低Scipy的盆地跳跃敏感性

时间:2019-05-14 09:34:42

标签: python optimization scipy simulated-annealing

我正在运行优化,优化约10个参数的功能。该函数本身需要花费相当长的时间(几秒钟)来评估,并且其外观非常不稳定。它可以取0到1之间的值,其中0是理论上的最佳值,但我希望最佳值约为〜0.01

我正在使用basinhopping算法评估其最小值,但是在每个流域内,该功能似乎都在针对10 ^ -9左右的非常小的ftol进行了优化。

我不需要这种精确度,而是想更彻底地搜索地形。我想调整算法,使局部极小值最多只能优化到大约10 ^ -4的值。

我认为这是将一些ftol传递给最小化函数的问题,但是我似乎无法使它起作用。我将其传递给跳槽:

minimizer_kwargs = {"method": "L-BFGS-B","options": {"ftol":1e-2}}

但这似乎没有效果,并且仍在评估该函数的最佳值增加10 ^ -9很小的情况。

如何避免这种情况?如果确实无法在高于该值的情况下评估函数,那么我宁愿只输出该值为“ 0.10”,而不是花很多时间评估它是“ 0.1000000001”还是“ 0.1000000002”

0 个答案:

没有答案