強化學習 IMPALA算法


論文:https://arxiv.org/pdf/1802.01561.pdf

參考:https://zhuanlan.zhihu.com/p/58226117

https://zhuanlan.zhihu.com/p/34074929

以下是論文的選擇性(個人向)翻譯QAQ

摘要:

在這篇論文中,我們致力於解決使用單強化學習智能體和一組參數來解決多任務問題。LMPALA(Importance Weighted Actor-Learner Architecture)是為了解決增長的數據量和訓練時間而出現的,它不但在單機訓練的時候能更有效的利用資源,而且在數千台機器的訓練中不犧牲數據效率和資源利用率。通過將acting和learning解耦,並和一種叫V-trace的新矯正方法結合,我們獲得了穩定且高的吞吐量。我們在DMLab-30(這是DeepMind Lab的一個有30個任務的環境)和Atari-57中用多任務強化學習證明了IMPALA的有效性,我們的結果表明IMPALA在只需要更少的數據就能比以前的智能體表現更好。

簡介:

深度強化學習方法通過試錯法已經精通很多領域。雖然圍棋和Atari的進步引人注目,但是由於智能體在訓練的時候是獨立的,所以進步就只在單一領域。我們有興趣開發一種既能掌握各種任務集也能適應各種環境的新方法。

訓練一個智能體處理多個任務的主要挑戰是可擴展性。因為現行的方法像A3C或者UNREAL要精通一個領域需要花大量的時間,一次在幾十個領域上訓練他們太慢了。

我們在表1展示了IMPALA。IMPALA足以勝任數千個機器的學習,並且不犧牲數據效率和資源利用率。

 

 基於A3C的智能體,worker從中心參數服務器獲取參數,IMPALA的actor上傳軌跡經歷(狀態,動作,回報的序列)給一個集中學習的learner。因為在IMPALA中learner能獲得完整的軌跡經歷,當我們並行且獨立執行操作時,我們可以用GPU通過mini-batch去執行更新,這種解耦的結構可以獲得很高的吞吐量。然而,由於在幾次更新之后產生軌跡的策略會落后於learner的策略,學習變成了off-policy。因此,我們引入V-trace離線actor-critic算法來矯正這個有害差異。

通過結合可拓展結構和V-trace, IMPALA獲得了非常高的吞吐量,使得他比單機的A3C快30倍,更關鍵的是,IMPALA也比A3C數據利用率更高,在超參數和網絡結構的健壯性更好,這讓我們能構建更深的網絡。我們在DIMab-30上用訓練一個智能體來驗證IMPALA的有效性。

2、關聯網絡

最早提升DRL規模的嘗試依賴於多個worker的分布式異步SGD。例如分布式A3C和Gorila,一種分布式版本的DQN。異步SGDRL的替代方案包括進化算法,分布式BA3C和有分布式存儲池但是同步的learner的Ape-X。

還有一種拓寬強化學習的方式是通過使用GPU。最簡單的方案之一是Batched A2C。在每一步中,Batched A2C產生一個batch的動作並應用於環境中。因此,每個batch中最慢的環境代表了每一步的時間。換句話說,環境速度的高方差會嚴重限制性能。Batched A2C在Atari環境中運行的非常好,因為相比於復雜的張量計算,回報和游戲邏輯很容易計算。然而,在更復雜的視覺或物理環境中,模擬的速度可能會變得更慢,而且每一步所需的時間差異也很大。環境或許也會有可變長的episode使得初始化episode的時候變慢。

和IMPALA結構最像的是GA3C,它也使用了異步數據收集以便更好的利用GPU。它通過使用動態batch將acting和gradient calculation解耦,forward和gradient backward解耦。actor/learner在GA3C是異步的,這導致了學習過程中的不穩定,只通過在動作的概率熵添加小常數來緩解。作為對比,IMPALA使用了更好的V-trace算法。

和之前最接近的算法熵Retrace算法,它介紹了一種對多步RLoff-policy進行修正的方法,它已經被使用很多個智能體結構中。Retrace需要學習狀態-動作的Q值以便讓off-policy是正確的。然而,很多的actor-critc方法例如A3C學習狀態函數V替代狀態-動作函數Q。V-trace是狀態價值函數。

3、IMPALA

IMPALA使用了actor-critic架構來學習policy和baseline。產生經驗的過程從學習參數中解耦。這個結構包含若干組actor,不斷產生軌跡經歷,之后一個或者更多的learner使用這些從actor送來的經歷進行off-policy學習。

在每個軌跡的開始,一個actor更新自己的本地policy為最新的learner的policy,並在環境中運行n步。在n步之后,actor通過一個隊列將狀態-動作-回報和策略分布並且初始化LSTM給learner。learner通過一組軌跡持續更新側拉,每一組都是從很多的actor中收集到的。這個簡單的結構使learner可以使用GPU來加速,actor也可以分布在很多機器上。然而,learner的policy是可能比actor的policy更新的,因此在actor和learner之間需要policy-lag。V-treace矯正這個lag獲得了極高的吞吐率也保持的數據的有效性。通過使用actor-learner結構,提供了像分布式A3C算法那樣的容錯率,但是由於actor發送的是觀察數據而不是參數/梯度所以通信開銷更低。

隨着引入非常深的模型結構,單個GPU的速度經常變成訓練中的限制因子。IMPALA可以和分布式learner一起有效訓練大型神經網絡。參數分布在learner中,actor並行的從所有的learner中檢索參數而只將觀察到的數據送給一個learner。IMPALA使用同步參數更新,這在擴展至很多機器時對保持數據有效性很重要。

3.1. 效率優化

 GPU和多核CPU擅長少量的大的並行操作,而不是小型操作。因為IMPALA的learner是在整個的軌跡batch上執行更新,這使得它可以比在線智能體A3C並行執行更多計算。比如,一個典型的DRL智能體先有一個卷積網絡,之后跟着LSTM網絡,在LSTM后跟一個全連接層。IMPALA的learner通過將時間緯度變為batch緯度將所有輸入並行放入卷積網絡。與此相似,當所有的LSTM狀態被計算后,輸出層也將並行的執行所有的時間步。這個優化將有效的batch大小提升至上千。基於LSTM的智能體通過利用網絡結 構依賴和操作融合使learner也可以獲得有效的加速。

4、V-trace

off-policy學習在解耦的分布式actor-learner結構中是非常重要的,因為actor產生動作和learner產生梯度存在時間差。為此,我們為learner推出一個新的off-policy actor-critic算法:V-trace

首先,讓我們介紹一些注意事項。我們考慮馬爾可夫過程中的折扣無限水平問題,當目標是找到一個策略使得最大化未來回報總和的期望。

 

 

 off-policy RL算法的目標是通過其它策略mu來生成軌跡,mu叫做behaviour policy, 學習pi的價值函數叫做目標策略。

 

 

 4.1 V-trace 的目標

V-trace的目標的定義式:

 

 

 當on-policy時會變成n步自舉法的更新。

需要注意的是ci和ρi用了不同的規則,ρt在了時序差分誤差中並定義了這個更新規則的不動點。

當ρ趨向0時,策略就會變成behaviour policy

ci和ρ很像。ci用來測量時序差分誤差能多大程度的影響更新。兩種策略相差越大,方差就會越大。ci可以用來減小方差,但是不會影響側策略的收斂(策略收斂只會受ρ的影響)

 

 4.2 Actor-Critic算法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM