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