深度強化學習一直以來都以智能體訓練時間長、計算力需求大而限制很多的人去學習,比如:AlphaZero訓練3天的時間等,因此縮短訓練周轉時間成為一個重要話題。深度強化學習大神Pieter Abbeel最近發表了深度強化學習的加速方法,他從整體上提出了一個加速深度強化學習周轉時間的方法,說起Pieter Abbeel,他是伯克利大學教授,也是強化學習的重要科學家。

繼續本篇文章的主題《深度強化學習的加速方法》,還是慣例,先放出paper的首頁摘要部分。

論文地址: arxiv.org/pdf/1803.0281

最近幾年,深度強化學習在各行各業已經有了很成功的應用,但實驗的周轉時間(turn-around time)仍然是研究和實踐中的一個關鍵瓶頸。 該論文研究如何在現有計算機上優化現有深度RL演算法,特別是CPU和GPU的組合。 且作者確認可以調整策略梯度和Q值學習演算法以學習使用許多並行模擬器實例。 通過他們進一步發現可以使用比標準尺寸大得多的批量進行訓練,而不會對樣品複雜性或最終性能產生負面影響。 同時他們利用這些事實來構建一個統一的並行化框架,從而大大加快了兩類演算法的實驗。 所有神經網路計算都使用GPU,加速數據收集和訓練。在使用同步和非同步演算法的基礎上,結果標明在使用整個DGX-1在幾分鐘內學習Atari遊戲中的成功策略。

註: 1. 周轉時間(turnaround time):訓練模型的時間 2. Nvidia DGX-1是Nvidia生產的伺服器和工作站系列,專門用於使用GPGPU加速深度學習應用程序。這些伺服器具有8個GPU,基於帶有HBM 2內存的Pascal或Volta 子卡,通過NVLink 網狀網路連接。該產品系列旨在彌合GPU和AI加速器之間的差距,因為該設備具有專門用於深度學習工作負載的特定功能。最初的基於Pascal的DGX-1提供了170 teraflops的半精度處理,而基於Volta的升級將其提高到960 teraflops。更多信息,點擊查看

1、背景和相關內容

目前的深度強化學習嚴重依賴於經驗評估,因此turnaround 時間成為一個關鍵的限制因素,儘管存在這一重要瓶頸,但許多參考實施方案不能滿足現代計算機的吞吐量潛力,在這項工作中,作者研究如何在不改變其基本公式的情況下調整深度RL演算法,並在一台機器中更好地利用多個CPU和GPU進行實驗。 結果標明,顯著提高了硬體利用率的效率和規模,從而提高了學習速度。

今天比較領先的深度RL演算法大致分為兩類:

(i)策略梯度方法 ,以Asynchronous Advantage Actor-Critic(A3C)(Mnih et al 2016)是一個代表性的例子,

(ii)Q值學習方法 ,一個代表性的例子是Deep Q-Networks(DQN)(Mnih等,2015)。

傳統上,這兩個系列出現在不同的實現中並使用不同的硬體資源,該篇paper作者將它們統一在相同的擴展框架下。作者貢獻了並行化深度RL的框架,包括用於推理和訓練的GPU加速的新技術。演示了以下演算法的多GPU版本:Advantage Actor-Critic(A3C),Proximal Policy Optimization(PPO),DQN,Categorical DQN和Rainbow。為了提供校準結果,作者通過Arcade學習環境(ALE)測試我們在重度基準測試的Atari-2600域中的實現。同時使用批量推斷的高度並行採樣可以加速所有實驗的(turnaround)周轉時間,同時發現神經網路可以使用比標準大得多的批量大小來學習,而不會損害樣本複雜性或最終遊戲分數。除了探索這些新的學習方式之外,作者還利用它們來大大加快學習速度。例如, 策略梯度演算法在8-GPU伺服器上運行,在10分鐘內學會成功的遊戲策略,而不是數小時。他們同樣將一些標準Q值學習的持續時間從10天減少到2小時以下。或者,獨立的RL實驗可以與每台計算機的高聚合吞吐量並行運行。相信這些結果有望加速深度研究,並為進一步研究和發展提出建議。

