去年傻盟,斯坦福大學(xué)神經(jīng)生物實(shí)驗(yàn)室與 EPFL 聯(lián)合舉辦了一場(chǎng)強(qiáng)化學(xué)習(xí)賽事——人工智能假肢挑戰(zhàn)賽(AI for Prosthetics Challenge),希望將強(qiáng)化學(xué)習(xí)應(yīng)用到人體腿部骨骼仿真模擬模型的訓(xùn)練嫂丙。
經(jīng)過激烈的角逐娘赴,最終來自百度大腦的 NLP 技術(shù)團(tuán)隊(duì)一舉擊敗眾多強(qiáng)勁對(duì)手,以9980分的成績奪得冠軍跟啤!
近日诽表,百度正式發(fā)布在賽事奪冠中起到關(guān)鍵作用的深度強(qiáng)化學(xué)習(xí)框架? PaddlePaddle PARL,同時(shí)開源了基于該框架的 NeurIPS 2018強(qiáng)化學(xué)習(xí)賽事的完整訓(xùn)練代碼隅肥。點(diǎn)擊“閱讀原文”可查看冠軍解決方案竿奏。
PaddlePaddle PARL 的名字來源于 PAddlepaddle?Reinfocement?Learning,是一款基于百度 PaddlePaddle 打造的深度強(qiáng)化學(xué)習(xí)框架腥放。PaddlePaddle?PARL 凝聚了百度多年來在強(qiáng)化學(xué)習(xí)領(lǐng)域的技術(shù)深耕和產(chǎn)品應(yīng)用經(jīng)驗(yàn)泛啸。與現(xiàn)有強(qiáng)化學(xué)習(xí)工具和平臺(tái)相比,PaddlePaddle PARL 具有更高的可擴(kuò)展性秃症、可復(fù)現(xiàn)性和可復(fù)用性候址,強(qiáng)大的大規(guī)模并行化和稀疏特征的支持能力,以及工業(yè)級(jí)應(yīng)用案例的驗(yàn)證种柑。
自2012年以來宗雇,百度就將在 multi-arm bandits 問題上的研究成果成功落地到推薦系統(tǒng)中,廣泛應(yīng)用于搜索莹规、對(duì)話赔蒲、推薦等產(chǎn)品,通過點(diǎn)擊反饋結(jié)合在線訓(xùn)練的方式,動(dòng)態(tài)調(diào)整探索(exploration)和收益(exploitation)的平衡點(diǎn)舞虱,降低探索風(fēng)險(xiǎn)的同時(shí)最大化推薦收益欢际。近年來,百度在工業(yè)應(yīng)用以及學(xué)術(shù)研究上進(jìn)一步引入強(qiáng)化學(xué)習(xí)矾兜,落地在不僅限于鳳巢损趋、新聞 Feed 推薦等應(yīng)用上,還應(yīng)用在前沿的學(xué)術(shù)研究領(lǐng)域椅寺,例如機(jī)器人控制浑槽,通用人工智能 AGI 等。2018年返帕,在機(jī)器人控制會(huì)議 CoRL 上桐玻,百度發(fā)表了干預(yù)強(qiáng)化學(xué)習(xí)機(jī)制的工作;進(jìn)而在 NeurIPS 2018的強(qiáng)化學(xué)習(xí)賽事上擊敗了400多個(gè)全球研究機(jī)構(gòu)的參賽隊(duì)伍荆萤,首次參賽就拿下了 NeurIPS 2018強(qiáng)化學(xué)習(xí)賽事冠軍镊靴。參賽隊(duì)伍中不乏 RNN 之父創(chuàng)立的公司、衛(wèi)冕冠軍 NNAISENSE链韭、Yandex偏竟、Intel 等強(qiáng)勁對(duì)手。
設(shè)計(jì)深度強(qiáng)化學(xué)習(xí)框架是相當(dāng)具備挑戰(zhàn)性的工作敞峭。雖然各大公司先后推出了一些強(qiáng)化學(xué)習(xí)框架踊谋,但截止到目前,開源社區(qū)中仍沒有一個(gè)主導(dǎo)的 RL 框架旋讹。這其中主要的一個(gè)原因是強(qiáng)化學(xué)習(xí)近年來發(fā)展迅猛殖蚕,新的研究方向不斷涌現(xiàn)。當(dāng)前社區(qū)中存在的開源框架雖然可以支持其中的一部分算法骗村,但是由于技術(shù)迭代太快嫌褪,之前設(shè)計(jì)的框架難以跟上最新的研究熱點(diǎn)呀枢。
第二個(gè)原因是深度強(qiáng)化學(xué)習(xí)算法和應(yīng)用胚股,具有方法各異、超參難調(diào)裙秋、隨機(jī)性大等特點(diǎn)琅拌,即便是針對(duì)同一個(gè)問題,使用同一種算法摘刑,不同的實(shí)現(xiàn)方式會(huì)帶來極大的差異进宝,學(xué)術(shù)界也一再強(qiáng)調(diào)強(qiáng)化學(xué)習(xí)可復(fù)現(xiàn)性問題。綜合這些因素枷恕,要實(shí)現(xiàn)一個(gè)統(tǒng)一的模型和計(jì)算平臺(tái)党晋,是相當(dāng)困難的事情。
PaddlePaddle PARL 在設(shè)計(jì)之初就考慮了上述提到的擴(kuò)展性和可復(fù)現(xiàn)性的問題。從上圖可以看出未玻,PaddlePaddle PARL 通過抽象出 Model灾而、Algorithm、Agent 等基礎(chǔ)類幫助用戶快速搭建可以和環(huán)境交互的機(jī)器人扳剿。Model 類負(fù)責(zé)強(qiáng)化學(xué)習(xí)算法中的網(wǎng)絡(luò)前向計(jì)算(forward)部分旁趟,通常嵌套在 algorithm中。Algorithm 類則定義了網(wǎng)絡(luò)的更新方式(backward)部分庇绽,通常屬于一個(gè) agent锡搜。Agent 類負(fù)責(zé)和環(huán)境進(jìn)行交互,并且收集數(shù)據(jù)訓(xùn)練底下的 algorithm瞧掺。通過這樣的設(shè)計(jì)方案耕餐,PARL 保證了算法擴(kuò)展性:針對(duì)同一個(gè)場(chǎng)景,用戶想調(diào)研不同的網(wǎng)絡(luò)結(jié)構(gòu)對(duì)算法效果影響的時(shí)候夸盟,比如調(diào)研 RNN 建亩攴剑或者 CNN 建模,只需要重寫 model 部分即可上陕;針對(duì)不同場(chǎng)景想用同一個(gè)算法調(diào)研的時(shí)候桩砰,也是只需重寫 model 即可∈筒荆可復(fù)現(xiàn)性主要體現(xiàn)在框架提供的 algorithm 集合上亚隅,在下一段和復(fù)用性一起結(jié)合理解。
PaddlePaddle PARL 的這種設(shè)計(jì)結(jié)構(gòu)的另一個(gè)好處是高復(fù)用性庶溶。倉庫內(nèi)的提供了大量經(jīng)典算法的例子(algorithms目錄內(nèi)),?包括主流的 DQN 煮纵、DDQN、Dueling DQN偏螺、DDPG行疏、PPO 等,這些算法由于和網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了解耦(網(wǎng)絡(luò)結(jié)構(gòu)定義在 Model 類中)套像,因此不針對(duì)特定任務(wù)酿联,而是一個(gè)相當(dāng)通用的算法抽象。用戶通過 PaddlePaddle PARL 搭建強(qiáng)化學(xué)習(xí)算法來解決自己目前遇到的問題時(shí)夺巩,可以直接 import 這些經(jīng)典算法贞让,然后定義自己的網(wǎng)絡(luò)前向部分即可短時(shí)間內(nèi)構(gòu)建出經(jīng)典的 RL 算法。這種高復(fù)用性不僅極大地降低了用戶的開發(fā)成本柳譬,而且由于 PARL 提供的算法內(nèi)部包含完整的超參數(shù)列表喳张,確保倉庫內(nèi)模型具備復(fù)現(xiàn)論文級(jí)別指標(biāo)的能力。
下圖是 PaddlePaddle PARL 的一個(gè)構(gòu)建示例美澳,展示了如何快速構(gòu)建可以解決 Atari 游戲的 DQN 模型销部。用戶只需要定一個(gè)前向網(wǎng)絡(luò)(Model 類)摸航,然后調(diào)用框架算法集合里面的 DQN algorithm 即可構(gòu)建一個(gè)經(jīng)典 DQN 算法了。DQN 算法里面的繁瑣的構(gòu)建 target 網(wǎng)絡(luò)舅桩,同步 target 網(wǎng)絡(luò)參數(shù)等細(xì)節(jié)忙厌,已經(jīng)包含在構(gòu)建的 algorithm 里面,用戶無需再特別關(guān)注江咳。
PaddlePaddle PARL 基于百度內(nèi)部的成熟應(yīng)用開源逢净,因此更能方便地定制大規(guī)模并行算法。通過調(diào)用簡單的函數(shù)接口歼指,用戶可以將算法從單機(jī)版擴(kuò)展成 GA3C爹土、A3C、IMPALA 等并行訓(xùn)練架構(gòu)踩身。 PaddlePaddle PARL 對(duì)于通訊機(jī)制胀茵,數(shù)據(jù) I/O 等也有獨(dú)特的加速處理。此外挟阻,基于 PaddlePaddle 對(duì)大規(guī)模工業(yè)級(jí)排序/推薦等稀疏模型的支持能力琼娘,PARL 也能輕松擴(kuò)展到百億級(jí)別數(shù)據(jù)或特征的訓(xùn)練。
PaddlePaddle PARL 的并行能力在開源社區(qū)中處于絕對(duì)領(lǐng)先地位附鸽。根據(jù)百度在 NeurIPS 上做的技術(shù)分享脱拼,基于 PaddlePaddle PARL 最多可以同時(shí)通過8塊 GPU 來拉動(dòng)近20000個(gè) CPU 節(jié)點(diǎn)運(yùn)算,完全發(fā)揮整個(gè) CPU 集群的計(jì)算潛力坷备,在賽事中成功將需要近5個(gè)小時(shí)迭代一輪的 PPO 算法加速到了不到1分鐘熄浓,實(shí)現(xiàn)了相對(duì)單機(jī)運(yùn)算高達(dá)幾百倍的加速比。這種目前開源社區(qū)中框架難以支持的并行提速省撑,是百度拿下本次冠軍的關(guān)鍵因素之一赌蔑。
百度本次正式發(fā)布 PaddlePaddle PARL, 不僅在學(xué)術(shù)界引發(fā)關(guān)注,工業(yè)界也將因此受益竟秫。百度擁有在國內(nèi)具有相當(dāng)影響力的深度學(xué)習(xí)基礎(chǔ)庫娃惯,并積極推進(jìn) AI 生態(tài)戰(zhàn)略。隨著百度 PaddlePaddle 在工業(yè)界的影響不斷深入肥败,一個(gè)高性能趾浅、高規(guī)格的深度強(qiáng)化學(xué)習(xí)框架,也是滿足工業(yè)界日趨發(fā)展旺盛的強(qiáng)化學(xué)習(xí)應(yīng)用需求的必要條件拙吉。
AI 時(shí)代潮孽,用科技讓復(fù)雜的世界更簡單揪荣!