BAIR最新RL算法超越谷歌Dreamer,性能提升2.8倍

2021-01-08 機器之心Pro

選自arXiv

作者:Aravind Srinivas等

機器之心編譯

參與:Racoon、Jamin

pixel-based RL 算法逆襲,BAIR 提出將對比學習與 RL 相結合的算法,其 sample-efficiency 匹敵 state-based RL。

此次研究的本質在於回答一個問題—使用圖像作為觀測值(pixel-based)的 RL 是否能夠和以坐標狀態作為觀測值的 RL 一樣有效?傳統意義上,大家普遍認為以圖像為觀測值的 RL 數據效率較低,通常需要一億個交互的 step 來解決 Atari 遊戲那樣的基準測試任務。

研究人員介紹了 CURL:一種用於強化學習的無監督對比表徵。CURL 使用對比學習的方式從原始像素中提取高階特徵,並在提取的特徵之上執行異策略控制。在 DeepMind Control Suite 和 Atari Games 中的複雜任務上,CURL 優於以前的 pixel-based 的方法(包括 model-based 和 model-free),在 100K 交互步驟基準測試中,其性能分別提高了 2.8 倍以及 1.6 倍。在 DeepMind Control Suite 上,CURL 是第一個幾乎與基於狀態特徵方法的 sample-efficiency 和性能所匹配的基於圖像的算法。

論文連結:https://arxiv.org/abs/2004.04136

網站:https://mishalaskin.github.io/curl/

GitHub 連結:https://github.com/MishaLaskin/curl

背景介紹

CURL 是將對比學習與 RL 相結合的通用框架。理論上,可以在 CURL pipeline 中使用任一 RL 算法,無論是同策略還是異策略。對於連續控制基準而言(DM Control),研究團隊使用了較為熟知的 Soft Actor-Critic(SAC)(Haarnoja et al., 2018) ;而對於離散控制基準(Atari),研究團隊使用了 Rainbow DQN(Hessel et al., 2017))。下面,我們簡要回顧一下 SAC,Rainbow DQN 以及對比學習。

Soft Actor Critic

SAC 是一種異策略 RL 算法,它優化了隨機策略,以最大化預期的軌跡回報。像其他 SOTA 端到端的 RL 算法一樣,SAC 在從狀態觀察中解決任務時非常有效,但卻無法從像素中學習有效的策略。

Rainbow

最好將 Rainbow DQN(Hessel et al., 2017)總結為在原來應用 Nature DQN 之上的多項改進(Mnih et al., 2015)。具體來說,深度 Q 網絡(DQN)(Mnih et al., 2015)將異策略算法 Q-Learning 與卷積神經網絡作為函數逼近器相結合,將原始像素映射到動作價值函數裡。

除此之外,價值分布強化學習(Bellemare et al., 2017)提出了一種通過 C51 算法預測可能值函數 bin 上的分布技術。Rainbow DQN 將上述所有技術組合在單一的異策略算法中,用以實現 Atari 基準的最新 sample efficiency。此外,Rainbow 還使用了多步回報(Sutton et al.,1998)。

對比學習

CURL 的關鍵部分是使用對比無監督學習來學習高維數據的豐富表示的能力。對比學習可以理解為可區分的字典查找任務。給定一個查詢 q、鍵 K= {k_0, k_1, . . . } 以及一個明確的 K(關於 q)P(K) = ({k+}, K \ {k+}) 分區,對比學習的目標是確保 q 與 k +的匹配程度比 K \ {k +} 中的任何的鍵都更大。在對比學習中,q,K,k +和 K \ {k +} 也分別稱為錨點(anchor),目標(targets),正樣本(positive), 負樣本(negatives)。

CURL 具體實現

CURL 通過將訓練對比目標作為批更新時的輔助損失函數,在最小程度上改變基礎 RL 算法。在實驗中,研究者將 CURL 與兩個無模型 RL 算法一同訓練——SAC 用於 DMControl 實驗,Rainbow DQN 用於 Atari 實驗。