另外,作者對演員評論方法的貢獻在很多方面超越了目前的很多人做法,他們主要做了:「」改進抽樣組織,使用多個GPU大大提高規模和速度,以及包含非同步優化。

2、並行,加速的RL框架

作者考慮使用深度神經網路來實驗基於CPU的模擬器環境和策略,在這裡描述了一套完整的深度RL並行化技術,可以在採樣和優化過程中實現高吞吐量。同時並對GPU進行均勻處理,每個都執行相同的抽樣學習過程,該策略可以直接擴展到各種數量的GPU。

2.1 、同步採樣(Synchronized Sampling)

首先將多個 CPU核心單個GPU 相關聯。多個模擬器在CPU內核上以並行進程運行,並且這些進程以同步方式執行環境步驟。在每個步驟中,將所有單獨的觀察結果收集到批處理中以進行推理,在提交最後一個觀察結果後在GPU上調用該批處理。 一旦動作返回,模擬器再次步驟,依此類推,系統共享內存陣列提供了動作伺服器和模擬器進程之間的快速通信。

由於落後效應等同於每一步的最慢過程,同步採樣可能會減速。步進時間的變化源於不同模擬器狀態的不同計算負載和其他隨機波動。隨著並行進程數量的增加,落後者效應會惡化,但通過在每個進程中堆疊多個獨立的模擬器實例來緩解它。每個進程為每個推理批處理步驟(順序)執行所有模擬器。這種安排還允許用於推斷的批量大小增加超過進程數(即CPU核心),其原理如圖1(a)所示。

通過僅在優化暫停期間重置可以避免由長環境重置引起的減速,如果模擬和推理負載平衡,則每個組件將在一半的時間內處於空閑狀態,因此我們形成兩組交替的模擬器過程。當一個組等待其下一個動作時,其他步驟和GPU在為每個組服務之間交替。交替保持高利用率,並且進一步隱藏兩者中較快的計算的執行時間。我們通過重複模板組織多個GPU,均勻分配可用的CPU核心。我們發現修復每個模擬器進程的CPU分配是有益的,其中一個核心保留用於運行每個GPU。實驗部分包含採樣速度的測量值,該測量值隨環境實例的數量而增加。

2.2、同步多GPU優化(Synchronous Multi-GPU Optimization)

在同步演算法中,所有GPU都保持相同的參數值,利用隨機梯度估計的數據並行性並在每個GPU上使用眾所周知的更新程序: + 1)使用本地採集的樣本計算梯度, + 2)全部減少GPU之間的梯度, + 3)使用組合梯度 更新本地參數。 我們使用NVIDIA集體通信庫在GPU之間進行快速通信。

2.3、非同步多GPU優化(Asynchronous Multi-GPU Optimization)

在非同步優化中,每個GPU充當其自己的採樣器-學習器單元,並將更新應用於CPU內存中保存的中央參數存儲。使用加速器會強制選擇執行參數更新的位置。根據經驗,在GPU上將更快的常見規則應用於網路更快。一般更新程序包括三個步驟: + 步驟(1): 在本地計算梯度並將其存儲在GPU上 + 步驟(2): 將當前中心參數拉到GPU上並使用預先計算的梯度將更新規則應用於它們 + 步驟(3): 寫入更新的參數回到中央CPU商店。

在此序列之後,本地GPU參數與中心值同步,並且再次進行採樣,集中更新規則參數。其不會將更新增量添加到需要CPU計算的中心參數,而是覆蓋這些值。因此,採用上述步驟(2)和(3)的鎖定,防止其他進程同時讀取或寫入參數值。同時將參數分成少量不相交的塊,這些塊分別更新,每個塊都有自己的鎖(步驟2-3成為塊上的循環)。這可以平衡更新調用效率與鎖爭用,並可以提供良好的性能。

3、實驗

