幾行代碼輕鬆實現,Tensorlayer 2.0推出深度強化學習基準庫

機器之心發佈

強化學習通過使用獎勵函數對智能體的策略進行優化,深度強化學習則將深度神經網絡應用於強化學習算法。深度強化學習由於其可擴展性,受到科研界和工業界越來越多的關注,其應用包括簡單的基於圖像的遊戲,和高度複雜的遊戲如星際爭霸,以及棋牌類遊戲如圍棋、德州撲克等,在機器人控制領域也逐漸被科研人員採用。

近日,為了讓工業界能更好地使用前沿強化學習算法,Tensorlayer 強化學習團隊發佈了專門面向工業界的整套強化學習基線算法庫---RLzoo。(TensorLayer 是基於 TensorFlow 的延伸庫,用於對基本的神經網絡構建和多樣的神經網絡應用進行更好的支持,未來將支持更多底層計算引擎。)

RLzoo 項目是自 TensorFlow 2.0 發佈以來首個較全面的以 TensorLayer 2.0 搭配 TensorFlow 2.0 的強化學習開源算法庫,該庫目前同時支持 OpenAI Gym, DeepMind Control Suite 以及其他大規模仿真環境,如機械臂學習環境 RLBench 等。

據介紹,該項目是 TensorLayer 強化學習團隊發佈學術版強化學習算法庫之後的又一開源項目,而這次開源的項目面向工業界需求為主。之前的學術版算法庫以精簡清晰的結構展示主要強化學習算法實現,並可輕便快捷的適用於新的學習環境;而這次的工業界版本庫則以結構化的封裝使得部署大規模基準測試更加簡便,只需要幾行代碼就可以實現非常複雜的算法,給科研和工程人員提出和檢驗新算法帶來方便。

幾行代碼輕鬆實現,Tensorlayer 2.0推出深度強化學習基準庫

RLzoo 通用算法接口(例:Soft Actor-Critic 算法在 CartPole-v0 環境)

貢獻者來自帝國理工、北京大學和中科院,包括丁子涵、董豪、余天洋、黃彥華、張鴻鳴。

  • 面向工業界 RLZoo:https://github.com/tensorlayer/RLzoo
  • 面向學術界 DRL_tutorial:https://github.com/tensorlayer/tensorlayer/tree/master/examples/reinforcement_learning
  • Slack 交流群:https://app.slack.com/client/T5SHUUKNJ/D5SJDERU7

當前,TensorLayer 2.0 是基於 TensorFlow 2.0 的開源庫,用於支持對神經網絡層的封裝和各種應用所需高級 API,未來將會支持更多的底層計算引擎。TensorLayer 2.0 的 Eager execution 模式和 Session 的取消使得神經網絡的搭建過程更加靈活簡便,而 TensorLayer 2.0 則在此基礎上同時支持靜態網絡和動態網絡的構建,支持整個開發工作流,以適應多樣的科研和工業項目需要。
在 TensorLayer 的基礎上,RLzoo 實現了基本的策略和價值網絡的搭建,以支持各種廣泛應用的強化學習算法。在 RLzoo 所提供的公共函數中,策略網絡和價值網絡能夠根據輸入狀態空間和動作空間的維度和類型,自適應的調整網絡輸入輸出端口,能夠更方便的部署到各種環境中訓練。比如,對於 Atari 遊戲中的圖像輸入,RLzoo 提供的網絡會自動選擇卷積神經網絡模塊進行預處理,提取低維特徵作為後續網絡的輸入。同時,對於各種離散或連續動作輸出,RLzoo 也能夠自動選擇相應輸出端口,如對連續動作的 stochastic 策略,RLzoo 提供 Diagonal Gaussian 分佈,對離散動作 stochastic 策略,RLzoo 提供 Categorical 分佈,等等。

RLzoo 開源項目以方便用戶對複雜的強化學習算法進行靈活配置為目標,其各種算法的學習參數、神經網絡結構、優化器等都可以進行簡單選擇和替換,從而最大限度方便學術和工業界的調試、基準測試和使用。TensorLayer 為 RLzoo 提供了靈活的網絡構建方式,使得強化學習算法的實現更加簡便。未來,RLzoo 團隊將開源對現有強化學習算法在各種學習環境下的測試對比及參數選定,實現更加透明的算法效果對比。

此次開源 RLzoo 中包括算法 Deep Q-Network (DQN), Double DQN, Dueling DQN, Prioritized Experience Replay (PER), Policy Gradient (PG), Actor-Critic (AC), Asynchronous Advantage Actor-Critic (A3C), Deep Deterministic Policy Gradient (DDPG), Twin Delayed DDPG (TD3), Soft Actor-Critic (SAC), Proximal Policy Optimization (PPO), Distributed PPO (DPPO), Trust Region Policy Optimization (TRPO)。團隊將持續更新各種新型算法,以及學習環境,並歡迎大家的反饋和貢獻。

