An implementation of Natural Evolution Strategies for black box optimization.
Natural Evolution Strategies optimizes a black box function parameterized with a set of weights by mutating a baseline set of weights with noise for each member of the population, then biasing the noise provided to the rewards achieved and summing that accross the entire population. The baseline set of weights is then updated at each generation based on the Natural Gradient of the entire population.
See the experiments folder for example implementations.
- More enviornments
- K8s
- Support multiple weights.
- Paper - http://www.jmlr.org/papers/volume15/wierstra14a/wierstra14a.pdf
- Wiki - https://en.wikipedia.org/wiki/Natural_evolution_strategy
- Karpathy sample code - https://gist.github.com/karpathy/77fbb6a8dac5395f1b73e7a89300318d
- A Visual Guide to Evolution Strategies - http://blog.otoro.net/2017/10/29/visual-evolution-strategies
- OpenAI Release - https://openai.com/blog/evolution-strategies
- Lilian Weng Overview - https://lilianweng.github.io/lil-log/2019/09/05/evolution-strategies.html