Efficient Natural Evolution Strategies (eNES) is a novel alternative to conventional evolutionary algorithms, using the natural gradient to adapt the mutation distribution. Unlike previous methods based on natural gradients, eNES uses a fast algorithm to calculate the inverse of the exact Fisher information matrix, thus increasing both robustness and performance of its evolution gradient estimation, even in higher dimensions. Additional novel aspects of eNES include optimal fitness baselines and importance mixing.
Implementations
The source code of the eNes is available both in Python and Matlab.
The Python implementation can be found in PyBrain, at pybrain/rl/learners/blackboxoptimizers/enes.py.
The Matlab code is available here.
Publications
A detailed description of the algorithm can be found in:
Yi Sun, Daan Wierstra, Tom Schaul, Juergen Schmidhuber, "Stochastic Search using the Natural Gradient", to appear in Proceedings of International Conference on Machine Learning (ICML-09), 2009. [pdf]
Yi Sun, Daan Wierstra, Tom Schaul, Juergen Schmidhuber, "Efficient Natural Evolution Strategies", to appear in Proceedings of Genetic and Evolutionary Computation Conference (GECCO-09), 2009. [pdf]