幾行代碼輕鬆實現,Tensorlayer 2.0推出深度強化學習基準庫

Li Y . Deep Reinforcement Learning: An Overview[J]. 2017. (https://arxiv.org/abs/1701.07274)

強化學習的過程是智能體通過與環境交互,不斷試錯並提升決策能力的過程。通過觀察狀態,執行動作並獲得回報,智能體根據某種學習方法不斷進步並習得最優決策。深度強化學習是指將深度神經網絡與強化學習相結合,利用神經網絡的擬合能力和強化學習的決策能力,在廣泛的任務上取得了優異的效果。強化學習算法可以分為 on-policy/off-policy,model-free/model-based,value-based/policy-based 等。這裡我們按照 value-based/policy-based 的方式進行分類,如上圖所示。

單純 value-based 方法主要包括 Q-learning、SARSA 等,其與深度學習結合的算法主要為 DQN 及各種變體。這類方法的基本思路是建立值函數的線性或非線性映射,先評估值函數,再改進當前策略。這類方法的優點在於樣本利用效率高,值函數估計方差小,不易陷入局部最優。但其缺點在於其動作空間通常為離散空間,連續空間通常無能為力,且 epsilon-greedy 策略容易出現過估計的問題等。

在開源庫中團隊實現了 DQN 以及一系列的改進算法:Prioritized Experience Replay 根據 TD 偏差給經驗賦予權重提升學習效率;Dueling DQN 改進網絡結構,將動作值函數分解為狀態值函數 V 和優勢函數 A,提升函數逼近效果;Double DQN 將動作選擇和動作評估用不同參數實現,解決過估計問題;Retrace 修正 Q 值的計算方法,減小值估計的方差;Noisy DQN 給網絡參數添加噪聲,增加探索度;Distributed DQN 將 Q 值的估計細化為 Q 分佈的估計。在基準庫中我們將這些算法進行封裝,統一到 DQN 算法內部,通過外部參數實現對算法細節的調整,可以快速實現不同算法間的全面比較。

單純 policy-based 方法主要包括 stochastic policy gradient、 trust-region-based methods、演化算法等。其中 stochastic policy gradient 和 trust-region-based methods 是基於梯度的方法,演化算法是無梯度方法。這類方法通過直接對策略進行迭代計算,迭代更新策略參數直到累積回報最大化。這類方法相比純 value-based 方法,其策略參數化簡單,收斂性質更好,且適用於離散和連續的動作空間。其缺點在於軌跡方差大,樣本利用效率低且易收斂到局部最優等。

這裡團隊實現了 Policy Gradient (PG)、Trust Region Policy Optimization (TRPO)、Proximal Policy Optimization (PPO) 等算法。其中 TRPO 和 PPO 在 PG 的基礎上對更新步長作了約束,防止出現 policy collapse 的情形,使得算法更加穩定的上升。

Actor-critic 方法結合了 value-based 方法和 policy-based 方法的優點,利用 value-based 方法訓練 Q 函數提升樣本利用效率,利用 policy-based 方法訓練策略,適用於離散和連續動作空間。可以將這類方法看作 value-based 方法在連續動作空間上的擴展,也可以看作 policy-based 方法對減少採樣方差的改進。這類方法雖然吸收了二者的優點,同時也繼承了相應的缺點,例如 critic 同樣存在過估計問題,actor 存在探索不足的問題等。

這裡我們實現了 AC 算法及其一系列改進:A3C 將 AC 算法作到異步並行,打亂數據間相關性,提升數據收集和訓練速度;DDPG 繼承 DQN 的 target network,actor 為確定性策略,訓練更加穩定簡單;TD3 引入 Double DQN 的方式和延遲更新策略,解決過估計問題;SAC 在 Q 值估計中引入熵正則化,提升探索能力。

此外,還有最大熵方法和策略/值迭代等方法。例如 SAC 便是 actor-critic 與最大熵的結合,value-based 和 policy-based 方法裡也包含策略/值迭代的思想。具體算法和相關信息見下表。
Value-based 系列

幾行代碼輕鬆實現,Tensorlayer 2.0推出深度強化學習基準庫


Policy-based 系列


幾行代碼輕鬆實現,Tensorlayer 2.0推出深度強化學習基準庫


Actor-critic 系列

幾行代碼輕鬆實現,Tensorlayer 2.0推出深度強化學習基準庫


在這次開源的基準庫 RLzoo 中,所支持的環境包括 Openai Gym (Atari, Classic Control, Box2D, Mujoco, Robotics), Deepmind Control Suite, RLBench,主要的算法與環境的具體兼容情況如下表:

幾行代碼輕鬆實現,Tensorlayer 2.0推出深度強化學習基準庫


分享到:


相關文章: