进化策略 (ES)
- class pypop7.optimizers.es.es.ES(problem, options)[source]
进化策略(ES)。
这是所有ES类的抽象类。请使用ES的任何实例化子类来优化当前的黑箱问题。
注意
ES 是一系列成熟的随机基于种群的搜索算法,由两位德国学生 Ingo Rechenberg 和 Hans-Paul Schwefel(IEEE 进化计算先锋奖 2002 的两位获奖者)提出。ES 的一个关键特性是策略参数的自适应性,这在许多情况下可以显著加速(局部)收敛速度。最近,其最具代表性的(现代)版本 CMA-ES 的理论基础部分建立在信息几何优化 (IGO) 框架上,通过不变性原则(IGO 最初受到自然进化策略的启发)。
2017年,OpenAI设计了一个可扩展的ES版本 (称为OpenAI-ES),该版本在基于深度神经网络的强化学习策略搜索中获得了竞争性的性能。
有关ES的一些有趣应用,请参考 [SIMULIA > CST Studio Suite > Automatic Optimization (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], 仅举几例。
- Parameters:
问题 (字典) –
- 问题参数包含以下常见设置 (键):
’fitness_function’ - 需要最小化的目标函数 (函数),
’ndim_problem’ - 维度数 (整数),
’upper_boundary’ - 搜索范围的上限 (类数组),
’lower_boundary’ - 搜索范围的下限 (类数组).
options (dict) –
- 具有以下常见设置的优化器选项 (keys):
’max_function_evaluations’ - 函数评估的最大次数 (int, 默认: np.inf),
’max_runtime’ - 允许的最大运行时间 (float, 默认: np.inf),
’seed_rng’ - 随机数生成的种子,需要显式设置 (int);
- 以及以下特定设置 (keys):
’n_individuals’ - 后代/子代的数量,即后代种群大小 (int),
’n_parents’ - 父母/祖先的数量,即父母种群大小 (int),
’mean’ - 初始(起始)点 (array_like),
如果未给出,将从均匀分布中随机抽取一个样本,其搜索范围由problem[‘lower_boundary’]和problem[‘upper_boundary’]限定。
’sigma’ - 初始全局步长,即突变强度 (float).
- mean
初始(起始)点,也称为高斯搜索/采样/变异分布的均值。
- Type:
array_like
- n_individuals
后代数量,也称为后代种群大小。
- Type:
int
- n_parents
父母/祖先的数量,也称为父母种群大小。
- Type:
int
- sigma
全局步长,也称为变异强度(即高斯搜索分布的整体标准差)。
- Type:
float
参考文献
https://homepages.fhv.at/hgb/downloads/ES-Is-Not-Gradient-Follower.pdf
Ollivier, Y., Arnold, L., Auger, A. 和 Hansen, N., 2017. 信息几何优化算法:通过不变性原理的统一视角。 机器学习研究杂志, 18(18), 第1-65页。
https://blog.otoro.net/2017/10/29/visual-evolution-strategies/
Hansen, N., Arnold, D.V. 和 Auger, A., 2015. 进化策略. 在 Springer 计算智能手册中 (第 871-898 页). Springer, 柏林, 海德堡.
Bäck, T., Foussette, C., & Krause, P. (2013). 当代进化策略. 柏林: 斯普林格出版社.
http://www.scholarpedia.org/article/Evolution_strategies
Beyer, H.G. 和 Schwefel, H.P., 2002. 进化策略——全面介绍。 自然计算, 1(1), 第3-52页。
Rechenberg, I., 2000. 进化实验与计算案例研究。 计算机方法在应用力学与工程中的应用, 186(2-4), pp.125-140.
Rechenberg, I., 1989. 进化策略:自然的优化方式。 在《优化:方法与应用,可能性与限制》(第106-126页)中。 Springer, 柏林, 海德堡。
Schwefel, H.P., 1988. Collective intelligence in evolving systems. 在《生态动力学》(第95-100页)中。Springer, Berlin, Heidelberg.
Schwefel, H.P., 1984. 进化策略:一种基于模仿有机进化某些原理的非线性优化技术家族。 运筹学年鉴, 1(2), pp.165-167.
Rechenberg, I., 1984. The evolution strategy. A mathematical model of darwinian evolution. 在《协同作用——从微观到宏观秩序》(第122-132页)中。Springer, Berlin, Heidelberg.
历史上开发了大量ES:
- 有限内存协方差矩阵适应(LMCMA)
- 基于混合模型的进化策略 (MMES)
- Diagonal Decoding Covariance Matrix Adaptation (DDCMA)
- 有限内存矩阵自适应进化策略 (LMMAES)
- Rank-M Evolution Strategy (RMES)
- Rank-One Evolution Strategy (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)
- Derandomized Self-Adaptation Evolution Strategy (DSAES)
- Schwefel的自适应进化策略(SSAES)
- Rechenberg的(1+1)-进化策略 (RES)