Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

夺魁NeurIPS 2018强化学习大赛,百度正式发布RL模型库和算法框架PARL

近日,百度 Paddlepaddle 正式发布了深度强化学习框架 PARL,同时开源了基于该框架的、在 NeurIPS 2018 强化学习赛事中夺冠的模型完整训练代码。

项目地址如下:https://github.com/PaddlePaddle/PARL

PARL 框架的名字来源于 PAddlepaddle Reinfocement Learning,是一款基于百度 PaddlePaddle 打造的深度强化学习框架。PARL 与现有强化学习工具和平台相比,具有更高的可扩展性、可复现性和可复用性,支持大规模并行和稀疏特征,能够快速 对工业级应用案例的验证。

为了帮助用户快速搭建可以和环境交互的机器人,PARL 抽象出数个基础类,包括 Model、Algorithm、Agent 等。

Model 类负责强化学习算法中的网络前向计算(forward)部分,通常嵌套在 Algorithm 类中。

Algorithm 类则定义了网络的更新机制(backward),通常属于一个 Agent。

Agent 类负责和环境进行交互,负责数据 I/O,并且收集数据训练集下的 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 里面,用户无需再特别关注。

百度强化学习的关注由来已久。早在 2012 年,百度就将在 multi-armed bandit 问题上的研究成果部署到了推荐系统中,应用于搜索、对话、推荐等产品,通过点击反馈结合在线训练的方式,动态调整探索 (exploration) 和收益 (exploitation) 的平衡点,在降低探索风险的同时最大化推荐收益。近年来,强化学习百度工业应用方面落地在了凤巢,新闻 Feed 推荐等产品线上,在学术方面也在机器人控制、通用人工智能等领域发表了多篇学术论文。2018 年,在第二届机器人控制会议 CoRL 上,百度发表了干预强化学习机制的工作。而在 NeurIPS 2018 的强化学习赛事上,百度也击败了 400 多支来自全球各个研究机构的参赛队伍,获得冠军。

随着强化学习领域的发展,多家 AI 公司都在尝试进行深度强化学习框架的设计,比如 Intel 的 Coach、OpenAI 的 baseline、Google 的 Dopamine 等。如今的开源社区中仍然是「百家争鸣」态势,并未出现一个主导的 RL 框架。

这其中主要的一个原因是强化学习近年来发展迅猛,新的研究方向不断涌现导致设计框架难以追赶算法本身的发展速度。从 15 年 Deepmind 发表 DQN 算法以来,大量的 DQN 算法变种纷纷涌现,包括 Double DQN、Dueling DQN、Rainbow 等,同时在连续控制 (continuous control RL),分层控制 (hierarchical RL),多机器人控制 (multi-agent RL) 上涌现出相当多的新技术,甚至和元学习(meta-learning)以及环境建模(model-based)等结合起来。当前社区中存在的开源框架均可支持上述的一部分算法,但是由于技术迭代太快,并没有一个框架能够覆盖所有新算法。

第二个原因是深度强化学习算法和应用,具有方法各异、超参难调、随机性大等特点,即便是针对同一个问题,使用同一种算法,不同的实现方式会带来极大的差异,学术界也一再强调强化学习可复现性问题。综合这些因素,要实现一个统一的模型和计算平台,是相当困难的事情。

PARL 在设计之初就将上述问题考虑在内,强调可复制(reproducible)可重用(reusable)以及可扩展(extensible)。

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

 

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

工程百度PaddlePaddle深度学习框架
3
相关数据
深度强化学习技术

强化学习(Reinforcement Learning)是主体(agent)通过与周围环境的交互来进行学习。强化学习主体(RL agent)每采取一次动作(action)就会得到一个相应的数值奖励(numerical reward),这个奖励表示此次动作的好坏。通过与环境的交互,综合考虑过去的经验(exploitation)和未知的探索(exploration),强化学习主体通过试错的方式(trial and error)学会如何采取下一步的动作,而无需人类显性地告诉它该采取哪个动作。强化学习主体的目标是学习通过执行一系列的动作来最大化累积的奖励(accumulated reward)。 一般来说,真实世界中的强化学习问题包括巨大的状态空间(state spaces)和动作空间(action spaces),传统的强化学习方法会受限于维数灾难(curse of dimensionality)。借助于深度学习中的神经网络,强化学习主体可以直接从原始输入数据(如游戏图像)中提取和学习特征知识,然后根据提取出的特征信息再利用传统的强化学习算法(如TD Learning,SARSA,Q-Learnin)学习控制策略(如游戏策略),而无需人工提取或启发式学习特征。这种结合了深度学习的强化学习方法称为深度强化学习。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

元学习技术

元学习是机器学习的一个子领域,是将自动学习算法应用于机器学习实验的元数据上。现在的 AI 系统可以通过大量时间和经验从头学习一项复杂技能。但是,我们如果想使智能体掌握多种技能、适应多种环境,则不应该从头开始在每一个环境中训练每一项技能,而是需要智能体通过对以往经验的再利用来学习如何学习多项新任务,因此我们不应该独立地训练每一个新任务。这种学习如何学习的方法,又叫元学习(meta-learning),是通往可持续学习多项新任务的多面智能体的必经之路。

推荐系统技术

推荐系统(RS)主要是指应用协同智能(collaborative intelligence)做推荐的技术。推荐系统的两大主流类型是基于内容的推荐系统和协同过滤(Collaborative Filtering)。另外还有基于知识的推荐系统(包括基于本体和基于案例的推荐系统)是一类特殊的推荐系统,这类系统更加注重知识表征和推理。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

百度智能云机构

百度是全球最大的中文搜索引擎,是一家互联网综合信息服务公司,更是全球领先的人工智能平台型公司。2000年1月1日创立于中关村,公司创始人李彦宏拥有“超链分析”技术专利,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

http://www.baidu.com
推荐文章
暂无评论
暂无评论~