演化策略 (ES)
- class pypop7.optimizers.es.es.ES(problem, options)[源代码]
演化策略 (ES)。
这是所有 ES 类的抽象类。请使用 ES 的任何实例化子类来优化手头的黑盒问题。
注意
ES 是一类成熟的、基于种群的随机搜索算法,由两名德国学生 Ingo Rechenberg 和 Hans-Paul Schwefel(两位都是 2002 年 IEEE 演化计算先驱奖的获得者)提出。ES 的一个关键特性是策略参数的自适应性,这在许多情况下可以显著加速(局部)收敛速度。最近,其最具代表性的(现代)版本 CMA-ES 的理论基础部分建立在不变性原理的信息几何优化 (IGO) 框架之上(IGO 最初受到自然演化策略的启发)。
2017 年,OpenAI 设计了一个可扩展的 ES 版本(称为 OpenAI-ES),在强化学习中基于深度神经网络的策略搜索方面取得了有竞争力的性能。
关于 ES 的一些有趣应用,请参考 [SIMULIA > CST Studio Suite > 自动优化 (Dassault Systèmes)]、[Yang et al., 2024, CVPR (CMU)]、[Elfikky et al., 2024, LWC (UCSC + Qualcomm Inc.)]、[Martin&Sandholm, 2024 (CMU + Strategy Robot, Inc. + Optimized Markets, Inc. + Strategic Machine, Inc.)]、[Reali et al., 2024 (Microsoft Research, Gates Medical Research Institute, Hackensack Meridian Health, etc.)]、[Science Robotics-2023]、[Nature Medicine-2023]、[TMRB-2023]、[ACL-2023]、[NeurIPS-Workshop-2023]、[TVCG-2014]、[AIAAJ-2014]、[ICML-2009]、[Nature-2000],仅举几例。
- 参数:
problem (dict) –
- 问题参数,包含以下通用设置 (键)
'fitness_function' - 需要被最小化的目标函数 (func),
'ndim_problem' - 维度数量 (int),
'upper_boundary' - 搜索范围的上边界 (array_like),
'lower_boundary' - 搜索范围的下边界 (array_like).
options (dict) –
- 优化器选项,包含以下通用设置 (键)
'max_function_evaluations' - 函数评估的最大次数 (int, 默认: np.inf),
'max_runtime' - 允许的最大运行时间 (float, 默认: np.inf),
'seed_rng' - 随机数生成器的种子,需要明确设置 (int);
- 以及以下特定设置 (键)
'n_individuals' - 后代/子代的数量,也称为后代种群大小 (int),
'n_parents' - 亲代/祖先的数量,也称为亲代种群大小 (int),
'mean' - 初始(起始)点 (array_like),
如果未给出,它将从一个均匀分布中随机抽样,该分布的搜索范围由 problem[‘lower_boundary’] 和 problem[‘upper_boundary’] 界定。
'sigma' - 初始全局步长,也称为变异强度 (float)。
- mean
初始(起始)点,也称为高斯搜索/采样/变异分布的均值。
- 类型:
array_like
- n_individuals
后代/子代的数量,也称为后代种群大小。
- 类型:
int
- n_parents
亲代/祖先的数量,也称为亲代种群大小。
- 类型:
int
- sigma
全局步长,也称为变异强度(即高斯搜索分布的总体标准差)。
- 类型:
float
参考文献
https://homepages.fhv.at/hgb/downloads/ES-Is-Not-Gradient-Follower.pdf
Ollivier, Y., Arnold, L., Auger, A. and Hansen, N., 2017. 信息几何优化算法:通过不变性原理的统一视角。 Journal of Machine Learning Research, 18(18), pp.1-65.
https://blog.otoro.net/2017/10/29/visual-evolution-strategies/
Hansen, N., Arnold, D.V. and Auger, A., 2015. Evolution strategies. In Springer Handbook of Computational Intelligence (pp. 871-898). Springer, Berlin, Heidelberg.
Bäck, T., Foussette, C., & Krause, P. (2013). 当代演化策略。 Berlin: Springer.
历史上发展出的大量 ES
- 有限内存协方差矩阵自适应 (LMCMA)
- 基于混合模型的演化策略 (MMES)
- 对角解码协方差矩阵自适应 (DDCMA)
- 有限内存矩阵自适应演化策略 (LMMAES)
- Rank-M 演化策略 (RMES)
- Rank-One 演化策略 (R1ES)
- 有限内存协方差矩阵自适应演化策略 (LMCMAES)
- 快速矩阵自适应演化策略 (FMAES)
- 矩阵自适应演化策略 (MAES)
- Cholesky-CMA-ES 2016 (CCMAES2016)
- (1+1)-Active-CMA-ES 2015 (OPOA2015)
- (1+1)-Active-CMA-ES 2010 (OPOA2010)
- Cholesky-CMA-ES 2009 (CCMAES2009)
- (1+1)-Cholesky-CMA-ES 2009 (OPOC2009)
- 可分离协方差矩阵自适应演化策略 (SEPCMAES)
- (1+1)-Cholesky-CMA-ES 2006 (OPOC2006)
- 协方差矩阵自适应演化策略 (CMAES)
- 自适应矩阵自适应演化策略 (SAMAES)
- 自适应演化策略 (SAES)
- 累积步长自适应演化策略 (CSAES)
- 去随机化自适应演化策略 (DSAES)
- Schwefel 的自适应演化策略 (SSAES)
- Rechenberg 的 (1+1)-演化策略 (RES)
参考文献
Beyer, H.G. and Schwefel, H.P., 2002. 演化策略——全面介绍。 Natural Computing, 1(1), pp.3-52.
Rechenberg, I., 2000. 演化实验与计算案例研究。 Computer Methods in Applied Mechanics and Engineering, 186(2-4), pp.125-140.
Rechenberg, I., 1989. 演化策略:自然的优化之道。 In Optimization: Methods and Applications, Possibilities and Limitations (pp. 106-126). Springer.
Schwefel, H.P., 1988. 演化系统中的集体智能。 In Ecodynamics (pp. 95-100). Springer.
Schwefel, H.P., 1984. 演化策略:一类基于模仿有机演化某些原理的非线性优化技术。 Annals of Operations Research, 1(2), pp.165-167.
Rechenberg, I., 1984. 演化策略。达尔文演化的数学模型。 In Synergetics—from Microscopic to Macroscopic Order (pp. 122-132). Springer.
加权重组
Akimoto, Y., Auger, A. and Hansen, N., 2017, January. 加权重组演化策略在一般凸二次函数上的质量增益分析。 In Proceedings of ACM/SIGEVO Conference on Foundations of Genetic Algorithms (pp. 111-126). ACM.
Arnold, D.V., 2006. 加权多重重组演化策略。 Theoretical Computer Science, 361(1), pp.18-37.