GoogleDeepMind:將大模型與強化學習結合,打造機器人感知世界的智慧大腦
在開發機器人學習方法時,如果能整合大型多樣化資料集,再組合使用強大的富有表現力的模型(如Transformer),那麼就有望開發出具備泛化能力且廣泛適用的策略,從而讓機器人能學會很好地處理各種不同的任務。比方說,這些策略讓機器人遵從自然語言指令,執行多階段行為,適應各種不同環境和目標,甚至適用於不同的機器人型態。
但是,近期在機器人學習領域出現的強大模型都是使用監督學習方法訓練得到的。因此,所得策略的性能表現受限於人類演示者提供高品質演示數據的程度。這種限制的原因有二。
- 第一,我們希望機器人系統能比人類遠端操作者更熟練,並利用硬體的全部潛力來快速、流暢且可靠地完成任務。
- 第二,我們希望機器人系統能更擅長自動累積經驗,而不是完全依賴高品質的簡報。
從原理上看,強化學習能同時提供這兩種能力。
近期出現了一些具有潛力的進展,顯示大規模機器人強化學習在多種應用場景中能夠取得成功,例如機器人的抓取和堆疊能力、學習具有人類指定獎勵的不同任務、學習多任務策略、學習基於目標的策略以及機器人導航。然而,研究表明,如果使用強化學習來訓練Transformer等強大的模型,則更難有效地進行大規模實例化
Google DeepMind 最近提出了Q-Transformer,旨在將基於多樣化真實世界資料集的大規模機器人學習與基於強大Transformer 的現代策略架構結合起來
- 論文:https://q-transformer.github.io/assets/q-transformer.pdf
- 專案:https: //q-transformer.github.io/
#儘管從原理來看,直接使用Transformer來取代現有的架構(如ResNets或更小的捲積神經網路)在概念上很簡單,但設計一個能有效利用這種架構的方案卻非常困難。只有在能夠使用大規模多樣化的資料集時,大型模型才能發揮其效力-小規模、範圍狹窄的模型並不需要這種能力,也無法從中獲益
儘管之前有研究透過模擬資料來創建這樣的資料集,但最具代表性的資料還是來自真實世界。
因此,DeepMind 表示,該研究的重點是透過離線強化學習利用Transformer 並整合先前收集的大型資料集
##離線強化學習方法是利用先前已有的資料進行訓練,其目標是根據給定的資料集推導出最有效的可能策略。當然,也可以利用額外自動收集的資料來增強這個資料集,但訓練過程與資料收集過程是分開的,這為大規模機器人應用提供了一個額外的工作流程
在使用Transformer 模型來實現強化學習方面,另一個主要問題是設計一個可以有效訓練這種模型的強化學習系統。有效的離線強化學習方法通常是透過時間差更新來進行 Q 函數估計。由於 Transformer 建模的是離散的 token 序列,所以可以將 Q 函數估計問題轉換成離散 token 序列建模問題,並為序列中的每個 token 設計一個合適的損失函數。
DeepMind 所採用的方法是依維度離散化方案,這是為了避免動作基數呈指數爆炸。具體而言,動作空間的每個維度都被視為強化學習中的獨立時間步驟。離散化中的不同 bin 對應於不同的動作。這個以維度離散化的方案使得我們可以使用具有一個保守的正則化器的簡單離散動作Q 學習方法來處理分佈轉變情況
DeepMind 提出了一種專門的正則化器,其旨在最小化未被使用動作的值。研究表明,這種方法可以有效地學習範圍狹窄的類似演示的數據,並且也可以學習具有探索噪聲的範圍更廣的數據
最後,他們也採用了一種混合更新機制,將蒙特卡羅和 n 步驟返回與時間差備份(temporal difference backups)組合到了一起。結果顯示這種做法能提升基於 Transformer 的離線強化學習方法在大規模機器人學習問題上的表現。
這項研究的主要貢獻是Q-Transformer,它是一種基於Transformer架構的機器人離線強化學習的方法。 Q-Transformer對Q值進行了按維度的token化,並且已經成功應用於大規模多樣化的機器人資料集,包括真實世界資料。圖1展示了Q-Transformer的元件
#DeepMind 進行了實驗評估,包括模擬實驗和大規模真實世界實驗,旨在嚴格比較和實際驗證。其中,我們採用了大規模的基於文字的多任務策略進行學習,並驗證了Q-Transformer 的有效性
在真實世界實驗中,他們使用的資料集包含3.8 萬個成功演示和2 萬個失敗的自動收集的場景,這些數據是透過13 台機器人在700 多個任務上收集的。 Q-Transformer 的表現優於先前提出的大規模機器人強化學習的架構,以及先前提出的 Decision Transformer 等基於 Transformer 的模型。
方法概覽
為了使用Transformer進行Q學習,DeepMind採取的方法是將動作空間離散化與自迴歸處理
要學習一個使用TD學習的Q函數,經典方法是基於貝爾曼更新規則
研究者對貝爾曼更新進行了修改,使其能為每個動作維度執行,做法是將問題的原始MDP 轉換成每個動作維度都被視為Q 學習的一個步驟的MDP。
具體而言,對於給定的動作維度d_A,新的貝爾曼更新規則可以表述為:
這意味著對於每個中間動作維度,要在給定相同狀態的情況下最大化下一個動作維度,而對於最後一個動作維度,使用下一狀態的第一個動作維度。這種分解能確保貝爾曼更新中的最大化仍然易於處理,同時也能確保原始 MDP 問題仍可解決。
為了兼顧離線學習過程中的分佈變化情況,DeepMind 也引進了一種簡單的正規化技術,其是將未曾見過的動作的值降到最低。
為了加快學習速度,他們也採用了蒙特卡羅返回方法。這種方法不僅使用了對於給定事件片段(episode)的返回即用(return-to-go),還使用了可跳過按維度最大化的n 步返回(n-step returns)
實驗結果
在實驗中,DeepMind對Q-Transformer進行了評估,涵蓋了一系列真實世界任務。同時,他們也將每個任務的資料限制在只包含100個人類別演示的範圍內
在演示中,除了演示之外,他們還添加了自動收集的失敗事件片段,以建立一個資料集。這個資料集包含了來自示範的3.8萬個正例和2萬個自動收集的負例
相比于 RT-1、IQL 和 Decision Transformer (DT) 等基准方法,Q-Transformer 可以有效地利用自动事件片段来显著提升其使用技能的能力,这些技能包括从抽屉里取放物品、将物体移动到目标附近、开关抽屉。
研究者还在一个高难度的模拟取物任务上对新提出的方法进行了测试 —— 在该任务中,仅有约 8% 的数据是正例,其余的都是充满噪声的负例。
在这个任务中,Q-学习方法如QT-Opt、IQL、AW-Opt和Q-Transformer通常表现更好,因为它们能够利用动态规划来学习策略,并利用负例进行优化
基于这个取物任务,研究者进行了消融实验,结果发现保守的正则化器和 MC 返回都对保持性能很重要。如果切换成 Softmax 正则化器,性能表现显著更差,因为这会将策略过于限制在数据分布中。这说明 DeepMind 这里选择的正则化器能更好地应对这个任务。
他们对于n步返回的消融实验发现,尽管这可能会引入偏差,但这种方法可以在显著更少的梯度步骤内实现同等的高性能,有效地处理许多问题
研究人员还尝试在更大规模的数据集上运行Q-Transformer。他们将正例数量扩大到11.5万,负例数量增至18.5万,从而得到一个包含30万个事件片段的数据集。使用这个大型数据集,Q-Transformer仍然能够学习,并且甚至比RT-1 BC基准表现更好
最后,他们将Q-Transformer训练的Q函数作为可供性模型(affordance model)与语言规划器组合在一起,类似于SayCan
Q-Transformer 可供性估计的效果由于之前的使用 QT-Opt 训练的 Q 函数;如果再将未被采样的任务重新标注为训练期间当前任务的负例,效果还能更好。由于 Q-Transformer 不需要 QT-Opt 训练使用的模拟到真实(sim-to-real)训练,因此如果缺乏合适的模拟,那么使用 Q-Transformer 会更容易。
为了测试完整的「规划 执行」系统,他们实验了使用 Q-Transformer 同时进行可供性估计和实际策略执行,结果表明它优于之前的 QT-Opt 和 RT-1 组合。
从给定图像的任务可供性值示例中可以观察到,Q-Transformer 在下游的「规划 执行」框架中能够提供高质量的可供性值
请阅读原文以获取更多详细内容
以上是GoogleDeepMind:將大模型與強化學習結合,打造機器人感知世界的智慧大腦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。
