Discovering Attention-Based Genetic Algorithms via Meta-Black-Box Optimization

Robert Tjarko Lange, Tom Schaul, Yutian Chen, Chris Lu, Tom Zahavy +2 more
4/8/2023
cs.NEcs.LG

No official code found. Best implementation: RobertTLange/evosax (789 stars, Apache-2.0, last commit 2026-04-02).

Abstract

Genetic algorithms constitute a family of black-box optimization algorithms, which take inspiration from the principles of biological evolution. While they provide a general-purpose tool for optimization, their particular instantiations can be heuristic and motivated by loose biological intuition. In this work we explore a fundamentally different approach: Given a sufficiently flexible parametrization of the genetic operators, we discover entirely new genetic algorithms in a data-driven fashion. More specifically, we parametrize selection and mutation rate adaptation as cross- and self-attention modules and use Meta-Black-Box-Optimization to evolve their parameters on a set of diverse optimization tasks. The resulting Learned Genetic Algorithm outperforms state-of-the-art adaptive baseline genetic algorithms and generalizes far beyond its meta-training settings. The learned algorithm can be applied to previously unseen optimization problems, search dimensions & evaluation budgets. We conduct extensive analysis of the discovered operators and provide ablation experiments, which highlight the benefits of flexible module parametrization and the ability to transfer (`plug-in') the learned operators to conventional genetic algorithms.

View on arXivView PDF

Code Implementations(1)

RobertTLange/evosaxCommunity100%
Apache-2.0

Evolution Strategies in JAX 🦎

78963PythonDec 30, 20206 months agoApache-2.0

Similar Papers

Cite this paper

@article{lange2023discovering,
  title  = {Discovering Attention-Based Genetic Algorithms via Meta-Black-Box Optimization},
  author = {Robert Tjarko Lange and Tom Schaul and Yutian Chen and Chris Lu and Tom Zahavy and Valentin Dalibard and Sebastian Flennerhag},
  year   = {2023},
  eprint = {2304.03995},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2304.03995v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2304.03995.svg)](https://codeofpaper.com/paper/2304.03995)

Discussion