0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何借助新的物理模擬引擎來加速強化學習

硬件三人行 ? 來源:TensorFlow ? 作者: TensorFlow ? 2021-08-24 11:06 ? 次閱讀

強化學習 (Reinforcement Learning) 是一種指導機器人在現(xiàn)實世界完成導航和執(zhí)行操作的熱門方法,其本身可以簡化并表示為剛性物體 [1](即受外力作用時不會變形的固體物理對象)之間的相互作用。

RL 通常會利用模擬,在有效的時間段內(nèi)收集訓練數(shù)據(jù)。在模擬過程中,我們會對任意數(shù)量的復雜對象做近似處理,將其視作由關(guān)節(jié)組成、且由致動器提供動力的許多剛體。但挑戰(zhàn)也應(yīng)運而生:即便是行走、使用工具或組裝積木等簡單的任務(wù),RL 智能體也通常需要數(shù)百萬甚至數(shù)十億的模擬幀才能熟練地完成。

雖然通過回收模擬幀來提高訓練效率的方法已經(jīng)取得進展,但一些 RL 工具需仍通過模擬幀的生成分布到許多模擬器來回避這個問題。這些分布式模擬平臺已經(jīng)取得了亮眼表現(xiàn),訓練速度也非???。但它們必須在擁有數(shù)千個 CPUGPU 的計算集群上運行,往往大多數(shù)研究人員無法訪問這些 CPU 或 GPU。

通過回收模擬幀來提高訓練效率

https://ai.googleblog.com/2020/08/tackling-open-challenges-in-offline.html

在“Brax:用于大規(guī)模剛體模擬的微分物理引擎 (Brax - A Differentiable Physics Engine for Large Scale Rigid Body Simulation)”中,我們提出了一種新的物理模擬引擎,該引擎可以在單個 TPU 或 GPU 下可提供與大型計算集群相媲美的性能。

該引擎旨在保障在單個加速器上高效并行運行數(shù)千個物理模擬和機器學習 (ML) 算法,以及在相互連接的加速器 pod 中無縫擴展數(shù)百萬個模擬。我們開源了引擎、參考 RL 算法和模擬環(huán)境,這些都可以通過 Colab 進行訪問。通過使用這個新的平臺,我們展現(xiàn)了比傳統(tǒng)工作站安裝快 100-1000 倍的訓練速度。

三種典型 RL 工作流。左邊顯示了一個標準的工作站流程:一臺配備 CPU 的機器,在這樣的環(huán)境中,訓練需要數(shù)小時或數(shù)天。中間顯示了一個標準的分布式模擬流程:通過將模擬移交給數(shù)千臺機器,訓練需要幾分鐘。右圖顯示了 Brax 流程:在單個 CPU/GPU 芯片上并行推進學習和大批量模擬

Brax:用于大規(guī)模剛體模擬的微分物理引擎

https://arxiv.org/abs/2106.13281

引擎、參考 RL 算法和模擬環(huán)境

https://github.com/google/brax

Colab

https://colab.sandbox.google.com/github/google/brax/blob/main/notebooks/training.ipynb

物理模擬引擎設(shè)計機會

剛體物理在電子游戲、機器人、分子動力學、生物力學、圖形和動畫等領(lǐng)域均有應(yīng)用。為了對這類系統(tǒng)進行準確建模,模擬器集成了來自重力、電機驅(qū)動、關(guān)節(jié)約束、物體碰撞等方面的力用于模擬物理系統(tǒng)根據(jù)時間所做出的動作。

模擬情形:三個球體、一個壁、兩個關(guān)節(jié)和一個致動器。系統(tǒng)會整合每個模擬時步中的力和力矩,以更新每個物體的位置、旋轉(zhuǎn)和速度

在仔細研究當今大多數(shù)物理模擬引擎的設(shè)計方式過后,不難看出,目前存在一些提高效率的潛在機會。正如我們上面所提到的,典型的機器人學習流水線會將單個學習器置于已有的、許多且并行模擬的緊密反饋中,但在分析這個架構(gòu)后,人們發(fā)現(xiàn):

