ITBear旗下自媒體矩陣:

NeurIPS頒獎現(xiàn)場:揭秘百度如何在強化學(xué)習(xí)競賽中拔得頭籌

   時間:2019-12-16 17:23:50 來源:互聯(lián)網(wǎng)編輯:星輝 發(fā)表評論無障礙通道

相比于一年舉辦數(shù)十場的各種類型的圖像識別/分割大賽而言,強化學(xué)習(xí)的頂級賽事可謂是寥寥可數(shù),其技術(shù)報告更是鳳毛麟角。強化學(xué)習(xí)在賽事領(lǐng)域到底有哪些常用的解題思路以及黑科技呢?今天我們通過解讀NeurIPS強化學(xué)習(xí)賽事頒獎現(xiàn)場的技術(shù)報告,為大家?guī)矸律丝刂拼筚愡@一國際頂尖賽事的冠軍解決方案。

訓(xùn)練代碼的開源路徑:https://github.com/PaddlePaddle/PARL

在12月8日-14日于加拿大溫哥華舉辦的機器學(xué)習(xí)領(lǐng)域頂級會議NeurIPS 2019上,百度連續(xù)第二年拿下強化學(xué)習(xí)賽事冠軍。而在頒獎典禮現(xiàn)場,百度技術(shù)團隊分享了此次能夠獲得冠軍的關(guān)鍵3點:高性能的并行框架PARL、課程學(xué)習(xí)機制以及提升模型魯棒性的新算法。

圖片包含 室內(nèi), 電視, 監(jiān)視器, 墻壁

描述已自動生成

據(jù)悉,斯坦福大學(xué)仿生動力學(xué)實驗室連續(xù)三年在NeurIPS上舉辦了關(guān)于仿生人的控制競賽---通過肌肉來控制仿生人來靈活運動,目標(biāo)是將強化學(xué)習(xí)這項潛力巨大的技術(shù)應(yīng)用到人體肌肉運動研究領(lǐng)域中,進一步理解對人體腿部的運動原理,為該領(lǐng)域研究拓展全新的研究思路。

今年賽事的任務(wù)是通過強化學(xué)習(xí)訓(xùn)練一個模型來控制仿生人進行靈活運動,使得其可以朝著任意角度行走,并可以實時調(diào)整速度快慢。這一目標(biāo)相比去年階段性地變化行走目標(biāo)而言,主要變化在實時變換速度,任意行走角度上,給今年的參賽選手帶來了極大的挑戰(zhàn)(賽事結(jié)果報導(dǎo)見上一篇文章)。

如下為百度技術(shù)團隊在頒獎典禮上的技術(shù)報告:

PARL:最高可支持20000個計算節(jié)點并發(fā)計算的強化學(xué)習(xí)框架

歷屆賽事采用的是斯坦福實驗室設(shè)計的opensim仿生人模型,這一仿真器基于生物動力學(xué)原理,盡可能地還原了真實的物理情況。但是高仿真度意味需要耗費更多的計算資源,這使得它的運行速度相比主流強化學(xué)習(xí)仿真環(huán)境慢很多,平均速率只有4幀/秒(主流環(huán)境Mujoco最高可達到1000幀/秒)。要解決這個問題,最直接了當(dāng)?shù)姆椒ㄊ抢枚鄠€CPU進行并行計算,同時進行仿真。目前開源社區(qū)中已經(jīng)有一部分RL框架支持并行計算,比如最為流行的baseline(OPENAI開源),但是這類框架的并行計算是基于mpi4py通訊協(xié)議實現(xiàn)的。用戶不僅需要熟悉mpi的常用接口,還得用特定的命令才能啟動多機訓(xùn)練,相對于單機版本的改動極大,用戶上手成本很高。

圖片包含 墻壁, 人員, 室內(nèi), 天花板

描述已自動生成

而在飛槳PARL框架下,并行計算代碼編寫幾乎沒有額外學(xué)習(xí)成本。PARL鼓勵用戶寫傳統(tǒng)的python多線程代碼來達到并行目的,開發(fā)者并不需要關(guān)注網(wǎng)絡(luò)傳輸?shù)膶崿F(xiàn),只要增加一個并行修飾符就可以實現(xiàn)并行化(盡管python多線程受全局鎖GIL限制而不能實現(xiàn)真正的并行,但是這個修飾符的底層實現(xiàn)是獨立進程級別的,不受這一限制)。獲勝團隊實現(xiàn)了并行版本的DDPG/PPO算法,使用了上百個仿真環(huán)境在CPU集群上進行仿真,探索不同的狀態(tài)空間,并且通過網(wǎng)絡(luò)傳輸把數(shù)據(jù)收集到訓(xùn)練機器上通過GPU預(yù)測以及訓(xùn)練(見圖1),將原先單CPU需要5小時迭代一輪的單機PPO算法時間壓縮到了不到1分鐘。