使用Atari-2600域來研究高度並行化RL的縮放特性,研究如下: + 1)同步採樣的效率如何,它可以達到什麼速度? + 2)策略梯度和Qlearning演算法是否可以適應學習使用許多並行模擬器實例而不會降低學習成績 + 3)大批量培訓和/或非同步方法能否加快優化速度而不會降低樣品的複雜性?

在所有學習實驗中,作者保持原始訓練強度,意味著每個採樣數據點的平均訓練使用次數。對於A3C,PPO和DQN+變體,參考訓練強度分別為1,4和8。此處顯示的所有學習曲線均為至少兩個隨機種子的平均值。對於策略梯度方法,我們跟蹤在線分數,對最近100個完成的軌跡進行平均。對於DQN和變體,我們每100萬步暫停以評估,直到達到125,000步,最大路徑長度為27,000步。

3.1、Sampling(採樣)

一系列僅採樣測量表明,儘管存在潛在的落後者,同步採樣方案可以實現良好的硬體利用率。首先,我們研究了 單個GPU 在為多個環境提供推理時的容量。圖1(b)顯示了在播放BREAKOUT時在P100 GPU上運行訓練有素的A3C-Net策略的測量結果。通過CPU核心計數歸一化的聚合採樣速度被繪製為在每個核心上運行的(順序)Atari模擬器的數量的函數,交替方案的最小值是每個核心2個模擬器。不同的曲線表示運行模擬的不同數量的CPU核心。作為參考,我們包括在沒有推斷的情況下運行的單個核心的採樣速度--單個過程的虛線,以及兩個超線程中的每一個的虛線一個過程。使用推理和單核運行,採樣速度隨著模擬器計數而增加,直到推斷時間完全隱藏。出現更高核心數的同步丟失。但是,每個核心只有8個環境,GPU甚至支持16個CPU內核,運行速度大約為無推理速度的80%。

接下來,測量了在整個8-GPU,40核伺服器上並行播放BREAKOUT的同一A3C-Net的僅採樣速度。 在模擬器計數為256(每個核心8個)及以上時,伺服器每秒實現大於35,000個樣本,或每小時5億個模擬器幀,其結果如圖:

3.2、許多模擬器實例(Learning with Many Simulator Instances)

為了利用並行採樣的高吞吐量,同時研究了如何使用現有的深度RL演算法來學習許多模擬器實例。以下研究結果表明,只有微小的變化才能適應所有演算法並保持性能。我們為每種演算法嘗試了不同的技術。有趣的是,縮放對同步和非同步學習的影響有所不同。

開始狀態解相關(Starting State Decorrelation) 在許多模擬器的一些策略梯度實驗中,學習很早就失敗了。我們發現在起始遊戲狀態中的相關性導致大的但知情度不足的學習信號,從而破壞了早期學習的穩定性。通過在實驗初始化期間通過隨機數量的均勻隨機動作步進每個模擬器來糾正此問題。採取這一措施時,發現學習率升溫沒有進一步的效果。在訓練時,遊戲重置照常進行。

A2C :優化批量大小隨著模擬器的數量而增加(保持採樣範圍固定)。相應地,每個採集的樣本進行的參數更新步驟更少,我們發現,在一組測試遊戲中,以批量大小的平方根增加學習率是最佳的。圖2的上圖顯示了學習曲線與總樣本數,模擬器計數範圍為16到512(批量大小為80到2,560)。雖然大型模擬器計數的樣本效率逐漸下降,但遊戲分數基本沒有變化。

A3C:我們測試的非同步適應使用16環境A2C代理作為基礎採樣器 - 學習器單元。圖2顯示學習曲線與學習者數量的總樣本計數,範圍從1到32,4,對應於16到512個模擬器。在大多數情況下,由此產生的學習曲線幾乎無法區分,儘管有些學習曲線在最大範圍內降級。

PPO:已經用於基準PPO的大批量(8模擬器x 256-horizo??n = 2,048)提供了與許多模擬器學習的不同途徑:我們減少了採樣範圍,使得總批量大小保持固定。圖2顯示了模擬器計數從8到512的學習曲線與樣本計數,相應的採樣範圍從256到4步。成功的學習繼續保持最大規模。

