进化策略 (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 最初受到自然进化策略的启发)。

“他们最突出的两个设计原则是无偏性和样本分布参数的自适应控制。参数控制并不总是直接受到生物进化的启发,但它是ES不可或缺且核心的特征。选择和重组的结果通常是确定性的。对于重组,使用单一亲本中心已成为最流行的方法,因为这样的算法更容易形式化,更容易分析,并且在各种情况下表现更好,因为它们允许最大程度的遗传修复。”—[Hansen et al., 2015]

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.

https://visitor-badge.laobi.icu/badge?page_id=Evolutionary-Intelligence.pypop https://visitor-badge.laobi.icu/badge?page_id=Evolutionary-Intelligence.pypop-ES