圖1

課程學(xué)習(xí)機制

本次比賽的一個重要挑戰(zhàn)是在高達117維度的連續(xù)空間上訓(xùn)練一個可以靈活行走的模型,搜索空間極大,模型在訓(xùn)練的過程中很容易陷入局部最優(yōu),例如圖2這種螃蟹一樣橫著走的情況。

圖2

如何才能避免這種情況,讓模型學(xué)習(xí)到一個靈活的走路姿勢,和普通人行走一樣正常呢?

在參賽過程中,該團隊注意到把強化學(xué)習(xí)的學(xué)習(xí)目標(biāo)直接設(shè)定為低速向前的話,模型會“抖機靈”地探索到各種各樣奇怪的姿勢來達到低速行走的目標(biāo),比如拖著腿走,小步跳著走,甚至橫著走。這些奇怪的姿勢導(dǎo)致模型陷入局部最優(yōu),短期內(nèi)雖然拿到了不錯打分,但效果卻無法進一步提升。如何學(xué)習(xí)到更接近于人類的穩(wěn)定姿態(tài)?參賽團隊進一步發(fā)現(xiàn),把目標(biāo)設(shè)定為向前奔跑且跑得越快越好,模型學(xué)出來的姿勢較自然。仿真環(huán)境中的仿生人先邁出右腿,身體向前傾斜,然后向前沖刺,最后和普通人一樣向前跑起來(見圖3)!該團隊認(rèn)為出現(xiàn)該情況的原因在于此:低速行走有非常多的姿勢能夠?qū)崿F(xiàn),也很容易陷入局部最優(yōu);但是目標(biāo)設(shè)定為最快速度奔跑的時候,模型的可能選擇反倒更少了----像人類一樣沖刺。在學(xué)會了向前奔跑之后,參賽選手再逐步把目標(biāo)速度降低,讓模型保持原先的姿勢的同時,逐步學(xué)會低速行走。有了這種“課程”式的訓(xùn)練過程,模型可以學(xué)習(xí)到真正與人類一樣的行走姿勢,這也為后續(xù)的靈活變換方向奠定了基礎(chǔ)。

macOS:Users:zhoubo01:Downloads:歸檔:img2.gif

圖3

RAVE:提升魯棒性的新算法

RAVE的全稱是Risk-averse Value Expansion,是該團隊提出的基于模型的強化學(xué)習(xí)算法(model-based RL),這個算法在本次奪冠過程中起到了極為關(guān)鍵的作用,最終也獲得了賽事的Best Machine Learning Paper榮譽。這次賽事的最為重要的一個挑戰(zhàn)是仿生人需要實時變換速度,reward是取決于仿生人的實時速度與指定速度之間的差值,但是未來的目標(biāo)速度是無法提前得知的(賽事規(guī)則限制)。這一個問題給強化學(xué)習(xí)的學(xué)習(xí)機制帶來了很大的干擾:由于未來的目標(biāo)速度無法預(yù)估,會使得在當(dāng)前狀態(tài)下,模型錯誤地估計了未來風(fēng)險,從而采取一些風(fēng)險偏高的行為而很容易摔倒。針對這一個問題,PARL團隊從對環(huán)境的建模入手,在借鑒了發(fā)表在18年NeurIPS的Ensemble of Probabilistic Models(PE)工作后,他們采用了多個高斯模型對環(huán)境進行建模,同時捕捉建模的誤差以及環(huán)境的隨機性,并通過取多個預(yù)估值的置信度下界的方式,來解決值函數(shù)在計算過程中過于“樂觀”的情況。憑借著這個算法,百度參賽團隊最終訓(xùn)練出了圖4這樣靈活的控制模型,連續(xù)兩年拿下該賽事的冠軍名次。

macOS:Users:zhoubo01:Downloads:歸檔:img3.gif

圖4

最后參賽團隊表示已經(jīng)把相關(guān)訓(xùn)練代碼開源到PARL倉庫中,方便大家了解強化學(xué)習(xí)競賽的訓(xùn)練流程,具體可以參閱如下路徑(https://github.com/PaddlePaddle/PARL/tree/develop/examples/NeurIPS2019-Learn-to-Move-Challenge)。

舉報 0 收藏 0 打賞 0評論 0
 
 
更多>同類資訊
全站最新
熱門內(nèi)容
網(wǎng)站首頁  |  關(guān)于我們  |  聯(lián)系方式  |  版權(quán)聲明  |  網(wǎng)站留言  |  RSS訂閱  |  違規(guī)舉報  |  開放轉(zhuǎn)載  |  滾動資訊  |  English Version