1. 這種架構(gòu)帶來了巨大的延遲瓶頸。由于數(shù)據(jù)必須通過數(shù)據(jù)中心內(nèi)的網(wǎng)絡(luò)進行傳輸,因此學習器必須等待 10,000 多納秒才能從模擬器中提取經(jīng)驗。如果這種經(jīng)驗在與學習器神經(jīng)網(wǎng)絡(luò)相同的設(shè)備上運行,延遲時間則會下降到不足 1 納秒。

2. 訓練智能體(一模擬步后隨之更新智能體的神經(jīng)網(wǎng)絡(luò))所需的計算量遠不及打包數(shù)據(jù)(即在引擎內(nèi)編組數(shù)據(jù),轉(zhuǎn)換為諸如 protobuf 之類的有線格式,然后進入 TCP 緩沖區(qū),在學習器端撤消所有這些步驟)所需的計算量。

3. 每個模擬器中發(fā)生的計算非常相似,但并不完全相同。

Brax 設(shè)計

針對這些觀察結(jié)果,Brax 旨在使物理計算在其數(shù)千個并行環(huán)境中的每一個環(huán)境中保持完全相同,方法是確保模擬沒有分支(即模擬會因環(huán)境狀態(tài)而發(fā)生相應(yīng)變化的 “if” 邏輯)。

物理引擎的分支示例之一是在球和墻壁之間施加接觸力:系統(tǒng)將根據(jù)球是否接觸墻,執(zhí)行不同的代碼路徑。也就是說,如果 (if) 球接觸墻壁,則將執(zhí)行用于模擬球從墻壁反彈的單獨代碼。Brax 混合使用以下三種策略來避免分支:

用連續(xù)函數(shù)代替離散分支邏輯,例如使用符號距離函數(shù) (Signed distance function) 模擬球壁之間的接觸力。這種方法可以最大程度地提高效率。

在 JAX 的即時編譯期間評估分支。 許多基于環(huán)境靜態(tài)屬性的分支,比如兩個對象是否可能發(fā)生碰撞,系統(tǒng)可能會在模擬時間之前對其進行評估。

在模擬期間運行分支的兩側(cè),但只選擇所需的結(jié)果。 因為這將執(zhí)行一些最終沒有使用的代碼,所以相較于上文,它會浪費操作。

在保證計算一致完全后,整個訓練體系結(jié)構(gòu)的復雜度就會降低,且更便于在單個 TPU 或 GPU 上執(zhí)行。這樣即可消除跨機器通信的計算開銷和延遲。在實踐中,對于相同的工作負載,這些更改將訓練成本降低了 100 -1000 倍。

Brax 環(huán)境

環(huán)境 (Environments) 是微小的封裝世界,定義了 RL 智能體要學習的任務(wù)。環(huán)境不僅包含模擬世界的方法,還包含如何觀察這個世界以及如何在該世界中定義目標等功能。

近年來出現(xiàn)了一些用于測試新的 RL 算法,并使用研究員熟悉的指標來評估這些算法影響的基準環(huán)境。Brax 內(nèi)含熱門 OpenAI Gym 中的 4 個即用型環(huán)境:Ant、HalfCheetah、Humanoid,以及 Reacher。

從左到右依次為:Ant、HalfCheetah、Humanoid 和 Reacher(均為適合 RL 環(huán)境的熱門基準環(huán)境)

Brax 還內(nèi)含三個新穎的環(huán)境:靈巧操作對象(機器人領(lǐng)域中的熱門挑戰(zhàn)),廣義運動(智能體前往放置在其周圍任意位置的目標),和工業(yè)機器人手臂的模擬。

性能基準

分析 Brax 性能的第一步是測試它模擬大批量環(huán)境的速度,這是學習器需要克服的關(guān)鍵瓶頸。只有這樣才能獲取足夠的經(jīng)驗來開展快速學習。

