使用单纯形和遗传算法最小化非常嘈杂的6参数函数 - PPython语言

时间:2012-12-25 15:34:04

标签: python genetic-algorithm minimization simplex

我正在尝试将经验人类数据与来自6参数认知模型的模拟数据之间的损失函数最小化。这个模型非常嘈杂。请注意,该模型是在PYTHON中编程的。

标准方法是使用Simplex搜索。但是,Simplex非常依赖于初始猜测,捕获局部最小值的风险很高。所以我有两个问题:

1)我想知道遗传算法是否不能用于首先搜索全局最小值的近似位置,并将结果用作单纯形搜索的起点。如果这是一个好主意,有人知道python中适当的遗传算法的良好实现吗?

2)我应该使用哪种反射,扩展和收缩常数进行单纯形搜索?

任何帮助都将受到高度赞赏。

干杯, 垫

1 个答案:

答案 0 :(得分:3)

由于你的功能非常嘈杂,维度很少,你可以尝试使用进化算法,我建议你用协方差矩阵适应进化策略来替换你的Simplex优化过程。

黑盒优化社区认为该算法是50维度下复杂问题最有效的算法之一。它的作者详细描述了它:here

作者在Python here中提供了算法的实现。进化算法框架DEAP还提供了CMA-ES的Python实现和不同的应用程序示例,我发现它更容易使用(免责声明,我是DEAP的主要开发人员之一)。