在最近的 NeurlPS 2019 强化学习赛事中,百度凭借基于飞桨的自研强化学习框架 「PARL」 再次夺冠。

机器学习领域顶级会议 NeurIPS 2019 将于 12 月 8 日-14 日在加拿大温哥华开幕。不久之前,大会公布了论文评审结果,今年大会共收到 6743 份有效论文,接收了 1428 篇,录取率为 21.17%。
作为国内最早投身 AI 领域的科技巨头,百度今年有多篇论文入选。
此外,会议主办的 NeurIPS 2019: Learn to Move 强化学习赛事落下帷幕,百度继 后再度蝉联冠军。本次比赛的难度非常大,在参赛的近 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,更强劲的强化学习能力也正在通过飞桨平台赋能给更多开发者。

百度PARL再度夺冠NeurIPS仿生人挑战赛:强化学习控制的流畅行走相关推荐

  1. 深度强化学习控制六足机器人移动个人学习笔记(一)

    深度强化学习控制六足机器人移动个人学习笔记(一) 注意事项 ubuntu18对应的ros版本不是Kinect gym算法执行中部分包要求Python不低于3.6 conda虚拟环境安装gym-gaze ...

  2. 深度强化学习控制移动机器人

    联系方式:860122112@qq.com 一.实验目的 使用深度强化学习控制移动机器人在复杂环境中避障.收集物品到指定点.所用到的算法包括DQN.Deuling-DDQN.A3C.DDPG.NAF. ...

  3. 招全奖博士!UNC Charlotte招收机器人/强化学习/控制博士

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 导师介绍: Dr. Wenhao Luo 目前就职于UNC Charlotte, 担任计算机系助理教授.Dr ...

  4. WWW 2021 | 通过强化学习控制对话式检索的风险

    ©PaperWeekly 原创 · 作者|金金 单位|阿里巴巴研究实习生 研究方向|推荐系统 本文由犹他大学发表于 WWW 2021.考虑到当前的对话式系统可能由于提出一些不好的澄清式问题,导致用户拥 ...

  5. 深度强化学习(资源篇)(更新于2020.11.22)

    理论 1种策略就能控制多类模型,华人大二学生提出RL泛化方法,LeCun认可转发 | ICML 2020 AlphaGo原来是这样运行的,一文详解多智能体强化学习的基础和应用 [DeepMind总结] ...

  6. 夺魁NeurIPS 2020电网调度大赛,百度PARL实现NeurIPS强化学习竞赛三连冠

    深度强化学习实验室 来源:转载自机器之心 编辑:DeepRL 受疫情影响,人工智能顶级学术会议 NeurIPS 2020 将通过线上的形式进行.随着会议召开时间临近,该会议承办的竞赛也陆续揭晓结果.今 ...

  7. 百度正式发布PaddlePaddle深度强化学习框架PARL

    去年,斯坦福大学神经生物实验室与 EPFL 联合举办了一场强化学习赛事--人工智能假肢挑战赛(AI for Prosthetics Challenge),希望将强化学习应用到人体腿部骨骼仿真模拟模型的 ...

  8. 南栖仙策强化学习突破发表NeurIPS 2020论文

    深度强化学习实验室 官网:http://www.neurondance.com/ 作者:俞扬 编辑:DeepRL 什么是强化学习 2016 年AlphaGo不仅掀起了人工智能的浪潮,也将一个以往关注度 ...

  9. 《强化学习周刊》第23期:NeurIPS 2021强化学习的最新研究与应用

    No.23 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.并且诸多研究成果发表于NeurIPS 20 ...

最新文章

  1. exe打包工具_pyqt5快速上手基础篇12-使用Pyinstaller打包应用程序
  2. Java黑皮书课后题第4章:*4.23(金融应用:酬金)编写一个程序,读取下面信息,然后输出一个酬金声明
  3. Windows 10《描图》应用现已开源
  4. 端午将至……想和程序猿Coding个粽子行不行?
  5. 云桌面部署_云桌面时代降临-青椒云工作站
  6. python科学坐标图绘制的四个要素_Python3.0科学计算学习之绘图(四)
  7. git fork clone 区别_我的Git笔记
  8. 排序算法lowb三人组-插入排序
  9. 201521123050 《Java程序设计》第8周学习总结
  10. 《人性的弱点》--如欲采蜜,勿蹴蜂房。
  11. 5年级用计算机器探索规律,《小数除法》用计算器探索规律
  12. Unity3D脚本编程——使用C#语言开发跨平台游戏
  13. win10的计算机是哪个版本,Win10七大版本哪个好 Windows10系统各版本功能区别详解...
  14. java 极客漫画_漫画:Java如何实现热更新?
  15. 计算机英语断句,英语断句方法
  16. Linux常用基本命令详解(二)-------磁盘分区和磁盘管理类命令
  17. springboot 0709
  18. JavaScript笔记 var e=e||window.event
  19. xcode9.4网盘资源
  20. C语言中,定义一个布尔型变量如何用,为什么我用bool定义会报错?

热门文章

  1. IE浏览器error:Promise未定义
  2. 标准库 - 输入输出处理(input and output facilities) lua
  3. 51Nod 1640 - 天气晴朗的魔法(最小生成树变形)
  4. SpringBoot配置Druid
  5. 2017.6.11 校内模拟赛
  6. P1001 第K极值【tyvj】
  7. html标签中lang属性及xml:lang属性的作用
  8. python练习小例子(二)
  9. matlab无限循环怎么停下来,[求助] 关于matlab无限循环的问题
  10. java 正则 空格_Java中关于空格的正则表达式