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

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

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.

http://www.scholarpedia.org/article/Evolution_strategies

参考文献

加权重组

  • 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.

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