最新 強化學習庫 RL庫

2021-10-06 09:11:22 字數 3539 閱讀 5222

近日,為了讓工業界能更好地使用前沿強化學習演算法,帝國理工和普林斯頓 強化學習團隊發布了專門面向工業界的整套強化學習基線演算法庫—rlzoo。

rlzoo 專案與目前大多數專案不同,是以面向非rl研究者設計的。該庫目前同時支援 openai gym, deepmind control suite 以及其他大規模**環境,如機械臂學習環境 rlbench 等。

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

rlzoo 通用演算法介面(例:soft actor-critic 演算法在 cartpole-v0 環境)

— 面向工業界 rlzoo:

— 面向學術界 drl_tutorial:

(歡迎star)

當前,該庫支援tensorflow用於支援對神經網路層的封裝和各種應用所需高階 api,未來將會支援更多的底層計算引擎。rlzoo 實現了基本的策略和價值網路的搭建,以支援各種廣泛應用的強化學習演算法。在 rlzoo 所提供的公共函式中,策略網路和價值網路能夠根據輸入狀態空間和動作空間的維度和型別,自適應的調整網路輸入輸出埠,能夠更方便的部署到各種環境中訓練。比如,對於 atari 遊戲中的影象輸入,rlzoo 提供的網路會自動選擇卷積神經網路模組進行預處理,提取低維特徵作為後續網路的輸入。同時,對於各種離散或連續動作輸出,rlzoo 也能夠自動選擇相應輸出埠,如對連續動作的 stochastic 策略,rlzoo 提供 diagonal gaussian 分布,對離散動作 stochastic 策略,rlzoo 提供 categorical 分布,等等。

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

強化學習的過程是智慧型體通過與環境互動,不斷試錯並提公升決策能力的過程。通過觀察狀態,執行動作並獲得回報,智慧型體根據某種學習方法不斷進步並習得最優決策。深度強化學習是指將深度神經網路與強化學習相結合,利用神經網路的擬合能力和強化學習的決策能力,在廣泛的任務上取得了優異的效果。強化學習演算法可以分為 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 系列

policy-based 系列

actor-critic 系列

在這次開源的基準庫 rlzoo 中,所支援的環境包括 openai gym (atari, classic control, box2d, mujoco, robotics), deepmind control suite, rlbench,主要的演算法與環境的具體相容情況如下表:

一 強化學習 RL 基礎

1.初探強化學習 1.什麼是強化學習?2.強化學習可以解決什麼問題?強化學習如何解決這些問題?2.強化學習 監督學習和非監督學習1.監督學習解決的是什麼問題?監督學習如何解決這些問題?2.強化學習與監督學習的差異 3.強化學習與非監督學習的差異 3.強化學習基礎理論 3.1.強化學習模型 ta t ...

強化學習RL實戰篇

執行一維一級倒立擺環境 import gym env gym.make cartpole v0 env.reset for in range 1000 env.render env.step env.action space.sample 乙個典型的agent environment loop 的實...

RL(九)基於策略的強化學習

前面的演算法都是基於價值來算的,但是當處理連續動作的問題時,就顯得力不從心了,因為我們需要求的q錶太大,根本無法滿足我們的需要。前面我們在演算法分類的時候也講過,我們可以按基於價值和基於策略的方式來給rl分類,所以這篇部落格就是用基於策略演算法來求解強化學習問題。值函式近似法 在值函式近似法中,動作...