APPO:嘗試了PPO的非同步版本,使用8模擬器PPO代理作為基礎學習器單元。圖2中的底部面板顯示了對8個GPU運行的8個學習者的研究的學習曲線,其中通信頻率不同。標準PPO每個時期使用4個梯度更新,每個優化使用4個時期;我們在同步之間進行了1-4次漸變更新(補充材料中提供了更新規則)。我們發現在採樣期間定期從中心參數中提取新值是有幫助的,並且在所有情況下都採用64步的範圍(因此減少了非同步技術中固有的策略滯後,PPO的頻率降低,但更頻繁,但更實質性的更新) 。在幾個遊戲中,學習保持一致,表明可以減少某些非同步設置中的通信。

DQN + Variants:我們通過模擬器組織了體驗重放緩衝區。總緩衝區大小保持在1百萬次轉換,因此每個模擬器保持相應較短的歷史記錄。我們觀察到學習性能在很大程度上獨立於模擬器計數高達200以上,前提是每個優化周期的更新步驟數不是太多(大批量大小可以改善這一點)。

3.3、Q-Value Learning with Large Training Batches

DQN:我們試驗了從標準32到2,048的批量大小。我們發現一致的學習成績高達512,超過這一點,很難找到在所有測試遊戲中表現良好的單一(縮放)學習率。在幾個遊戲中,更大的批量大小改進了學習,如圖3所示。

發現非同步DQN可以使用多達4個GPU學習者很好地學習,每個學習者使用批量大小512。分類DQN:我們發現分類DQN比DQN進一步擴展。圖3的下顯示批量大小高達2,048的學習曲線,最大分數沒有減少。這可能是由於梯度信號的內容更豐富。值得注意的是,SEAQUEST遊戲中最大批量的學習被延遲,但最終達到了更高的最高分。由於使用了Adam優化器,因此沒有必要縮放學習率。

e-Rainbow:儘管使用了分散式學習,但在某些遊戲中,e-Rainbow的性能卻超過批量512。該批次大小的分數大致與批量大小為32的文獻中報道的分數相符(Hessel等,2017)(曲線顯示在附錄中)。

3.4、學習速度(Learning Speed)

研究運行8-GPU,40核伺服器(P100 DGX-1),以學習單個遊戲時可獲得的學習速度,作為大規模實施的示例。

圖4顯示了策略梯度方法A2C,A3C,PPO和APPO的良好性能配置的結果。幾場比賽表現出陡峭的初始學習階段;所有演算法都在10分鐘內完成了該階段。值得注意的是,PPO在4分鐘內掌握了Pong。具有256個環境的A2C每秒處理超過25,000個樣本,相當於每小時超過9000萬步(3.6億幀)。表2列出了縮放測量,顯示使用8個GPU相對於1的加速比大於6倍。

我們運行了DQN及其變體的同步版本,訓練時間如表2所示。使用1個GPU和5個CPU核心,DQN和e-Rainbow分別在8小時和14小時內完成了5000萬步(2億幀),一個重要的獲得超過10天的參考時間。後者使用1個GPU和376個CPU核心(參見例如圖2中的10小時學習曲線)。使用多個GPU和更多內核加速了我們的實施。憑藉更大的批量大小,Categorical-DQN使用整個伺服器在2小時內完成最佳擴展和完成培訓,相對於1 GPU,速度超過6倍。然而,DQN和e-Rainbow的回報減少超過2個GPU。我們無法找到進一步提高學習速度而不會在某些遊戲中降低性能的非同步配置(我們只測試了完全通信的演算法)。可能存在改善我們擴展的機會。

4、批量大小對優化的影響(Effects of Batch Size on Optimization)

限制培訓批量大小的可能因素包括: + 1、減少探索,因為在環境中運行的網路較少, + 2、網路權重的數值優化存在困難。我們進行了實驗以開始識別這些因素。

4.1、 二級學習者實驗(Secondary-Learner Experiment)

