【发布时间】:2016-05-19 22:55:13
【问题描述】:
我正在使用scipy.optimize.minimize 来查找对所使用的初始猜测相当敏感的 4D 函数的最小值。如果我稍微改变一下,解决方案就会发生很大变化。
SO 中已经有很多类似的问题(例如:1、2、3),但没有真正的答案。
在我的一个老问题中,zunzun.com 网站的one of the developers(显然是no longer online)解释了他们是如何做到这一点的:
Zunzun.com 使用差分进化遗传算法 (DE) 来查找初始参数估计值,然后将其传递给 scipy 中的 Levenberg-Marquardt 求解器。 DE 本身实际上并没有用作全局优化器,而是用作“初始参数猜测器”。
我发现最接近该算法的是this answer,其中for 块用于多次调用最小化函数,并带有随机初始猜测。这会生成多个最小化的解决方案,并最终选出最佳(最小值)的一个。
有没有类似于 zunzun dev 描述的已经用 Python 实现的东西?
【问题讨论】:
-
anneal 已被弃用,但显然basin-hopping 完全符合我的要求。您想以答案的形式发布您的 cmmt 吗?
-
我已经成功地使用DEAP 实现了遗传算法。
sklearn.grid_search也有各种穷举和随机的超参数优化方法。
标签: python machine-learning scipy mathematical-optimization hyperparameters