使进化策略易于使用的库。

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/。在

Lunar lander

说明

进化策略是解决强化学习问题和其他不能用backprop计算梯度的优化问题的有力方法。 请参阅"Evolution strategies as a scalable alternative to reinforcement learning"以获得出色的介绍。在

在ES中,目标是最大化个体(称为总体)的分布的期望适应度。 通过一些数学技巧,即使适应度函数本身是不可微的,这个目标也可以随着梯度的上升而最大化。在

这个图书馆提供

  1. 一个灵活而自然的专家系统接口,它将环境、强化学习代理、群体分布和优化分离开来。在
  2. 一种基于torch.nn.Module策略网络的强化学习代理的即插即用方法。请参见examples/lunar_lander.pyexamples/normal_lunar_lander.py。在
  3. 几种种群分布和变异
    1. Independent Normal。取决于标准偏差是固定的还是等效的。见examples/normal_lunar_lander.py
    2. Multivariate Normal具有完全协方差矩阵。类似于CMA-ES。见examples/multivariate_normal_lunar_lander.py
    3. Categorical。对于具有类别参数的代理,演示处理非正态分布的能力。参见examples/binary_lunar_lander.py。在
  4. 一个简单的界面来创建你自己的人口,而不必导出任何梯度!只需子类Population并实现采样过程。请参阅内置人群以获取灵感。在

归因

如果您在学术工作中使用此软件,请引用

^{pr2}$

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java连接在一个屏幕上成功下载,在第二个屏幕上用几乎相同的代码获得错误   java调用super。超级的方法,跳过超级。方法   使用Web服务连接到sharepoint 2013的Java应用程序   java我无法正确呈现editText   httpurlconnection如何在java中检查url连接状态   java Spring Security可以为同一用户接受多个密码吗?   java如何在PreparedStatement中使用自动生成的@Id?   java每个数组表示一个位模式   java我不确定如何记录鼠标在某个区域被点击的次数   spring如何解决:java。lang.NoSuchMethodError:javax。坚持不懈实体管理器。createStoredProcedureQuery(Ljava/lang/String;)   java如何为blackberry中listfield项内的不同字段触发事件   安卓使用Proguard混淆java代码   java在grails 2中与多个数据源有一个和一个域关联。十、   java在尝试在单击按钮时返回combobox值时一直出错   java我可以在setter中使用@Resource注释而不是字段吗?   java Eclipse调试步进不工作   java比较相同对象的两个表并选择不同的表