我們配置了一個輔助DQN學習器,僅使用普通DQN代理的重放緩衝區進行訓練。初級學習者使用與主要參數值相同的參數值進行初始化, 「採樣器 - 學習器」,兩個網路同時訓練,數據消耗速率相同。每個人都抽樣自己的培訓批次。在BREAKOUT的遊戲中,64和2048採樣器學習者獲得了相同的分數,但是2048學習者需要更多的樣本,儘管使用最快的穩定學習率(數字指的是訓練批量大小)。當使用2048樣本學習者訓練64中學習者時,中學習者的分數跟蹤了初級學習者的分數。然而,在相反的情況下,2048中學生無法學習。我們認為這是由於參數更新數量減少的優化速度較慢 - 它無法跟蹤初始化附近的Q值估計的快速變化,並且變得過於偏離策略學習。在使用兩個256學習者的相同測試中,他們的分數相匹配。如果2048年的二級學習者超過了2048年的樣本學習者,那麼就會認為探索是一個比優化更重要的因素。有關數據,請參閱補充材料。

4.2、更新規則(Update Rule)

我們進行了一項實驗,以確定更新規則對分類DQN中的優化的影響。我們發現Adam公式優於RMSProp,為大批量學習者提供了在學習過程中遍歷參數空間的能力。當比較實現相同學習曲線的代理時,那些使用較小批量(並因此執行更多更新步驟)的代理傾向於在訓練中的所有點具有更大的參數矢量規範。與RMSProp不同,Adam規則導致批量大小之間參數規範的相當緊密的傳播,而不會改變學習率。這解釋了在分類DQN和e-Rainbow中不需要縮放學習率,並且表明更新規則在縮放中起著重要作用。更多細節,包括卷積和完全連通層的趨勢.

關於更新規則和批量大小規模的觀察的細節

我們在兩個不同的參數更新規則下提出了縮放訓練批量大小對神經網路優化的影響的觀察結果:Adam和RMSProp(沒有動量的RMSProp,只有平方梯度的直接累積,參見例如(github.com/Lasagne/Lasa)。我們在遊戲Q * BERT上培訓代理,調整學習率以產生非常相似的所有設置的性能曲線,並且我們在學習期間跟蹤了幾個量的L-2矢量規範。這些包括漸變,參數更新步驟和參數值本身。與本文中的所有DQN實驗一樣,訓練強度固定為8,因此學習期間參數更新步驟的數量與批量大小成反比。每個設置運行兩個隨機種子。

儘管整個訓練過程中遊戲分數大致相同,但在任何一點上找到的確切解決方案都沒有,正如不同的參數規範所證明的那樣。沒有使用正規化。

根據圖-8,其中曲線由批量大小和學習率標記。當整體觀察網路(即所有權重和偏差的規範作為單個向量)時,趨勢反映了在大多數權重為的FC-0中看到的趨勢。

i)學習曲線:我們控制遊戲得分,根據需要調整學習率。對於批量大小為64的RMSProp,我們考慮的學習率略低(1×10^(-4)),學習速度慢,最終得分較低,學習率略高(5*10^-4) ),由於不穩定性而產生較低的最終得分 - 這些是所有面板中的虛線。

ii)完全連接-0 Weights-Norm:儘管對所有設置使用相同的學習速率,但Adam優化器產生了相當緊密的分組。另一方面,RMSProp學習者需要在批量大小為64到1,024之間將學習率提高20倍,然後產生非常相似的規範。在批量大小64處,慢/不穩定學習分別以小/大規範為特徵。批量大小256次運行的大規範表明這種學習率可能接近穩定性的上限。

iii)完全連接-0梯度 - 範數:在兩個更新規則下,大批量大小總是產生較小的梯度向量 - 減小的方差導致減小的量值。在查看總梯度範數時,我們還在策略梯度方法中觀察到了這種模式。這裡,梯度的大小與參數範數成反比;請參閱RMSProp 64批量大小的曲線。這種效果與批量大小的影響相反並且被抵消了。 iv)完全連接-0步驟規範:儘管梯度較小,但Adam優化器為較大批量學習者產生了明顯更大的步長。 RMSProp需要調整學習率才能產生相同的效果。在兩個更新規則下,步長增加量並未完全補償步數的減少,這表明較大的批量學習者通過參數空間遵循更直的軌跡。 RMSProp總體上導致了更大的步驟,但儘管以較小的權重結束了學習 - 其學習軌跡顯然不那麼直接,更蜿蜒。