下面的這兩個圖顯示了 Brax 可以產(chǎn)生的實際步數(shù)(隨環(huán)境狀態(tài)變化而更新),它的任務(wù)是并行模擬越來越多的環(huán)境。左圖顯示,在 Brax 中,每秒步數(shù)與并行環(huán)境的數(shù)量成線性比例,僅在 10,000 個環(huán)境時遇到內(nèi)存帶寬瓶頸,這不僅足以訓練單個智能體,但適合訓練整個群體智能體。

第一,Brax 不僅在 TPU 上表現(xiàn)良好,且在高端 GPU 上也表現(xiàn)良好(參見 V100 和 P100 曲線),第二,通過利用 JAX 的設(shè)備并行原語,Brax 可在多個設(shè)備之間無縫擴展,實現(xiàn)每秒數(shù)億個物理步數(shù)(參見 TPUv3 8x8 曲線,即 64 個 TPUv3 芯片通過高速互連直接相互連接)。

分析 Brax 性能的另一種方法是評估其對在單個工作站上運行強化學習實驗所需時間的影響。在這里,我們對比了 Brax 在 Ant 與 OpenAI 基準測試環(huán)境中訓練,后者由 MuJoCo 物理引擎提供支持。

Ant

https://github.com/google/brax/blob/main/brax/envs/ant.py

OpenAI

https://github.com/openai/gym/blob/master/gym/envs/mujoco/ant.py

在下圖中,藍線代表已安裝的標準工作站,其中學習器在 GPU 上運行,模擬器在 CPU 上運行。我們看到通過訓練 Ant 按照合理的熟練度(y 軸上的分數(shù)為 4000)來運行,所需的時間從藍線的大約 3 小時下降到在加速器硬件上使用 Brax 時的大約 10 秒。

有趣的是,即使僅使用 CPU(灰線),Brax 的執(zhí)行速度也加快了一個數(shù)量級。這得益于處于同一進程中的學習器和模擬器。

Brax 的優(yōu)化 PPO 與標準 GPU 支持的 PPO 在學習 MuJoCo-Ant-v2 環(huán)境時,其執(zhí)行 1 千萬步時的表現(xiàn)對比情況。請注意,x 軸是執(zhí)行作業(yè)所需的實際時間(以秒為單位)。陰影區(qū)域表示超過 5 個副本的最低和最高性能種子,實線表示平均值

PPO

https://arxiv.org/abs/1707.06347

物理保真

設(shè)計與現(xiàn)實世界行為相匹配的模擬器是一個尚未解決的已知難題。盡管如此,將 Brax 與參考模擬器進行比較,至少確保其產(chǎn)生同樣有效的輸出。在這種情況下,我們再次比較 Brax 與 MuJoCo,后者因其模擬質(zhì)量而廣受好評。我們希望看到的是,在其他條件相同的情況下,無論是在 MuJoCo 還是 Brax 中訓練,策略都具有相似的獎勵軌跡。

SAC

https://arxiv.org/pdf/1812.05905.pdf

這些曲線表明,隨著兩個模擬器的獎勵以大致相同的速度增長,這兩個引擎計算物理的復雜性和難度都相當。由于兩條曲線都以大致相同的獎勵達到頂峰,所以我們相信,相同的常規(guī)物理限制適用于在任一模擬中盡其所能操作的智能體。

我們還可以測量 Brax 保持線性動量、角動量和能量守恒的能力。

這種物理模擬質(zhì)量的衡量標準由 MuJoCo 的作者率先提出,其目的是了解模擬在計算越來越大的時間步長時的偏航情況。在這里,Brax 的表現(xiàn)與其近鄰曲線相似。

結(jié)論

我們邀請研究人員通過在 Brax Training Colab 中訓練他們自己的策略,對 Brax 的物理保真度進行更定性的測量。學習到的軌跡與在 OpenAI Gym 中看到的軌跡非常相似。

