1

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

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

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

2) 我应该为单纯形搜索使用哪个反射、扩展和收缩常数?

任何帮助将不胜感激。

干杯,垫

4

1 回答 1

3

由于您的函数非常嘈杂,维度很少,并且您愿意尝试进化算法,因此我建议您实际上用协方差矩阵适应进化策略替换您的单纯形优化过程。

该算法被黑盒优化社区认可为对 50 维以下复杂问题最有效的算法之一。它的作者对其进行了详细描述:here

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

于 2012-12-25T20:45:21.577 回答