v)卷積-0權重 - 範數:亞當優化器在這裡的規範中比在FC-0層中擴展得更多;隨著批量增加,學習重點從Conv-0轉移。但是在RMSProp中,學習率的提高導致第一個卷積層對於更大的批量大小變大,更加強調這一層。

vi)卷積-0梯度 - 範數:亞當更新規則在梯度範數中產生了一個有趣的交叉;大批量學習者實際上開始走高,抵消了其他情況下看到的趨勢。 RMSProp下的模式與FC-0的模式相匹配。

vii)卷積-0步驟範數:與FC-0不同,步驟範數在Adam下的批量大小沒有顯著變化。 RMSProp產生了與FC-0類似的模式。總體而言,Adam優化器似乎可以補償FC-0層中的批量大小,但在Conv-0層中則較少,導致Conv-0中大批量學習時不再強調。 RMSProp中學習率的提高補償了FC-0層中的批量大小,並增加了對Conv-0學習的重視程度。這種模式可能會對學習表示與遊戲策略產生影響。對這些明顯趨勢的進一步研究可以深入了解學習退化的原因以及大批量RL的可能解決方案。

4.3、梯度估計飽和度(Gradient Estimate Saturation)

使用A2C,我們在每次迭代時測量正常,全批次梯度和僅使用批次的一半計算的梯度之間的關係。對於小批量試劑,測量的全批次和半批次梯度之間的平均餘弦相似度接近1 =P2。 這意味著兩個半批漸變是正交的,高維空間中的零中心隨機向量也是正交的。 然而,對於大批量學習者(例如256個環境),餘弦相似性在1 = p2之上顯著增加。 梯度估計的飽和度明顯與較差的樣本效率相關,如圖2頂部的學習曲線所示。

總結:

我們引入了一個統一的框架來並行化深度RL,它使用硬體加速器來實現快速學習。該框架適用於一系列演算法,包括策略梯度和Q值學習方法。我們的實驗表明,幾種領先的演算法可以高度並行的方式學習各種Atari遊戲,而不會損失樣本複雜性和前所未有的掛鐘時間。該結果表明了顯著提高實驗規模的有希望的方向。我們將發布代碼庫。我們注意到擴展該框架的幾個方向。首先是將其應用於Atari以外的領域,尤其是涉及感知的領域。其次,由於GPU加速推理和訓練,我們的框架很可能有利地擴展到更複雜的神經網路代理。此外,隨著網路複雜性的增加,擴展可能變得更容易,因為GPU可以以較小的批量大小有效地運行,儘管通信開銷可能會惡化。降低精度算術可以加速學習 - 由於使用基於CPU的推理,在深度RL中尚待探索的主題。當前的單節點實現可以是用於分散式演算法的構建塊。關於深度RL中可能的並行化程度的問題仍然存在。我們還沒有最終確定縮放的限制因素,也沒有確定每個遊戲和演算法是否相同。雖然我們已經看到大批量學習中的優化效果,但其他因素仍然存在。非同步擴展的限制仍未得到探索;我們沒有明確確定這些演算法的最佳配置,但只提供了一些成功的版本。更好的理解可以進一步提高縮放率,這是推動深度RL的一個有希望的方向。

-----------------

至此,以上是對深度強化學習的加速方法的部分解讀,受能力有限,文中難免有錯誤之處,還望大家多提意見、以便做的更好!

參考文獻:

ACCELERATED METHODS FOR DEEP REINFORCEMENT LEARNING

號外號外!

1、歡迎大家踴躍投稿--深度強化學習論文解讀!

2、請尊重每一位創作者的汗水,轉載請註明出處!

更多最新方法和解讀的實時更新請關注公眾號!

推薦閱讀:

相关文章