使进化策略易于使用的库。
evostrat的Python项目详细描述
埃沃斯特拉特
使进化策略易于使用的库。在
安装
pip install evostrat
用法
pop=PopulationImpl(...)# See complete examples for implementations. optim=torch.optim.Adam(pop.parameters())# Use any torch.optim optimizerforiinrange(N):optim.zero_grads()pop.fitness_grads(n_samples=200)# Computes approximate gradientsoptim.step()
有关解决“LunarLander-v2”的完整示例,请参见examples/。在
说明
进化策略是解决强化学习问题和其他不能用backprop计算梯度的优化问题的有力方法。 请参阅"Evolution strategies as a scalable alternative to reinforcement learning"以获得出色的介绍。在
在ES中,目标是最大化个体(称为总体)的分布的期望适应度。 通过一些数学技巧,即使适应度函数本身是不可微的,这个目标也可以随着梯度的上升而最大化。在
这个图书馆提供
- 一个灵活而自然的专家系统接口,它将环境、强化学习代理、群体分布和优化分离开来。在
- 一种基于
torch.nn.Module
策略网络的强化学习代理的即插即用方法。请参见examples/lunar_lander.py和examples/normal_lunar_lander.py。在 - 几种种群分布和变异
- Independent Normal。取决于标准偏差是固定的还是等效的。见examples/normal_lunar_lander.py
- Multivariate Normal具有完全协方差矩阵。类似于CMA-ES。见examples/multivariate_normal_lunar_lander.py
- Categorical。对于具有类别参数的代理,演示处理非正态分布的能力。参见examples/binary_lunar_lander.py。在
- 一个简单的界面来创建你自己的人口,而不必导出任何梯度!只需子类Population并实现采样过程。请参阅内置人群以获取灵感。在
归因
如果您在学术工作中使用此软件,请引用
^{pr2}$- 项目
标签: