論文鏈接:https://arxiv.org/abs/1802.01561
DMLab-30項目 GitHub:https://github.com/deepmind/lab/tree/master/game_scripts/levels/contributed/dmlab30
摘要
在本研究中愿吹,我們專注于使用單一強化學(xué)習智能體與單一參數(shù)集解決大型任務(wù)集合的問題零抬。在這樣的條件下,最主要的挑戰(zhàn)是處理越來越大的數(shù)據(jù)量和不斷增加的訓(xùn)練時間——這在單一任務(wù)學(xué)習中已經(jīng)是一個挑戰(zhàn)扁远。我們開發(fā)了一種新的分布式智能體 IMPALA(Importance-Weighted Actor Learner Architecture)扔枫,它可以擴展到數(shù)千臺機器上汛聚,每秒吞吐量高達 25 萬幀。我們通過結(jié)合決策和學(xué)習分離與新型離策略修正方法 V-trace短荐,達到了很高的吞吐量倚舀,實現(xiàn)了穩(wěn)定學(xué)習叹哭,這對于學(xué)習的穩(wěn)定性至關(guān)重要。我們展示了 IMPALA 在 DMLab-30(DeepMind Lab 環(huán)境中一組 30 個任務(wù)的集合)和 Atari-57(Arcade Learning Environment 中所有可用的 Atari 游戲)中進行多任務(wù)強化學(xué)習的有效性痕貌。我們的結(jié)果展示了 IMPALA 的性能優(yōu)于之前的智能體风罩,使用的數(shù)據(jù)更少,更重要的是新方法可以在多任務(wù)中展現(xiàn)出積極的遷移性質(zhì)舵稠。
論文三大成果
- 發(fā)布一個多任務(wù)集合 DMLab-30
- 推出一個高度可擴展的超升、基于分布式架構(gòu)的智能體架構(gòu) IMPALA
- 基于該架構(gòu)提出了一種off-policy的新型離策略修正算法 V-trace
DMLab-30中允許研究人員訓(xùn)練單個智能體執(zhí)行多種任務(wù),這涉及了巨大的數(shù)據(jù)吞吐量柱查,為了高效利用每個數(shù)據(jù)點廓俭,開發(fā)了IMPALA來分部署處理數(shù)據(jù)(250K frams/s)
因為IMPALA受A3C啟發(fā)云石,多個actor獲得的參數(shù)作為經(jīng)驗匯總給總的learner唉工,因此actor有時會落后于learner,因此引入V-trace算法來彌補兩者的差異汹忠。
DMLab-30
- 包含公共動作空間的視覺統(tǒng)一環(huán)境中的多種挑戰(zhàn)性任務(wù)淋硝,共30個空間。
- 任務(wù)盡可能多樣化:具備不同的目標宽菜,從學(xué)習谣膳、記憶到導(dǎo)航;視覺上從亮度铅乡、現(xiàn)代風格的紋理從綠到淺棕色等继谚;物理空間上從開放的多山地帶到直角迷宮,再到開放的圓形房間阵幸;
- 需要注意的是花履,這是一個多任務(wù)集合,這個場景和下個場景的任務(wù)目標和獎勵也不同挚赊,從遵循語言命令诡壁、使用鑰匙開門、采蘑菇荠割,到繪畫妹卿、沿著一條復(fù)雜、不可逆的路徑行走蔑鹦。
- 從動作和觀察空間來看夺克,這些環(huán)境基本上是一樣的,允許單個智能體在該高度變化的任務(wù)集合的每一個環(huán)境中進行訓(xùn)練嚎朽。
- 本質(zhì)上铺纽,這其實就是讓單個智能體在高度變化的環(huán)境中訓(xùn)練,使它最后可以適應(yīng)每個環(huán)境火鼻。
- https://github.com/deepmind/lab
IMPALA
- 一種新型分布式智能體 IMPALA室囊,利用高效的 TensorFlow 分布式架構(gòu)最大化數(shù)據(jù)吞吐量雕崩。
- IMPALA 受流行的 A3C 架構(gòu)的啟發(fā),A3C 架構(gòu)使用多個分布式 actor 來學(xué)習智能體的參數(shù)融撞。在此類模型中盼铁,每個 actor 使用策略參數(shù)在環(huán)境中動作。actor 周期性地暫停探索尝偎,和中央?yún)?shù)服務(wù)器共享它們計算出的梯度饶火,用于梯度更新。
- IMPALA 的 actor 不用于計算梯度致扯,而是用于收集經(jīng)驗(即觀察結(jié)果)肤寝,然后傳輸至可計算梯度的中央學(xué)習器,生成一個具備完全獨立的 actor 和 learner 的模型抖僵。
- 也就是說鲤看,在訓(xùn)練之初,actor用策略π更新初始策略μ耍群,并在當前任務(wù)中進行幾輪迭代义桂。迭代完成后,它再把當前的狀態(tài)蹈垢、動作和獎勵 x1, a1, r1, . . . , xn, an, rn慷吊,以及相應(yīng)的策略分布μ(at|xt)、初始LSTM狀態(tài)排列成組曹抬,逐個輸入learner溉瓶。利用這些由多個actor收集的數(shù)據(jù),learner能不斷更新策略π谤民。
- 為了利用現(xiàn)代計算系統(tǒng)堰酿,IMPALA 可使用單個學(xué)習器或執(zhí)行同步更新的多個學(xué)習器來實現(xiàn)。用這種方式分離學(xué)習和動作可以有效地提高整個系統(tǒng)的吞吐量赖临。
-
actor 不再需要等待學(xué)習步(像 batched A2C 架構(gòu)中那樣)胞锰。這使得我們可以在多個有趣的環(huán)境中訓(xùn)練 IMPALA,無需經(jīng)歷幀渲染時間的變動或耗時的任務(wù)重啟兢榨。
- 這個簡單的架構(gòu)使得learner可以在多個機器上并行計算(各actor不用排隊)凌那,大大提高了GPU的利用率。但是吟逝,在更新參數(shù)時帽蝶,由于learner的策略π可能比actor的策略μ提前做了幾次SGD,因此兩者間存在策略滯后的問題块攒。
V-trace
- 決策與學(xué)習的分離會導(dǎo)致 actor 中的策略落后于學(xué)習器励稳。為了彌補這一差異佃乘,DeepMind 引入了一種原則性離策略優(yōu)勢 actor critic 算法——V-trace,它通過 actor 的off-policy彌補了軌跡驹尼。
首先趣避,我們定義:
- 折扣因子(discount factor)γ ∈ [0, 1);
- t時獎勵:rt = r(xt, at) 新翎;
- xt為t時的狀態(tài)裸违;
- at ~ μ(·|xt) 是遵循某個策略μ生成的動作额嘿。
最大化亏吝。而off-policy學(xué)習算法的思路是根據(jù)動作策略μ來學(xué)習另一個策略岭埠,如策略π(μ和π可能不同)的價值函數(shù)Vπ,我們也把π稱為目標策略顺呕。
詳細的數(shù)學(xué)計算可以在論文中找到枫攀,這里我們簡要介紹3點創(chuàng)新:
結(jié)論
- 由于 IMPALA 的優(yōu)化模型技羔,相對于類似智能體而言僵闯,它可以處理一到兩個數(shù)量級的更多經(jīng)驗,讓復(fù)雜環(huán)境中的學(xué)習變?yōu)榭赡堋?/li>
- DeepMind 比較了 IMPALA 與幾種流行的 actor-critic 方法藤滥,發(fā)現(xiàn)新方法的速度有顯著提高鳖粟。此外,使用 IMPALA 的吞吐量增長與 actor 和 learner 的增加呈線性關(guān)系拙绊,這意味著分布式智能體模型和 V-trace 算法可以處理大規(guī)模實驗向图,甚至上千臺機器都沒有問題。
- 在 DMLab-30 的測試中标沪,IMPALA 處理數(shù)據(jù)的效率是分布式 A3C 的 10 倍榄攀,最終得分是后者的二倍。另外金句,IMPALA 在多任務(wù)設(shè)置的訓(xùn)練中檩赢,相比單任務(wù)訓(xùn)練還展示了正向遷移的性質(zhì)。
原文地址:https://deepmind.com/blog/impala-scalable-distributed-deeprl-dmlab-30/