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

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

百度飞桨强化学习框架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

 

责任编辑:张燕妮 来源: 51CTO
相关推荐

2021-09-17 15:54:41

深度学习机器学习人工智能

2018-11-14 10:28:38

AI数据科技

2017-03-28 10:15:07

2020-06-05 08:09:01

Python强化学习框架

2021-09-10 09:37:05

AI 数据人工智能

2023-03-09 08:00:00

强化学习机器学习围棋

2020-08-10 06:36:21

强化学习代码深度学习

2019-07-01 14:39:52

百度王海峰深度学习

2018-03-09 22:56:52

PaddlePaddl

2017-08-22 15:56:49

神经网络强化学习DQN

2022-09-04 14:38:00

世界模型建模IRIS

2023-12-03 22:08:41

深度学习人工智能

2022-05-31 10:45:01

深度学习防御

2020-05-12 07:00:00

深度学习强化学习人工智能

2023-11-07 07:13:31

推荐系统多任务学习

2022-06-13 18:33:00

飞桨技术

2020-02-21 15:33:44

人工智能机器学习技术

2023-01-04 10:02:53

强化学习自动驾驶

2020-05-20 11:32:27

百度飞桨深度学习

2022-03-25 10:35:20

机器学习深度学习强化学习
点赞
收藏

51CTO技术栈公众号