今天,DeepMind開源了一個內(nèi)部強化學習庫TRFL,用于在TensorFlow中編寫強化學習智能體。這個庫包含DeepMind開發(fā)的大量成功的agent的關鍵算法組件,對于強化學習智能體的再現(xiàn)研究很有用。
今天,DeepMind開源了一個新的高效的構建模塊庫,用于在TensorFlow中編寫強化學習(RL)智能體。這個庫名為TRFL(發(fā)音為’truffle’),代表了DeepMind內(nèi)部用于大量非常成功的agent的關鍵算法組件集合,如DQN,DDPG和IMPALA(Importance Weighted Actor Learner Architecture)。
一個典型的深度強化學習agent由大量的交互組件組成:至少包括環(huán)境(environment)和一些表示價值(value)或策略(policy)的深層網(wǎng)絡,但它們通常也包括組件,例如環(huán)境的學習模型,偽獎勵函數(shù)或replay系統(tǒng)。
這些組件通常以微妙的方式相互作用(通常沒有在論文中詳細記錄),因此很難在如此龐大的計算圖中識別錯誤。OpenAI最近發(fā)表的一篇博客文章通過分析強化學習智能體的一些最流行的開源實現(xiàn),凸顯了這個問題,他們發(fā)現(xiàn)10個實現(xiàn)中有6個“具有社區(qū)成員發(fā)現(xiàn)并被作者確認的小bug”。
解決這個問題的一種方法是通過開源的完整agent實現(xiàn),幫助研究社區(qū)復現(xiàn)論文的結(jié)果。例如,我們最近發(fā)布了一種高度可擴展的分布式訓練架構IMPALA,使用V-trace agent探索在單個智能體上完成多種任務的挑戰(zhàn)。
這些大型agent代碼庫對于再現(xiàn)研究非常有用,但也很難修改和擴展。一種不同的、互補的方法是提供可靠的、經(jīng)過良好測試的通用構建塊實現(xiàn),可以在各種不同的RL智能體中使用。此外,通過將這些核心組件抽象到單個庫中,使用一致的API,可以更輕松地組合來自許多不同論文的創(chuàng)新想法。
TRFL庫包含實現(xiàn)經(jīng)典RL算法以及更前沿技術的許多函數(shù)。這里提供的損失函數(shù)和其他操作是在純TensorFlow中實現(xiàn)的。它們不是完整的算法,而是在構建功能齊全的RL智能體時所需的特定于RL的數(shù)學運算實現(xiàn)。
對于value-based的強化學習,我們提供TensorFlow ops 用于在離散動作空間中學習,例如TD-learning,Sarsa, Q-learning及其變體,以及用于實現(xiàn)連續(xù)控制算法的操作,例如DPG。
TRFL庫還包含用于學習分配價值函數(shù)的ops。這些ops支持批處理,并通過將其輸入到TensorFlow Optimiser來返回可以最小化的損失。一些損失函數(shù)在批轉(zhuǎn)換運行(例如Sarsa,Q-learning......),其他一些損失在多批軌跡上運行(例如Q lambda,Retrace,......)。
對于基于策略的方法,TRFL提供實用程序,可以輕松實現(xiàn)A2C等在線方法,以及支持off-policy糾正技術,如v-trace。TRFL還支持連續(xù)動作空間中的策略梯度計算。
最后,TRFL還提供了UNREAL使用的輔助偽獎勵函數(shù)(pseudo-reward functions)的實現(xiàn),我們發(fā)現(xiàn)它可以提高各個領域的數(shù)據(jù)效率。
這不是一次性的發(fā)布。由于TRFL庫在DeepMind內(nèi)部廣泛使用,因此我們將繼續(xù)維護它,并隨著時間的推移添加新功能。我們也渴望得到更廣泛的RL社區(qū)對這個庫的貢獻。
TRFL庫由DeepMind研究工程團隊創(chuàng)建。
開源獲取地址:
https://github.com/deepmind/trfl
開源代碼
安裝
可以使用以下命令從github直接從pip安裝TRFL:pip install git+git://github.com/deepmind/trfl.git
TRFL同時適用于TensorFlow的CPU和GPU版本,但它沒有將Tensorflow列為一個requirement,因此你需要單獨安裝Tensorflow和Tensorflow-probability。
用例
loss是代表損失的張量。對于Q-learning,它是預測的Q-values和TD targets之間的平方差的一半。
額外信息位于q_learning命名元組中,包括q_learning.td_error和q_learning.target。
大多數(shù)情況下,你可能只對loss感興趣:
該模塊中的所有損失函數(shù)使用上述約定返回損失張量和額外信息。
不同的函數(shù)可能有不同的額外字段。有關更多信息,請查看每個函數(shù)的文檔。
-
智能體
+關注
關注
1文章
150瀏覽量
10579 -
強化學習
+關注
關注
4文章
266瀏覽量
11254 -
DeepMind
+關注
關注
0文章
130瀏覽量
10863
原文標題:DeepMind開源強化學習庫TRFL,關鍵算法可編寫RL智能體
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論