87133658 2019-11-04
机器之心发布
机器之心编辑部
在最近的 NeurlPS 2019 强化学习赛事中,百度凭借其自研的强化学习框架 「PARL」 再次夺冠。
机器学习领域顶级会议 NeurIPS 2019 将于 12 月 8 日-14 日在加拿大温哥华开幕。不久之前,大会公布了论文评审结果,今年大会共收到 6743 份有效论文,接收了1428篇,录取率为21.17%。作为国内最早投身 AI 领域的科技巨头,百度今年有多篇论文入选。此外,会议主办的 NeurIPS 2019: Learn to Move 强化学习赛事落下帷幕,百度继 2018 年夺得冠军后再度蝉联冠军。本次比赛的难度非常大,在参赛的近 300 支队伍中,仅有 3 支队伍完成了最后挑战。百度基于飞桨的强化学习框架
PARL
不仅成功完成挑战,还大幅领先第二名 143 分。显而易见,百度在强化学习领域占据了明显的优势,冠军含金量颇高。
强化学习框架 PARL:https://github.com/PaddlePaddle/PARL
近年,随着机械设计以及动力学控制技术的发展,仿生机器人正取得不断的进步。比如近来波士顿动力(Boston Dynamics)发布的机器人会跑步,会拉货车,甚至还会“反击”人类,而控制这些机器人的主要节点是动力学关节。
相比于钢铁造就、机械控制的机器人,人体的复杂程度有过之而无不及。探索和理解人体自身是人类的终极目标之一。人体内有206块骨骼、639块肌肉,正是对这些骨骼和肌肉的精细控制,造就了人类出色灵活的运动能力和平衡保持能力。近年来有很多研究希望了解人体的运动机制,甚至端到端地从肌肉层面直接学习控制仿生人体。针对人体控制这样复杂的场景,强化学习(Reinforcement Learning)是重要的研究手段。
强化学习是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中,通过学习策略以达成回报最大化或实现特定目标的问题。但直接使用强化学习,仍然非常困难。其中一个原因在于,人体控制的解空间实在太大了!高达两百多维度的连续状态空间,非常复杂,一般的强化学习算法完全无法奏效。正因为如此,诞生了很多以控制人体为目标的研究和比赛,吸引着各路高手一决雌雄。
NeurIPS: Learn to Move 强化学习赛事的诞生正意在于此。该赛事由斯坦福仿生动力学实验室举办,比赛采用斯坦福国家医学康复研究中心研发的 Opensim 人体骨骼高仿模型。参赛者需要根据该模型中多达 100 多维以上的状态描述特征,来决定模型肌肉的信号,控制模型的肌体行走。
该挑战赛创办于 2017 年,今年是第三年举办。2017 年第一次挑战赛上,比赛规则围绕谁能让模型肌体行走速度最快,2018 年赛事将整个模型运动控制从 2D 改为 3D 外,还引入带有假肢的模型,而今年比赛难度再次提升。
据悉,赛事分为 2 轮,首轮主要是增加了实时的速度变换要求,而真正的挑战集中在第 2 轮,参赛选手仅有短短2周时间来完成任务。这一轮不仅要求实时切换速度,而且是360° 范围调整行走方向,更增加了模型控制难度。由于实际状态空间和动作空间稠密并且非常大,导致基于强化学习的算法无法准确把握模型肌体的行走姿势。尽管每年的赛事难度都在增加,但今年的百度仍取得了优异成绩。据了解,在百度的最优解决方案中,甚至出现了一些普通人也难以做到的动作,如从立定状态突然平顺地向后转向并且同时以要求的速度行走,而且这个过程需要全程保持稳定不会摔倒。
百度能够在此次赛事中取得优异表现、蝉联冠军的主要因素是在于训练机制、通用算法库、迭代效率三个方面长足的技术积累。
首先,百度构建了「课程学习」的训练机制,先从高速奔跑中学习姿态,再逐步降速提升行走稳定性,从而学到了一个和人类极为相似的行走姿态。根据历届参赛选手提供的行走视频来看,百度通过这种方法学习出来的行走姿势是最为自然的,接近真实人类行走姿势的。这个行走姿势不仅可以维持人体的平衡性,还可以灵活地应付各种速度大小、角度的变化。
其次,百度采用了自主研发的强化学习框架 PARL。通过复用通用算法库里面已经实现好的算法,参赛选手得以很快地在不同算法间切换,保持了高效的迭代频率。PARL 的算法库涵盖了经典的连续控制算法 Reinforce,以及主流的 DDPG/PPO 等算法,到最前沿的 model-based 等相关算法。尽管算法库包含了各种类型的复杂算法,但是其接口是相当简单的,基本上是 import 即可用的方式。
最后,百度基于PARL提供的高效灵活的并行化训练能力进行强化学习训练,使得训练效率得以数百倍地提升。PARL 的并行接口的设计思想是用 python 的多线程代码实现真正意义上的高并发,参赛选手只需要写多线程级别的代码,然后加上PARL的并行修饰符就可以调度不同机器的计算资源,达到高并发的性能。而此次获得冠军的百度「PARL」,名字来源于 PaddlePaddle Reinforcement Learning,是基于百度飞桨(PaddlePaddle)研发的灵活高效的强化学习框架。PARL 应用了百度多年来在强化学习领域的技术深耕和产品应用经验,具有更高的可扩展性、可复现性和可复用性,强大的大规模并行化支持能力。开发者可以通过 PARL 用数行代码定制自己的模型,一个修饰符就能实现并行。此外,PARL 代码风格统一,包含了多个入门级别的强化学习算法,对初学者相当友好。事实上百度对强化学习的关注始于 2012 年,当时的百度就已经将多臂老虎机 (Multi-armed bandit) 的研究结果应用在百度搜索和推荐等产品和功能上,此后,强化学习相继落地在了度秘,凤巢,新闻 Feed 推荐以及越来越多的相关产品中。今年 1 月,百度正式发布了深度强化学习框架 PARL,更强劲的强化学习能力也正在通过飞桨平台赋能给更多开发者。