總體框架概述

CURL 使用的實例判別方法(instance discrimination)類似於 SimCLR、MoC 和 CPC。大多數深度強化學習框架採用一系列堆疊在一起的圖像作為輸入。因此,算法在多個堆疊的幀中進行實例判別,而不是單一的圖像實例。

研究者發現,使用類似於 MoCo 的動量編碼流程(momentum encoding)來處理目標,在 RL 中性能較好。最後,研究者使用一個類似於 CPC 中的雙線性內積來處理 InfoNCE score 方程,研究者發現效果比 MoCo 和 SimCLR 中的單位範數向量積(unit norm vector products)要好。對比表徵和 RL 算法一同進行訓練,同時從對比目標和 Q 函數中獲得梯度。總體框架如下圖所示。

圖 2:CURL 總體框架示意圖

判別目標

選擇關於一個錨點的正、負樣本是對比表徵學習的其中一個關鍵組成部分。

不同於在同一張圖像上的 image-patches,判別變換後的圖像實例優化帶有 InfoNCE 損失項的簡化實例判別目標函數,並需要最小化對結構的調整。在 RL 設定下,選擇更簡化判別目標的理由主要有如下兩點:

鑑於 RL 算法十分脆弱,複雜的判別目標可能導致 RL 目標不穩定。

RL 算法在動態生成的數據集上進行訓練,複雜的判別目標可能會顯著增加訓練所需時間。

因此,CURL 使用實例判別而不是 patch 判別。我們可將類似於 SimCLR 和 MoCo 這樣的對比實例判別設置,看做最大化一張圖像與其對應增廣版本之間的共同信息。

查詢-鍵值對的生成

類似於在圖像設定下的實例判別,錨點和正觀測值是來自同一幅圖像的兩個不同增廣值,而負觀測值則來源於其他圖像。CURL 主要依靠隨機裁切數據增廣方法,從原始渲染圖像中隨機裁切一個正方形的 patch。

研究者在批數據上使用隨機數據增廣,但在同一堆幀之間保持一致,以保留觀測值時間結構的信息。數據增廣流程如圖 3 所示。

圖 3: 使用隨機裁剪產生錨點與其正樣本過程的直觀展示。

相似度量

區分目標中的另一個決定因素是用於測量查詢鍵對之間的內部乘積。CURL 採用雙線性內積 sim(q,k)= q^TW_k,其中 W 是學習的參數矩陣。研究團隊發現這種相似性度量的性能優於最近在計算機視覺(如 MoCo 和 SimCLR)中最新的對比學習方法中使用的標準化點積。

動量目標編碼

在 CURL 中使用對比學習的目標是訓練從高維像素中能映射到更多語義隱狀態的編碼器。InfoNCE 是一種無監督的損失,它通過學習編碼器 f_q 和 f_k 將原始錨點(查詢)x_q 和目標(關鍵字)x_k 映射到潛在值 q = f_q(x_q) 和 k = f_k(x_k) 上,在此團隊應用相似點積。通常在錨點和目標映射之間共享相同的編碼器,即 f_q = f_k。

CURL 將幀-堆棧實例的識別與目標的動量編碼結合在一起,同時 RL 是在編碼器特徵之上執行的。

CURL 對比學習偽代碼(PyTorch 風格)

實驗

研究者評估(i)sample-efficiency,方法具體為測量表現最佳的基線需要多少個交互步驟才能與 100k 交互步驟的 CURL 性能相匹配,以及(ii)通過測量 CURL 取得的周期回報值與最佳表現基線的比例來對性能層面的 100k 步驟進行衡量。換句話說,當談到數據或 sample-efficiency 時,其實指的是(i),而當談起性能時則指的是(ii)。

DMControl

在 DMControl 實驗中的主要發現:

CURL 是我們在每個 DMControl 環境上進行基準測試的 SOTA ImageBased RL 算法,用於根據現有的 Image-based 的基準進行採樣效率測試。在 DMControl100k 上,CURL 的性能比 Dreamer(Hafner 等人,2019)高 2.8 倍,這是一種領先的 model-based 的方法,並且數據效率高 9.9 倍。

從圖 7 所示的大多數 16 種 DMControl 環境中的狀態開始,僅靠像素操作的 CURL 幾乎可以進行匹配(有時甚至超過)SAC 的採樣效率。它是基於 model-based,model-free,有輔助任務或者是沒有輔助任務。

在 50 萬步之內,CURL 解決了 16 個 DMControl 實驗中的大多數(收斂到接近 1000 的最佳分數)。它在短短 10 萬步的時間內就具有與 SOTA 相似性能的競爭力,並且大大優於該方案中的其他方法。

表 1. 在 500k(DMControl500k)和 100k(DMControl100k)環境步長基準下,CURL 和 DMControl 基準上獲得的基線得分。

圖 4. 相對於 SLAC、PlaNet、Pixel SAC 和 State SAC 基線,平均 10 個 seeds 的 CURL 耦合 SAC 性能。

圖 6. 要獲得與 CURL 在 100k 訓練步驟中所得分相同的分數,需要先行採用領先的 pixel-based 方法 Dreamer 的步驟數。

圖 7. 將 CURL 與 state-based 的 SAC 進行比較,在 16 個所選 DMControl 環境中的每個環境上運行 2 個 seeds。

Atari

在 Atari 實驗中的主要發現:

就大多數 26 項 Atari100k 實驗的數據效率而言,CURL 是 SOTA PixelBased RL 算法。平均而言,在 Atari100k 上,CURL 的性能比 SimPLe 高 1.6 倍,而 Efficient Rainbow DQN 則高 2.5 倍。

CURL 達到 24%的人類標準化分數(HNS),而 SimPLe 和 Efficient Rainbow DQN 分別達到 13.5%和 14.7%。CURL,SimPLe 和 Efficient Rainbow DQN 的平均 HNS 分別為 37.3%,39%和 23.8%。

CURL 在三款遊戲 JamesBond(98.4%HNS),Freeway(94.2%HNS)和 Road Runner(86.5%HNS)上幾乎可以與人類的效率相提並論,這在所有 pixel-based 的 RL 算法中均屬首例。

表 2. 通過 CURL 和以 10 萬個時間步長(Atari100k)為標準所獲得的分數。CURL 在 26 個環境中的 14 個環境中實現了 SOTA。

項目介紹

安裝

所有相關項都在 conda_env.yml 文件中。它們可以手動安裝,也可以使用以下命令安裝:

conda env create -f conda_env.yml

使用說明

要從基於圖像的觀察中訓練 CURL agent 完成 cartpole swingup 任務,請從該目錄的根目錄運行 bash script/run.sh。run.sh 文件包含以下命令,也可以對其進行修改以嘗試不同的環境/超參數。

CUDA_VISIBLE_DEVICES=0 python train.py \

--domain_name cartpole \

--task_name swingup \

--encoder_type pixel \

--action_repeat 8 \

--save_tb --pre_transform_image_size 100 --image_size 84 \

--work_dir ./tmp \

--agent curl_sac --frame_stack 3 \

--seed -1 --critic_lr 1e-3 --actor_lr 1e-3 --eval_freq 10000 --batch_size 128 --num_train_steps 1000000

在控制臺中,應該看到如下所示的輸出:

| train | E: 221 | S: 28000 | D: 18.1 s | R: 785.2634 | BR: 3.8815 | A_LOSS: -305.7328 | CR_LOSS: 190.9854 | CU_LOSS: 0.0000

| train | E: 225 | S: 28500 | D: 18.6 s | R: 832.4937 | BR: 3.9644 | A_LOSS: -308.7789 | CR_LOSS: 126.0638 | CU_LOSS: 0.0000

| train | E: 229 | S: 29000 | D: 18.8 s | R: 683.6702 | BR: 3.7384 | A_LOSS: -311.3941 | CR_LOSS: 140.2573 | CU_LOSS: 0.0000

