百度PARL再度奪冠NeurIPS仿生人挑戰賽:強化學習控制的流暢行走

機器學習領域頂級會議 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

 

640?wx_fmt=png

 
 
近年,隨着機械設計以及動力學控制技術的發展,仿生機器人正取得不斷的進步。好比近來波士頓動力(Boston Dynamics)發佈的機器人會跑步,會拉貨車,甚至還會「反擊」人類,而控制這些機器人的主要節點是動力學關節。

 

相比於鋼鐵造就、機械控制的機器人,人體的複雜程度有過之而無不及。探索和理解人體自身是人類的終極目標之一。人體內有206塊骨骼、639塊肌肉,正是對這些骨骼和肌肉的精細控制,造就了人類出色靈活的運動能力和平衡保持能力。近年來有不少研究但願瞭解人體的運動機制,甚至端到端地從肌肉層面直接學習控制仿生人體。針對人體控制這樣複雜的場景,強化學習(Reinforcement Learning)是重要的研究手段。

 

強化學習是機器學習的範式和方法論之一,用於描述和解決智能體(agent)在與環境的交互過程當中,經過學習策略以達成回報最大化或實現特定目標的問題。但直接使用強化學習,仍然很是困難。其中一個緣由在於,人體控制的解空間實在太大了!高達兩百多維度的連續狀態空間,很是複雜,通常的強化學習算法徹底沒法奏效。正由於如此,誕生了不少以控制人體爲目標的研究和比賽,吸引着各路高手一決雌雄。

 

NeurIPS: Learn to Move 強化學習賽事的誕生正意在於此。該賽事由斯坦福仿生動力學實驗室舉辦,比賽採用斯坦福國家醫學康復研究中心研發的 Opensim 人體骨骼高仿模型。參賽者須要根據該模型中多達 100 多維以上的狀態描述特徵,來決定模型肌肉的信號,控制模型的肌體行走。

 

該挑戰賽創辦於 2017 年,今年是第三年舉辦。2017 年第一次挑戰賽上,比賽規則圍繞誰能讓模型肌體行走速度最快,2018 年賽事將整個模型運動控制從 2D 改成 3D 外,還引入帶有假肢的模型,而今年比賽難度再次提高。

 

據悉,賽事分爲 2 輪,首輪主要是增長了實時的速度變換要求,而真正的挑戰集中在第 2 輪,參賽選手僅有短短2周時間來完成任務。這一輪不只要求實時切換速度,並且是360° 範圍調整行走方向,更增長了模型控制難度。因爲實際狀態空間和動做空間稠密而且很是大,致使基於強化學習的算法沒法準確把握模型肌體的行走姿式。
 
 
 
儘管每一年的賽事難度都在增長,但今年的百度仍取得了優異成績。據瞭解,在百度的最優解決方案中,甚至出現了一些普通人也難以作到的動做,如從立定狀態忽然平順地向後轉向而且同時以要求的速度行走,並且這個過程須要全程保持穩定不會摔倒。
 
 

640?wx_fmt=gif

 
 
百度可以在這次賽事中取得優異表現、蟬聯冠軍的主要因素是在於訓練機制、通用算法庫、迭代效率三個方面長足的技術積累。

 

首先,百度構建了「課程學習」的訓練機制,先從高速奔跑中學習姿態,再逐步降速提高行走穩定性,從而學到了一個和人類極爲類似的行走姿態。根據歷屆參賽選手提供的行走視頻來看,百度經過這種方法學習出來的行走姿式是最爲天然的,接近真實人類行走姿式的。這個行走姿式不只能夠維持人體的平衡性,還能夠靈活地應付各類速度大小、角度的變化。
 
 

640?wx_fmt=gif

640?wx_fmt=gif

 
其次,百度採用了自主研發的強化學習框架  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,更強勁的強化學習能力也正在經過飛槳平臺賦能給更多開發者。

>> 訪問 PaddlePaddle 官網,瞭解更多相關內容python

相關文章
相關標籤/搜索