飛槳強化學習框架PARL發佈首個工業級深度進化學習庫EvoKit

飛槳強化學習框架PARL曾兩次奪得NeurIPS強化學習賽事世界冠軍。近期PARL升級1.3版本,經過發佈深度進化學習庫EvoKit,多智能體強化學習(Multi-Agent RL)算法,助力強化學習進一步落地工業應用場景。git

下載安裝命令

## CPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle

## GPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu

深度進化學習庫EvoKitgithub

PARL 1.3 重點發布了首個工業級進化學習框架EvoKit,支持大規模神經網絡在真實業務場景中調研和部署進化學習算法,針對性解決進化學習算法部署到業務場景所遇到的難題。算法

什麼是進化學習算法?網絡

進化學習(Evolution Strategy)借鑑天然界種羣進化過程,經過演化的方式找到全局最優。進化學習由來已久,近年來被很多學者用於解決強化學習(Reinforcement Learning),AutoML(Auto Machine Learning)等場景的問題。相對於梯度優化而言,進化學習直接經過參數空間的擾動來觀察最終目標(以下視頻所示),而且和強化學習同樣,進化學習不要求優化目標和參數之間可導,所以適用範圍很是普遍,易於並行化。基於EvoKit,能夠利用數百臺CPU優化百萬量級參數的模型。框架

進化學習能用到哪些地方?異步

1. 優化目標和模型之間不可導的場景。例如,模型超參數的搜索;一些推薦類產品留存,總時長等不能建模,或者直接建模成本較高的場景。函數

2. 模型和業務規則邏輯或和其餘流程耦合的場景。例如,某業務線的流程包括上下游總共十幾個模塊串行處理,但願優化中間某個模塊的模型參數,可是下游處理模塊的邏輯對於當前優化是黑箱。經過進化算法能夠避免黑箱對於優化的不肯定性,直接提高最終評價指標。工具

3. 元學習。不少模型不是直接使用,而是須要在多個場景上進一步fine-tune。進化學習算法能夠利用最終fine-tune結果來優化元學習模型,破解求導鏈條過長等問題。學習

 

EvoKit有哪些特色?優化

1. EvoKit提供一整套可供線下調研及線上部署的進化學習工具。線下藉助飛槳開源框架 API實現快速調研,線上基於Paddle Lite等工具,支持以較小的成本完成調研到上線的流程。同時,EvoKit提供包含異步更新機制,參數壓縮和還原等線上業務廣泛需求的功能。

 

2. EvoKit使用上很是便利。用戶能夠利用飛槳開源框架 API搭建任意結構的複雜網絡。進化學習算法包含兩個關鍵步驟,採樣(或者擾動)和更新。網絡參數不斷經過擾動收集反饋,並基於相關反饋迭代進化網絡(如上圖所示)。EvoKit定義了主接口分別用於網絡的擾動(AddNoise)和更新迭代(Update)。用戶只需經過簡單幾行代碼就能實現完整的進化流程,下圖展現了一個僞代碼的樣例。EvoKit內置了包括ES, GA, CMA-ES等經常使用進化策略,也提供了很好的便於二次開發的可擴展接口,能夠方便實現新的算法。

 

多智能體強化學習

PARL 1.3還實現了全新的多智能體強化學習算法(Multi-Agent RL,MARL)的框架支持。MARL是RL挑戰羣體決策問題的「殺手鐗」,能夠被普遍運用在包括地圖派單,遊戲AI, 任務分配等等問題中,可是算法的復現難度比起傳統算法更大。不少RL框架很難利用一套框架兼容多種單智能體RL算法和MARL算法的開發。PARL在這一點上有新的突破。在單智能體算法中,PARL抽象出了Model、Algorithm、Agent三個模塊,分別定義了前向網絡(forward)、算法損失函數(backward)、數據交互等邏輯(見下圖)。這種以智能體爲核心的設計方式,在擴展到多智能體算法的時候,只需建立多個Agent實例,就可讓多個智能體交互起來,共同更新MARL算法。

 

以主流的MADDPG算法的評估爲例,能夠看到PARL在MARL的擴展性:

 

當經過Model、Algorithm搭建好多個Agent以後,這些Agent能夠很方便地和環境進行交互,存儲各自的數據,而後訓練模型。PARL1.3這次開源的MADDPG算法在OpenAI的8個MARL場景都進行了驗證,效果能徹底復現最優的表現。

此外,PARL 1.3版本還針對使用文檔、應用樣例進行了全面梳理,並開源了NuerIPS 2019強化學習賽事的冠軍解決方法。

 

基於這些全新的功能,但願PARL和EvoKit能給相關領域的同窗帶來新的便利,助力強化學習和進化學習算法在工業場景的進一步應用落地。

 

PARL和EvoKit徹底開源,歡迎你們使用,反饋和貢獻。

 

下載安裝命令

## CPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle

## GPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu

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

相關文章
相關標籤/搜索