| train | E: 233 | S: 29500 | D: 19.6 s | R: 838.0947 | BR: 3.7254 | A_LOSS: -316.9415 | CR_LOSS: 136.5304 | CU_LOSS: 0.0000

cartpole swing up 的最高分數約為 845 分。而且,CURL 如何以小於 50k 的步長解決 visual cartpole。根據使用者的 GPU 不同而定,大約需要一個小時的訓練。同時作為參考,最新的端到端方法 D4PG 需要 50M 的 timesteps 來解決相同的問題。

Log abbreviation mapping:

train - training episode

E - total number of episodes

S - total number of environment steps

D - duration in seconds to train 1 episode

R - mean episode reward

BR - average reward of sampled batch

A_LOSS - average loss of actor

CR_LOSS - average loss of critic

CU_LOSS - average loss of the CURL encoder

與運行相關的所有數據都存儲在指定的 working_dir 中。若要啟用模型或視頻保存,請使用--save_model 或--save_video。而對於所有可用的標誌,需要檢查 train.py。使用 tensorboard 運行來進行可視化:

tensorboard --logdir log --port 6006

同時在瀏覽器中轉到 localhost:6006。如果運行異常,可以嘗試使用 ssh 進行埠轉發。

對於使用 GPU 加速渲染,確保在計算機上安裝了 EGL 並設置了 export MUJOCO_GL = egl。

