文档章节

NeurIPS 2018夺冠功臣 | 百度正式发布PaddlePaddle深度强化学习框架PARL

P
 PaddleWeekly
发布于 01/20 16:27
字数 2090
阅读 11
收藏 0

强化学习作为AI技术发展的重要分支,为各家AI公司高度重视。去年,百度首次参与NeurIPS 2018的强化学习赛事,就击败了多达400支来自全球研究机构以及各大公司研究部门的参赛队伍,大比分以绝对优势拿下了冠军,并受邀在加拿大蒙特利尔举办的NeurIPS 2018 Competition Workshop上分享。近日,百度PaddlePaddle正式发布在赛事夺冠中起到关键作用的深度强化学习框架PARL,同时开源了基于该框架的NeurIPS2018强化学习赛事的完整训练代码。(冠军解决方案见https://github.com/PaddlePaddle/PARL)

PARL的名字来源于PAddlepaddle Reinfocement Learning,是一款基于百度PaddlePaddle打造的深度强化学习框架。PARL凝聚了百度多年来在强化学习领域的技术深耕和产品应用经验。与现有强化学习工具和平台相比,PARL具有更高的可扩展性、可复现性和可复用性,强大的大规模并行化和稀疏特征的支持能力,以及工业级应用案例的验证。

自2012年以来,百度就将在multi-arm bandits问题上的研究成果成功落地到推荐系统中,广泛应用于搜索、对话、推荐等产品,通过点击反馈结合在线训练的方式,动态调整探索(exploration)和收益(exploitation)的平衡点,降低探索风险的同时最大化推荐收益。近年来,百度在工业应用以及学术研究上进一步引入强化学习,落地在不仅限于凤巢,新闻Feed推荐等应用上,并且应用在前沿的学术研究领域例如机器人控制,通用人工智能AGI等。2018年,在机器人控制会议CoRL上,百度发表了干预强化学习机制的工作;进而在NeurIPS 2018的强化学习赛事上击败了400多个全球研究机构的参赛队伍,首次参赛就拿下了NeurIPS2018 强化学习赛事冠军。参赛队伍中不乏RNN之父创立的公司、卫冕冠军NNAISENSE、阿里、Yandex、Intel等强劲对手。

设计深度强化学习框架是相当具备挑战性的工作。虽然各大公司先后推出了一些强化学习框架,比如Intel的Coach、OpenAI的baseline、Google的Dopamine等,但截止到目前,开源社区中仍没有一个主导的RL框架。这其中主要的一个原因是强化学习近年来发展迅猛,新的研究方向不断涌现。从15年Deepmind 发表DQN 算法以来,涌现了大量的DQN算法变种,包括Double DQN、Dueling DQN、Rainbow等,同时在连续控制(continuous control RL),分层控制(hierarchicalRL),多机器人控制(multi-agent RL)上涌现出相当多的新技术,甚至和元学习(meta-learning)以及环境建模(model-based)等结合起来。当前社区中存在的开源框架虽然可以支持其中的一部分算法,但是由于技术迭代太快,之前设计的框架难以跟上最新的研究热点。第二个原因是深度强化学习算法和应用,具有方法各异、超参难调、随机性大等特点,即便是针对同一个问题,使用同一种算法,不同的实现方式会带来极大的差异,学术界也一再强调强化学习可复现性问题。综合这些因素,要实现一个统一的模型和计算平台,是相当困难的事情。

PARL 在设计之初就考虑了上述提到的扩展性和可复现性的问题。从上图可以看出,PARL通过抽象出Model、Algorithm、Agent等基础类帮助用户快速搭建可以和环境交互的机器人。Model类负责强化学习算法中的网络前向计算(forward)部分,通常嵌套在algorithm中。Algorithm 类则定义了网络的更新方式(backward)部分,通常属于一个agent。Agent类负责和环境进行交互,并且收集数据训练底下的algorithm。通过这样的设计方案,PARL保证了算法扩展性:针对同一个场景,用户想调研不同的网络结构对算法效果影响的时候,比如调研RNN建模或者CNN建模,只需要重写model部分即可;针对不同场景想用同一个算法调研的时候,也是也只需重写model即可。可复现性主要体现在框架提供的algorithm集合上,在下一段和复用性一起结合理解。

PARL 的这种设计结构的另一个好处是高复用性。仓库内的提供了大量经典算法的例子(algorithms目录内), 包括主流的DQN 、DDQN、Dueling DQN、DDPG、PPO等,这些算法由于和网络结构进行了解耦(网络结构定义在Model类中),因此不针对特定任务,而是一个相当通用的算法抽象。用户通过PARL搭建强化学习算法来解决自己目前遇到的问题时,可以直接import 这些经典算法,然后定义自己的网络前向部分即可短时间内构建出经典的RL算法。这种高复用性不仅极大地降低了用户的开发成本,而且由于PARL提供的算法内部包含完整的超参数列表,确保仓库内模型具备复现论文级别指标的能力。

下图是PARL官方提供的一个构建示例,展示了如何快速构建可以解决Atari游戏的DQN模型。用户只需要定一个前向网络(Model类),然后调用框架算法集合里面的DQN algorithm即可构建一个经典DQN算法了。DQN算法里面的繁琐的构建target网络,同步target 网络参数等细节,已经包含在构建的algorithm里面,用户无需再特别关注。

PARL基于百度内部的成熟应用开源,因此更能方便地定制大规模并行算法。通过调用简单的函数接口,用户可以将算法从单机版扩展成GA3C、A3C、IMPALA等并行训练架构。 PARL对于通讯机制,数据I/O等也有独特的加速处理。此外,基于PaddlePaddle对大规模工业级排序/推荐等稀疏模型的支持能力,PARL也能轻松扩展到百亿级别数据或特征的训练。

PARL的并行能力在开源社区中处于绝对领先地位。根据百度在NeurIPS上做的技术分享,基于PARL最多可以同时通过8块GPU来拉动近20000个CPU节点运算,完全发挥整个CPU集群的计算潜力,在赛事中成功将需要近5个小时迭代一轮的PPO算法加速到了不到1分钟,实现了相对单机运算高达几百倍的加速比。这种目前开源社区中框架难以支持的并行提速,是他们拿下本次冠军的关键因素之一。

百度本次正式发布PARL, 不仅在学术界引发热议,更是在工业界引起巨大反响。百度拥有国内唯一有影响力的深度学习基础库,并积极推进AI生态战略。随着百度PaddlePaddle在工业界的影响不断深入,一个高性能、高规格的深度强化学习框架,也是满足工业界日趋发展旺盛的强化学习应用需求的必要条件。而这一系列举措,对于百度最终决胜AI时代将是有力的推动。

冠军解决方案见:

https://github.com/PaddlePaddle/PARL

 

 

© 著作权归作者所有

P
粉丝 1
博文 45
码字总数 102243
作品 0
东城
私信 提问
百度深度学习 PaddlePaddle 中文名曝光,打死你也猜不出

此前在百度举办的深度学习开发者峰会上,百度深度学习平台 PaddlePaddle 首次曝光了其中文名 —— 飞桨,意为快速划动的桨,寓意期望这个平台能够实现快速成长。 此外,PaddlePaddle 还首次对...

局长
05/07
4.2K
10
薅百度GPU羊毛!PaddlePaddle大升级,比Google更懂中文,打响AI开发者争夺战

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/89507767...

AI科技大本营
04/24
0
0
百度成立深度学习技术平台部,加持 PaddlePaddle 研发和推广

雷锋网(公众号:雷锋网) AI 科技评论按:作为人工智能时代的基础,深度学习一直是人工智能最热门的、企业投入最多的研究领域之一。近日,百度宣布成立深度学习技术平台部,汇聚更多的 AI 科学...

思颖
2018/07/26
0
0
百度成立新部门,豪华技术团队加持PaddlePaddle研发

  作为人工智能时代的基础,深度学习一直是人工智能最热门的、企业投入最多的研究领域之一。近日,国内AI领军企业百度宣布成立深度学习技术平台部,汇聚更多的AI科学家和架构师,进行当前国...

遇见人工智能
2018/07/26
0
0
PaddlePaddle 中文名「飞桨」重磅公布,百度发布一亿元免费算力计划

雷锋网 AI 科技评论按,今日,首届 WAVE SUMMIT 2019 深度学习开发者峰会在北京举办,会上,来自工业界的多家展商展示了基于 PaddlePaddle 训练的包括瓷器质检、遥感影像目标检测与语义分割、...

汪思颖
04/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android面试常客之Handler全解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/fnhfire_7030/article/details/79518819 前言:又到了一年...

shzwork
27分钟前
4
0
position sticky 定位

本文转载于:专业的前端网站➫position sticky 定位 1、兼容性 https://caniuse.com/#search=sticky chrome、ios和firefox兼容性良好。 2、使用场景 sticky:粘性。粘性布局。 在屏幕范围内时...

前端老手
33分钟前
4
0
CentOS 7 yum 安装 PHP7.3 教程

参考:https://www.mf8.biz/centos-rhel-install-php7-3/ 1、首先安装 EPEL 源: yum install epel-release 安装 REMI 源: yum install http://rpms.remirepo.net/enterprise/remi-release......

dragon_tech
48分钟前
4
0
Linux物理网卡聚合及桥接

Linux内部实现的bridge可以把一台机器上的多张网卡桥接起来,从而把自己作为一台交换机。同时,LInux bridge还支持虚拟端口,即桥接的不一定都是物理网卡接口,还可以是虚拟接口。目前主要表...

xiangyunyan
49分钟前
4
0
一起来学Java8(一)——函数式编程

在这篇文章中,我们将了解到在Java8下如何进行函数式编程。 函数式编程 所谓的函数式编程就是把函数名字当做值进行传递,然后接收方拿到这个函数名进行调用。 首先来看下JavaScript如何进行函...

猿敲月下码
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部