我們的工作使快速、可擴展的 RL 和機器人研究變得更加容易,以前只能通過大型計算集群才能實現(xiàn)的研究現(xiàn)在可以在工作站上運行,或者托管在 Google Colaboratory 免費運行。我們的 Github 代碼庫不僅包括 Brax 模擬引擎,還包括大量用于快速訓練的參考 RL 算法。我們迫不及待地想看看 Brax 能夠?qū)崿F(xiàn)什么樣的新研究。

托管在 Google Colaboratory

https://colab.research.google.com/github/google/brax/blob/main/notebooks/training.ipynb

Github 代碼庫

https://github.com/google/brax

致謝

我們要感謝我們的論文共同作者:Anton Raichuk、Sertan Girgin、Igor Mordatch 和 Olivier Bachem。我們還要感謝 Erwin Coumans 關(guān)于構(gòu)建物理引擎的建議、Blake Hechtman 和 James Bradbury 為 JAX 和 XLA 提供的優(yōu)化幫助,以及 Luke Metz 和 Shane Gu 的建議。我們還要感謝 Vijay Sundaram、Wright Bagwell、Matt Leffler、Gavin Dodd、Brad Mckee 和 Logan Olson,感謝他們幫助孵化這個項目。

[1] 由于現(xiàn)實世界的復雜性,我們?nèi)匀辉陂_展探索柔性物體的物理研究。

柔性物體

https://ai.googleblog.com/2021/05/learning-to-manipulate-deformable.html

發(fā)布人:Google Research 高級軟件工程師 C. Daniel Freeman 和資深軟件工程師 Erik Frey

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11031

    瀏覽量

    215924
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4909

    瀏覽量

    130628
  • 模擬器
    +關(guān)注

    關(guān)注

    2

    文章

    892

    瀏覽量

    44013
  • OpenAI
    +關(guān)注

    關(guān)注

    9

    文章

    1201

    瀏覽量

    8624

原文標題:借助新的物理模擬引擎加速強化學習

