百度飛槳強化學習框架PARL發(fā)布首個工業(yè)級深度進化學習庫EvoKit
百度飛槳強化學習框架PARL曾兩次奪得NeurIPS強化學習賽事世界冠軍。近期PARL升級1.3版本,通過發(fā)布深度進化學習庫EvoKit,多智能體強化學習(Multi-Agent RL)算法,助力強化學習進一步落地工業(yè)應用場景。
深度進化學習庫EvoKit
PARL 1.3 重點發(fā)布了首個工業(yè)級進化學習框架EvoKit,支持大規(guī)模神經(jīng)網(wǎng)絡在真實業(yè)務場景中調(diào)研和部署進化學習算法,針對性解決進化學習算法部署到業(yè)務場景所遇到的難題。
什么是進化學習算法?
進化學習(Evolution Strategy)借鑒自然界種群進化過程,通過演化的方式找到全局最優(yōu)。進化學習由來已久,近年來被不少學者用于解決強化學習(Reinforcement Learning),AutoML(Auto Machine Learning)等場景的問題。相對于梯度優(yōu)化而言,進化學習直接通過參數(shù)空間的擾動來觀察最終目標(如下圖所示),并且和強化學習一樣,進化學習不要求優(yōu)化目標和參數(shù)之間可導,因此適用范圍非常廣泛,易于并行化。基于EvoKit,可以利用數(shù)百臺CPU優(yōu)化百萬量級參數(shù)的模型。
進化學習能用到哪些地方?
- 優(yōu)化目標和模型之間不可導的場景。例如,模型超參數(shù)的搜索,一些推薦類產(chǎn)品留存,總時長等不能建模,或者直接建模成本較高的場景。
- 模型和業(yè)務規(guī)則邏輯或和其他流程耦合的場景。例如,某業(yè)務線的流程包括上下游總共十幾個模塊串行處理,希望優(yōu)化中間某個模塊的模型參數(shù),但是下游處理模塊的邏輯對于當前優(yōu)化是黑箱。通過進化算法可以避免黑箱對于優(yōu)化的不確定性,直接提升最終評價指標。
- 元學習。很多模型不是直接使用,而是需要在多個場景上進一步fine-tune。進化學習算法可以利用最終fine-tune結果來優(yōu)化元學習模型,破解求導鏈條過長等問題。
EvoKit有哪些特點?
1. EvoKit提供一整套可供線下調(diào)研及線上部署的進化學習工具。線下借助飛槳開源框架 API實現(xiàn)快速調(diào)研,線上基于Paddle Lite等工具,支持以較小的成本完成調(diào)研到上線的流程。同時,EvoKit提供包含異步更新機制,參數(shù)壓縮和還原等線上業(yè)務普遍需求的功能。
2. EvoKit使用上非常便利。用戶可以利用飛槳開源框架 API搭建任意結構的復雜網(wǎng)絡。進化學習算法包含兩個關鍵步驟,采樣(或者擾動)和更新。網(wǎng)絡參數(shù)不斷通過擾動收集反饋,并基于相關反饋迭代進化網(wǎng)絡(如上圖所示)。 EvoKit定義了主接口分別用于網(wǎng)絡的擾動(AddNoise)和更新迭代(Update)。用戶只需通過簡單幾行代碼就能實現(xiàn)完整的進化流程,下圖展示了一個偽代碼的樣例。EvoKit內(nèi)置了包括ES, GA, CMA-ES等常用進化策略,也提供了很好的便于二次開發(fā)的可擴展接口,可以方便實現(xiàn)新的算法。
多智能體強化學習
PARL 1.3還實現(xiàn)了全新的多智能體強化學習算法(Multi-Agent RL,MARL)的框架支持。MARL是RL挑戰(zhàn)群體決策問題的“殺手锏”,可以被廣泛運用在包括地圖派單,游戲AI, 任務分配等等問題中,但是算法的復現(xiàn)難度比起傳統(tǒng)算法更大。很多RL框架很難利用一套框架兼容多種單智能體RL算法和MARL算法的開發(fā)。PARL在這一點上有新的突破。在單智能體算法中,PARL抽象出了Model、Algorithm、Agent三個模塊,分別定義了前向網(wǎng)絡(forward)、算法損失函數(shù)(backward)、數(shù)據(jù)交互等邏輯(見下圖)。這種以智能體為核心的設計方式,在擴展到多智能體算法的時候,只需創(chuàng)建多個Agent實例,就可以讓多個智能體交互起來,共同更新MARL算法。
以主流的MADDPG算法的評估為例,可以看到PARL在MARL的擴展性:
當通過Model、Algorithm搭建好多個Agent之后,這些Agent可以很方便地和環(huán)境進行交互,存儲各自的數(shù)據(jù),然后訓練模型。PARL1.3此次開源的MADDPG算法在OpenAI的8個MARL場景都進行了驗證,效果能完全復現(xiàn)最優(yōu)的表現(xiàn)。
此外,PARL 1.3版本還針對使用文檔、應用樣例進行了全面梳理,并開源了NuerIPS 2019強化學習賽事的冠軍解決方法。
基于這些全新的功能,希望PARL和EvoKit能給相關領域的同學帶來新的便利,助力強化學習和進化學習算法在工業(yè)場景的進一步應用落地。
PARL和EvoKit完全開源,歡迎大家使用,反饋和貢獻。
PARL鏈接:https://github.com/PaddlePaddle/PARL
如在使用過程中有技術問題,歡迎加入飛槳官方QQ群進行提問:703252161