百度飞桨强化学习框架PARL发布首个工业级深度进化学习库EvoKit

飞桨强化学习框架PARL曾两次夺得NeurIPS强化学习赛事世界冠军。近期PARL升级1.3版本,通过发布深度进化学习库EvoKit,多智能体强化学习(Multi-Agent RL)算法,助力强化学习进一步落地工业应用场景。

 

 深度进化学习库EvoKit

 

PARL 1.3 重点发布了首个工业级进化学习框架EvoKit,支持大规模神经网络在真实业务场景中调研和部署进化学习算法,针对性解决进化学习算法部署到业务场景所遇到的难题。

 

 什么是进化学习算法?

 

进化学习(Evolution Strategy)借鉴自然界种群进化过程,通过演化的方式找到全局最优。进化学习由来已久,近年来被不少学者用于解决强化学习(Reinforcement Learning)、AutoML(Auto Machine Learning)等场景的问题。

 

相对于梯度优化而言,进化学习直接通过参数空间的扰动来观察最终目标(如下视频所示),并且和强化学习一样,进化学习不要求优化目标和参数之间可导,因此适用范围非常广泛,易于并行化。基于EvoKit,可以利用数百台CPU优化百万量级参数的模型。

 

 进化学习能用到哪些地方?

 

1.优化目标和模型之间不可导的场景。例如,模型超参数的搜索;一些推荐类产品留存,总时长等不能建模,或者直接建模成本较高的场景。

 

2.模型和业务规则逻辑或和其他流程耦合的场景。例如,某业务线的流程包括上下游总共十几个模块串行处理,希望优化中间某个模块的模型参数,但是下游处理模块的逻辑对于当前优化是黑箱。通过进化算法可以避免黑箱对于优化的不确定性,直接提升最终评价指标。

 

3.元学习。很多模型不是直接使用,而是需要在多个场景上进一步fine-tune。进化学习算法可以利用最终fine-tune结果来优化元学习模型,破解求导链条过长等问题。

 

 EvoKit有哪些特点?

 

1、EvoKit提供一整套可供线下调研及线上部署的进化学习工具。线下借助飞桨开源框架 API实现快速调研,线上基于Paddle Lite等工具,支持以较小的成本完成调研到上线的流程。同时,EvoKit提供包含异步更新机制,参数压缩和还原等线上业务普遍需求的功能。

 

 

2. EvoKit使用上非常便利。用户可以利用飞桨开源框架 API搭建任意结构的复杂网络。进化学习算法包含两个关键步骤,采样(或者扰动)和更新。网络参数不断通过扰动收集反馈,并基于相关反馈迭代进化网络(如上图所示)。

 

EvoKit定义了主接口分别用于网络的扰动(AddNoise)和更新迭代(Update)。用户只需通过简单几行代码就能实现完整的进化流程,下图展示了一个伪代码的样例。EvoKit内置了包括ES, GA, CMA-ES等常用进化策略,也提供了很好的便于二次开发的可扩展接口,可以方便实现新的算法。

 

 

 多智能体强化学习

 

PARL 1.3还实现了全新的多智能体强化学习算法(Multi-Agent RL,MARL)的框架支持。MARL是RL挑战群体决策问题的“杀手锏”,可以被广泛运用在包括地图派单,游戏AI, 任务分配等等问题中,但是算法的复现难度比起传统算法更大。

 

很多RL框架很难利用一套框架兼容多种单智能体RL算法和MARL算法的开发。PARL在这一点上有新的突破。在单智能体算法中,PARL抽象出了Model、Algorithm、Agent三个模块,分别定义了前向网络(forward)、算法损失函数(backward)、数据交互等逻辑(见下图)。

 

这种以智能体为核心的设计方式,在扩展到多智能体算法的时候,只需创建多个Agent实例,就可以让多个智能体交互起来,共同更新MARL算法。

 

以主流的MADDPG算法的评估为例,可以看到PARL在MARL的扩展性:

 

 

当通过Model、Algorithm搭建好多个Agent之后,这些Agent可以很方便地和环境进行交互,存储各自的数据,然后训练模型。PARL1.3此次开源的MADDPG算法在OpenAI的8个MARL场景都进行了验证,效果能完全复现最优的表现。

 

此外,PARL 1.3版本还针对使用文档、应用样例进行了全面梳理,并开源了NuerIPS 2019强化学习赛事的冠军解决方法。 

 

基于这些全新的功能,希望PARL和EvoKit能给相关领域的同学带来新的便利,助力强化学习和进化学习算法在工业场景的进一步应用落地。 

 

PARL和EvoKit完全开源,欢迎大家使用,反馈和贡献。

 

PARL链接:

https://github.com/PaddlePaddle/PARL

 

如在使用过程中有技术问题,欢迎加入飞桨官方QQ群进行提问:703252161

 

飞桨开源框架项目地址:

GitHub:

https://github.com/PaddlePaddle/Paddle

Gitee: 

https://gitee.com/paddlepaddle/Paddle

 

百度自然语言处理(Natural Language Processing,NLP)以『理解语言,拥有智能,改变世界』为使命,研发自然语言处理核心技术,打造领先的技术平台和创新产品,服务全球用户,让复杂的世界更简单。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值