文章出處:【微信號:yingjiansanrenxing,微信公眾號:硬件三人行】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    使用Isaac Gym 強化學習mycobot 抓取任務(wù)

    使用Isaac Gym強化學習mycobot抓取任務(wù)
    的頭像 發(fā)表于 04-11 14:57 ?8177次閱讀
    使用Isaac Gym <b class='flag-5'>來</b><b class='flag-5'>強化學習</b>mycobot 抓取任務(wù)

    什么是深度強化學習?深度強化學習算法應(yīng)用分析

    什么是深度強化學習? 眾所周知,人類擅長解決各種挑戰(zhàn)性的問題,從低級的運動控制(如:步行、跑步、打網(wǎng)球)到高級的認知任務(wù)。
    發(fā)表于 07-01 10:29 ?1807次閱讀
    什么是深度<b class='flag-5'>強化學習</b>?深度<b class='flag-5'>強化學習</b>算法應(yīng)用分析

    反向強化學習的思路

    強化學習的另一種策略(二)
    發(fā)表于 04-03 12:10

    深度強化學習實戰(zhàn)

    一:深度學習DeepLearning實戰(zhàn)時間地點:1 月 15日— 1 月18 日二:深度強化學習核心技術(shù)實戰(zhàn)時間地點: 1 月 27 日— 1 月30 日(第一天報到 授課三天;提前環(huán)境部署 電腦
    發(fā)表于 01-10 13:42

    將深度學習強化學習相結(jié)合的深度強化學習DRL

    深度強化學習DRL自提出以來, 已在理論和應(yīng)用方面均取得了顯著的成果。尤其是谷歌DeepMind團隊基于深度強化學習DRL研發(fā)的AlphaGo,將深度強化學習DRL成推上新的熱點和高度,成為人工智能歷史上一個新的里程碑。因此,深
    發(fā)表于 06-29 18:36 ?2.8w次閱讀

    人工智能機器學習強化學習

    強化學習是智能系統(tǒng)從環(huán)境到行為映射的學習,以使獎勵信號(強化信號)函數(shù)值最大,強化學習不同于連接主義學習中的監(jiān)督
    發(fā)表于 05-30 06:53 ?1509次閱讀

    什么是強化學習?純強化學習有意義嗎?強化學習有什么的致命缺陷?

    強化學習是人工智能基本的子領(lǐng)域之一,在強化學習的框架中,智能體通過與環(huán)境互動,學習采取何種動作能使其在給定環(huán)境中的長期獎勵最大化,就像在上述的棋盤游戲寓言中,你通過與棋盤的互動
    的頭像 發(fā)表于 07-15 10:56 ?1.8w次閱讀
    什么是<b class='flag-5'>強化學習</b>?純<b class='flag-5'>強化學習</b>有意義嗎?<b class='flag-5'>強化學習</b>有什么的致命缺陷?

    基于強化學習的MADDPG算法原理及實現(xiàn)

    之前接觸的強化學習算法都是單個智能體的強化學習算法,但是也有很多重要的應(yīng)用場景牽涉到多個智能體之間的交互。
    的頭像 發(fā)表于 11-02 16:18 ?2.2w次閱讀

    如何構(gòu)建強化學習模型訓練無人車算法

    本文作者通過簡單的方式構(gòu)建了強化學習模型訓練無人車算法,可以為初學者提供快速入門的經(jīng)驗。
    的頭像 發(fā)表于 11-12 14:47 ?5072次閱讀

    谷歌AI發(fā)布足球游戲強化學習訓練環(huán)境“足球引擎

    強化學習環(huán)境的核心是一種先進的足球游戲模擬,稱為“足球引擎”,它基于一個足球游戲版本經(jīng)大量修改而成。根據(jù)兩支對方球隊的輸入動作,模擬了足球比賽中的常見事件和場景,包括進球、犯規(guī)、角球
    的頭像 發(fā)表于 06-15 10:33 ?4399次閱讀

    DeepMind發(fā)布強化學習庫RLax

    RLax(發(fā)音為“ relax”)是建立在JAX之上的庫,它公開了用于實施強化學習智能體的有用構(gòu)建塊。。報道:深度強化學習實驗室作者:DeepRL ...
    的頭像 發(fā)表于 12-10 18:43 ?894次閱讀

    機器學習中的無模型強化學習算法及研究綜述

    強化學習( Reinforcement learning,RL)作為機器學習領(lǐng)域中與監(jiān)督學習、無監(jiān)督學習并列的第三種學習范式,通過與環(huán)境進行
    發(fā)表于 04-08 11:41 ?11次下載
    機器<b class='flag-5'>學習</b>中的無模型<b class='flag-5'>強化學習</b>算法及研究綜述

    徹底改變算法交易:強化學習的力量

    強化學習(RL)是人工智能的一個子領(lǐng)域,專注于決策過程。與其他形式的機器學習相比,強化學習模型通過與環(huán)境交互并以獎勵或懲罰的形式接收反饋學習
    發(fā)表于 06-09 09:23 ?699次閱讀

    模擬矩陣在深度強化學習智能控制系統(tǒng)中的應(yīng)用

    訊維模擬矩陣在深度強化學習智能控制系統(tǒng)中的應(yīng)用主要是通過構(gòu)建一個包含多種環(huán)境信息和動作空間的模擬矩陣,模擬和預測深度
    的頭像 發(fā)表于 09-04 14:26 ?756次閱讀
    <b class='flag-5'>模擬</b>矩陣在深度<b class='flag-5'>強化學習</b>智能控制系統(tǒng)中的應(yīng)用

    如何使用 PyTorch 進行強化學習

    強化學習(Reinforcement Learning, RL)是一種機器學習方法,它通過與環(huán)境的交互學習如何做出決策,以最大化累積獎勵。PyTorch 是一個流行的開源機器
    的頭像 發(fā)表于 11-05 17:34 ?899次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品