相關焦點

  • 誰說RL智能體只能在線訓練?谷歌發布離線強化學習新範式
    谷歌的這項最新研究從優化角度,為我們提供了離線強化學習研究新思路,即魯棒的 RL 算法在足夠大且多樣化的離線數據集中訓練可產生高質量的行為。該論文的訓練數據集與代碼均已開源。機器之心友情提示,訓練數據集共包含 60 個雅達利遊戲環境,谷歌宣稱其大小約為 ImageNet 的 60 x 3.5 倍。
  • 谷歌TPU3.0性能提升8倍,但優勢遭微軟、Facebook軟硬「圍攻」
    在Goole I/O 2018上,谷歌執行長Sundar Pichai宣布推出Tensor Processor Unit 3.0,並表示TPU3.0的計算性能相比去年提升了八倍,可達 100PFlops(每秒 1000 萬億次浮點計算)。谷歌TPU是專門是為機器學習定製的專用晶片(ASIC),也是為谷歌深度學習框架TensorFlow而設計。
  • 中國首次實現量子優越性:超越谷歌,比最強超級計算機快一百萬億倍
    金磊 發自 凹非寺量子位 報導 | 公眾號 QbitAI「比全球最快的超級計算機快一百萬億倍!」「超越了谷歌量子計算優越性!」「是裡程碑式突破!」其結果如下:比目前全球最快的超級計算機(富嶽),快出了一百萬億倍。比谷歌去年推出的53 個超導比特量子計算原型機「懸鈴木」,快一百億倍。△ 「富嶽」超級計算機具體而言,在5000萬個樣本情況下,「九章」在處理這個問題時,僅用了200秒。
  • 谷歌要構建10 億+ 級別的超大數據集,這樣能取代機器學習算法嗎?
    「新智元」(ID:AI_era)數據重要還是算法重要?一篇新的論文或許給出了答案。使用一個 300 倍於 ImageNet 的新數據集,谷歌研究人員發現,隨著數據增長,模型完成計算機視覺任務的性能直線上升。即使在 300 倍 ImageNet 這麼大規模的情況下,性能都沒有遭遇平臺。
  • 性能超越谷歌!依圖團隊提出新一代移動端網絡架構MobileNeXt
    移動端神經網絡新架構MobileNeXt,超越谷歌MobileNet和何愷明團隊ResNet基礎網絡結構是各種算法的基礎,直接影響模型最終的性能,這方面高質量的研究很稀缺。 現有研究表明:(1) 更寬的網絡可以緩解梯度混淆問題並有助於提升模型性能;(2)逆殘差模塊中的短連接可能會影響梯度回傳。
  • 深入探究:性能超谷歌百萬倍的中國量子計算機
    實驗測試表明,此次發明的光量子計算機進行「玻色取樣」速度,比國際同行之前類似的所有實驗加快至少24000倍。同時,通過和經典算法比較,其比人類歷史上第一臺電子管計算機(ENIAC)和第一臺電晶體計算機(TRADIC)運行速度快10倍至100倍。
  • 量子計算原型機「九章」問世,超越谷歌「量子霸權」
    根據現有理論,其速度比目前最快的超級計算機快一百萬億倍,比去年穀歌發布的53個超導比特量子計算原型機「懸鈴木」快一百億倍。今天凌晨,國際著名學術期刊《科學》雜誌刊登了這一來自中國科學技術大學潘建偉、陸朝陽等研究團隊的重磅成果。量子計算機在原理上具有超快的並行計算能力。
  • 潘建偉團隊實現「量子計算優越性」裡程碑 比谷歌快一百億倍!
    「根據現有理論,該量子計算系統處理高斯玻色取樣的速度比目前最快的超級計算機快一百萬億倍,也就是說九章一分鐘完成的任務,超級計算機需要一億年。等效地,其速度比去年穀歌發布的53個超導比特量子計算原型機懸鈴木快一百億倍。」中科大在一份聲明中表示。
  • 潘建偉團隊實現「量子計算優越性」裡程碑 比谷歌快一百億倍
    「根據現有理論,該量子計算系統處理高斯玻色取樣的速度比目前最快的超級計算機快一百萬億倍,也就是說九章一分鐘完成的任務,超級計算機需要一億年。等效地,其速度比去年穀歌發布的53個超導比特量子計算原型機懸鈴木快一百億倍。」中科大在一份聲明中表示。
  • 虹識技術全新升級虹膜識別算法,虹膜識別設備性能大幅提升
    設備存儲容量從第二代最大二千人跨越性提升至第三代的一萬人,在相同的虹膜特徵條件下,模板長度減少四倍,離線比對容量和識別速度均實現了五倍的飛躍擴展。在實際應用場景下可進行速度為一萬人/秒的虹膜提取、編碼及識別,解決了目前市場現有虹膜物聯網終端設備的容量問題和速度問題,更有效地滿足了中型和大型企業客戶的實際應用需求。
  • 雙卡性能提升2倍?第三代PCI-E全面揭秘
    雙卡性能提升4倍?對比可見,目前主流的PCI-E 2.0相對於以往的PCI和AGP來說都有明顯的改進,在16條通道的x16模式下,其帶寬可以完美超越以往的PCI/PCI-X和AGP接口。PCI-E 3.0  現在最新的PCI-E 3.0理論帶寬相對於PCI-E 2.0提升了一倍,每通道單向帶寬達1000MB/s,因此其16通道雙向帶寬可達1000x2x16
  • 白話文科普:我國量子計算超越谷歌100萬倍,技術路線有何不同
    今年9月,我國中科大的潘建偉團隊宣布實現在量子計算上達成50個光量子的操控,性能超越谷歌去年宣布的53個量子比特計算機100萬倍,並將在今年底前實現60個光量子的操控,五年內實現1000個光量子。這裡肯定有很多人不解,為什麼谷歌去年就實現了53個物理比特(transmon),而我國中科大今年僅僅實現了50個光量子的操控就能比谷歌快100萬倍呢?
  • 性能提升30%以上,實時實例分割算法SOLOv2實現產業SOTA
    機器之心發布機器之心編輯部如何兼顧目標檢測和語義分割的能力,並實現大幅性能提升?本文介紹了產業 SOTA 的實時實例分割算法 SOLOv2。經過一系列的優化後,SOLOv2-Enhance(PaddleDetection 提供的 SOLOv2 的增強模型,如圖五角星所示)的性能表現如下圖所示:Tesla V100-SXM2 的單 GPU 環境中預測速度達到 38.6FPS,提升了 31.2%;COCO val2017 數據集上 mask AP 達到 38.8%,提升 2.4 個百分點;
  • 超越美國谷歌,中國科學家取得裡程碑式突破,實現"量子霸權"
    "九章"量子計算機的算力全球領先,處理高斯玻色取樣的速度比世界第一超算提升了一百萬億倍,與谷歌的"懸鈴木"量子計算原型機相比也更勝一籌。世界首臺光量子計算機就是研發"九章"的潘建偉團隊在2017年成功構建的,完全超越了早先的經典計算機。到了2019年,潘建偉團隊進一步研製出集多項高超技能於一身的最高性能單光子源,已逼近"量子計算優越性"。
  • 谷歌大腦CMU聯手推出XLNet,20項任務全面超越BERT
    新智元報導 來源:arxiv、知乎等編輯:大明【新智元導讀】谷歌大腦和CMU聯合團隊提出面向NLP預訓練新方法XLNet,性能全面超越此前NLP領域的黃金標杆BERT,在20個任務上實現了性能的大幅提升,刷新了18個任務上的SOTA結果,可謂全面屠榜!近日,谷歌大腦主任科學家Quoc V.
  • 浪潮AI伺服器大幅提升NLP模型Transformer訓練性能
    性能數據顯示,相比同類伺服器,浪潮AI伺服器NF5488M5大幅提升了Transformer的訓練性能,GLUE基準訓練至80.4%的時間相比同類產品大幅減少67%。Transformer被視為是NLP的經典模型,2017年由谷歌提出,其利用自注意力(self-attention)機制實現快速並行,並且可以增加到非常深的深度,充分發掘DNN模型的特性,提升模型準確率。但是Transformer模型訓練是一大難題,因為其參數規模達到數億,對計算力的需求很大。
  • 英特爾最新一代10nm重新定義電晶體,Tiger Lake架構性能提升20%
    SuperFin 技術主要是通過5個方面的電晶體工藝優化來實現製程工藝的性能提升:1優化源極與漏極結構:增強源極和漏極上晶體結構的外延長度,從而增加應變並減小電阻,以允許更多電流通過通道。2改進柵極工藝:為了實現更高的通道遷移率而改進柵極工藝,從而使電荷載流子更快地移動。
  • 7倍AI性能提升,AMD Instinct MI100來了
    EPYC持續「進攻」高性能計算領域近年來,高性能計算領域發展非常迅猛,工作負載也呈現出多元化的發展趨勢,包括最新的模型訓練、算法、推理、商用生命科學等等熱門應用,都已經融入了高性能計算。Instinct MI100在規格方面也是非常威猛,它是首款突破10TFlops FP64數據中心顯卡,FP32計算能力是上代MI50的3倍。同時,當今最炙手可熱的FP16 AI計算性能,比前代產品提升了7倍。
  • 比當前SOTA小4倍、計算量少9倍,谷歌最新目標檢測器EfficientDet
    Le 等人系統研究了多種目標檢測神經網絡架構設計,提出了能夠提升模型效率的幾項關鍵優化。具體來看,結構簡潔只使用了 52M 參數、326B FLOPS 的 EfficientDet-D7 在 COCO 數據集上實現了當前最優的 51.0 mAP,準確率超越之前最優檢測器(+0.3% mAP),其規模僅為之前最優檢測器的 1/4,而後者的 FLOPS 更是 EfficientDet-D7 的 9.3 倍。
  • 超越谷歌「量子霸權」!潘建偉團隊量子計算原型機「九章」問世
    根據現有理論,其速度比目前最快的超級計算機快一百萬億倍,比去年穀歌發布的53個超導比特量子計算原型機「懸鈴木」快一百億倍。今天凌晨,國際著名學術期刊《科學》雜誌在線發表了這一來自中國科學技術大學潘建偉、陸朝陽等研究團隊的重磅成果。