今天,DeepMind 開源了一個為寫作強化學習智慧體服務的實用新構件庫——TRFL,該庫包含一系列關鍵演算法元件。DeepMind 內部已經在大量最成功的智慧體(如 DQN、DDPG 和 IMPALA)中使用了這些元件。
今天,DeepMind 在 TensorFlow 上為寫作強化學習智慧體開源了一個實用新構件庫——TRFL,包含一系列關鍵演算法元件。DeepMind 內部已經在大量最成功的智慧體中使用了這些元件,如 DQN、DDPG 和 IMPALA。-
典型的深度強化學習智慧體由大量的互動元件構成,至少包含環境和一些表示價值或策略的深度網路,但是也通常包含一些元件,如環境的學習模型、偽獎勵函式或重放系統(replay system)。
這些元件通常以微妙的方式進行互動,因此很難在如此大的計算圖中找出 bug。OpenAI 部落格《OpenAI Baselines: DQN》強調了這個問題,這篇部落格分析了強化學習智慧體一些最流行的開源實現,發現 10 個實現中的 6 個「有被社群成員發現並得到作者確認的微小 bug」。
開源完整智慧體實現有助於解決這一問題並幫助研究社群復現論文結果。例如,DeepMind 在部落格《Importance Weighted Actor-Learner Architectures: Scalable Distributed DeepRL in DMLab-30》中介紹了最近在 v-trace 智慧體的可擴充套件分散式實現方面所做的工作。這些大型智慧體程式碼庫對於復現論文非常有用,但是很難修改或擴充套件。一種不同且互補的方法是提供可用於各種不同強化學習智慧體的可靠、經過良好測試的常見構件實現。此外,我們用一致的 API 將這些核心元件抽象化到一個庫中,使得糅合不同研究中的想法變得更加簡單。
TRFL 庫包含實現經典 RL 演算法和前沿技術的函式。該庫提供的損失函式及其他運算都是在 TensorFlow 中實現的。它們不是完整的演算法,而是構建功能完備 RL 智慧體所需 RL 數學運算的實現。
對於基於價值的強化學習,該庫提供用於離散動作空間學習的 TensorFlow op(如 TD-learning、Sarsa、Q-learning 及其變體),以及實現連續控制演算法的 op(如 DPG)。該庫還提供用於學習分散式價值函式的 op。這些 op 支援批處理,並返回一個損失,通過將它饋入 TensorFlow Optimiser 可實現損失最小化。一些損失會在過渡批次(batches of transition)中(如 Sarsa、Q-learning 等)發揮作用,而其他損失在軌跡批次(batches of trajectories)中(例如 Q-lambda、Retrace 等)發揮作用。對於基於策略的方法,TRFL 可以輕鬆實現線上方法(如 A2C)並支援離策略糾正技術(如 v-trace)。此外,它還支援連續動作空間中策略梯度計算。最後,TRFL 還提供了一個 UNREAL 使用的輔助偽獎勵函式的實現,它可以提高多個領域中的資料效率。
TRFL 庫的建立者是 DeepMind 的研究工程團隊。此次開源不是一次完成的。由於這個庫在 DeepMind 內部應用廣泛,DeepMind 將繼續對其進行維護,並逐漸新增新功能。