與生成模型相比,為何機器人研究還在用幾年前的老方法?
目前機器人領域取得了顯著進展,這些進展預示著未來機器人可以做更多事情。但是也有讓人困擾的事情,因為與生成模型相比,機器人的進展還是有點遜色,尤其是 GPT-3 等模型的出現,這一差距更加突出。

生成模型產生的結果好到令人震驚。如上圖左側是谷歌推出的 Imagen 的輸出結果。你可以提供一段文字給它,如「一只倉鼠戴著橙色的小帽,手里拿著我愛 JAX 的紙片」,根據給定的文字,Imagen 會渲染出合理的圖像。此外,谷歌還訓練了一個大型語言模型 PaLM,可以用來解釋為什么笑話很有趣等。他們用 TPUv4 等先進硬件訓練模型,并且在計算機視覺領域,研究人員正在開發一些非常復雜的架構,如 Vision Transformers 等。
生成模型發展如此迅猛,與機器人技術相比,兩者之間有什么聯系呢?
本文中,來自挪威機器人公司「Halodi Robotics」的 AI 副總裁 Eric Jang 介紹了《我們如何讓機器人更像生成模型?》。以下為文章主要內容。
作為一名機器人領域專家,生成模型領域的進展讓人有點羨慕。因為在機器人領域中,大多數研究者可能仍在使用 ResNet18,這個已有 7 年歷史的深度學習架構。我們當然不會像生成模型那樣在巨大的數據集上訓練模型,所以很少有機器人方面的研究工作成為「耀眼」的頭條新聞。
我們知道莫拉維克悖論:相較于認知型任務,靈活的操縱機器人很困難,從直覺上看,讓機器人拿起并運送物體這些操作,似乎沒有把文字變成圖像或解釋笑話那么令人印象深刻。?
首先我們給生成模型下一個定義。生成模型不僅僅是渲染圖片或生成大量的文本。它還是一個框架,我們可以用它來理解所有的概率機器學習。生成模型有兩個核心問題:
1、你要建模的數據類別有多少 bits?
2、你能把模型建的多好?
2012 年 AlexNet 取得突破,它可以對 1000 個類別進行預測,Log2(1000 classes)大約是 10 class bit。你可以把 AlexNet 想象成基于圖像的生成模型,包含 10bits 信息。如果你把建模任務的難度升級到 MS-CoCo 字幕任務,這時模型包含大約 100bits信息。如果你正在進行圖像生成,例如使用 DALLE 或 Imagen 從文本到圖像生成,大約包含 1000bits信息。?
通常對越多的類別進行建模,就需要越多的算力來計算其中蘊含的條件概率,這就是為什么隨著類別的增多模型會變的龐大。當我們訓練越來越大的模型時,就有可能利用數據中的特征,從而可以學習更豐富的結構。這就是為什么生成模型和自監督學習已經成為流行的方法,可以在不需要大量人工標簽的情況下對大量的輸入進行深度學習。?
Rich Sutton 在其文章《The Bitter Lesson》中指出:人工智能的大部分進展似乎都是在這股計算熱潮中取得的,而其他方面幾乎沒有發展。Vision 算法、NLP 和 Yann LeCun 的 LeCake 等都受益于這股計算熱潮。

這種趨勢給我們什么啟示?如果你有過渡參數化的模型,其能夠處理更多數據,并且模型能夠掌握網絡中的所有特征,加上很強的算力和訓練目標,深度學習幾乎總是可行的。?
下面讓 DALL-E 2 生成一副圖像:一頭踏在巨浪上的騾子,這幅圖展示了生成模型是如何借助計算熱潮取得不凡的成績。你手握強大的算力(transformer、Resnet 等),并且可以選擇 VQVAE、Diffusion、GAN、Autoregressive 等算法來建模。當前每種算法細節很重要,但未來一旦計算機的算力足夠強大,這些細節可能就不重要了。但從長遠來看,模型規模和良好的架構是所有這些進步的基礎。
?
相比之下,下圖展示的是機器人領域泛化研究的現狀。目前很多機器人研究人員仍在進行的是小模型訓練,并且還沒有用過 Vision Transformer!
對于從事機器人研究的人來說,他們都希望機器人能更廣泛的應用在現實世界中,并且發揮更大的作用。在生成模型領域,研究者面臨的問題相對較少,而在機器人研究領域,經常遇到機器人部署難、噪聲數據等問題,這些從事生成模型的研究者都不會遇到。
接下來我們從三個不同的維度比較生成模型和機器人技術,這三個方面包括優化、評估和表達能力。
優化?
首先讓我們看一個簡單的生成模型:PixelRNN。
從第一個像素的紅色通道開始(紅色通道的先驗概率是已知的),模型告訴 canvas(頂行)它要繪制的像素。canvas 將完全按照指令繪制,因此它將像素值復制到 canvas 上,然后將 canvas 讀回模型中,以預測下一個通道即綠色通道。然后將 R、G canvas 上的值反饋給 RNN,依此類推,最終生成 RGBRGBRGB… 序列。?
在實際的圖像生成任務中,可以使用 diffusion 或 transformer。但為了簡單起見,我們僅使用前向執行的 RNN。?
現在讓我們將一般控制問題轉換為 PixelRNN。與生成圖像不同的是,我們要生成 MDP(馬爾可夫決策過程):狀態、動作和獎勵的序列。我們希望生成 MDP,這個 MDP 對應于完成某些任務的智能體(如機器人)。這里我們也是從先驗知識開始,模型對強化學習 (RL) 環境的初始狀態進行采樣。這是模型的第一個輸入,RNN 對第一個像素 (A) 進行采樣,canvas 完全按照指令的要求生成 A。但是,與生成圖像不同的是,canvas 總是將之前的 RNN 輸出返回,現在的操作是接下來的兩個像素(R,S)由當前環境決定:即它接受動作和所有之前的狀態,并以某種方式計算 R,S。

我們可以把 RL 環境視為繪制對象(painter object),它執行 RNN 動作,而不是直接在 canvas 上繪制想要的內容,它會使用任意復雜的函數繪制像素。?
如果我們將其與前面繪制圖像的 PixelRNN 進行對比,這個任務顯然更具挑戰,因為當你嘗試對想要的圖像進行采樣,會有一個黑盒,這個黑盒會對要繪制內容造成困難。?
繪制過程中會碰到一個典型的問題:如果環境繪制了一個非預期內的狀態,就會有問題,即如何發出糾正指令,以便可以返回到我們嘗試繪制的圖像。此外,與圖像生成不同,我們實際上必須按順序生成 MDP 圖像,并且不能回溯進行編輯,這也帶來了優化挑戰。?
如果想理解 PPO 這樣的 RL 方法是如何泛化的,我們應該在非控制環境下對其進行基準測試,將其應用于圖像生成技術,并將其與現代生成模型進行比較。Hinton 和 Nair 在 2006 年的工作中,他們使用 springs 系統對 MNIST 數字合成進行建模。DeepMind 使用 RL 方法復現這種圖像合成的部分工作。?
圖像生成是研究優化和控制的很好的基準,因為它真正強調了在成千上萬個不同場景中進行泛化的必要性。?
近期如 Decision Transformer、Trajectory Transformer 以及 Multi-Game Decision Transformer 表明,upside-down RL 技術在泛化方面做得很好。那么 upside-down RL 技術與在線(PPO)或離線 RL 算法(CQL)相比如何?其實要進行評估也很簡便,我們可以評估密度(專家完全觀察的似然模型)并驗證給定的 RL 算法選擇是否可以在測量測試似然度時泛化到大量圖像。
評估?
如果想估量機器人在某些任務上的成功率,我們可以使用二項分布。
二項分布的方差為 p(1?p)/N,p 為樣本均值(估計的成功率); N 為試驗次數。在最壞的情況下,如果 p=50%(最大方差),那么需要 3000 個樣本才能使標準差小于 1%!?
如果我們從計算機視覺的角度來看,0.1-1% 范圍內的提升是前進的重要驅動力。ImageNet 目標識別問題,自 2012 年以來取得了很大進步,2012 到 2014 年的錯誤率降低了 3%,然后每年大約降低 1%,有很多人在研究如何使這項工作發揮作用。也許今年 (2022 年) 在基準提升上已經達到瓶頸,但在 2012-2018 年的這 7 年間,研究人員取得了很多進展和成果。

在生成建模的其他領域,研究人員一直在降低語言模型的復雜性,以及生成模型在圖像上的每維 bit 數(bits-per-dimension)。


下面大致比較一下通用基準的評估速度。2012 年 ImageNet 目標識別測試集中有 150000 個圖像。假設每個圖像的推理速度為 10ms,并且每次是連續評估每個圖像,這樣評估每個測試示例大約需要 25 分鐘(實際上評估速度要快得多,因為可以進行批量處理)。但這里假設我們只有單臺機器人進行評估操作,并且必須連續處理圖像。
因為有海量圖像,所以我們可以得到標準誤差估計在 0.1% 以內。事實上我們不需要 0.1% 的標準誤差才能在該領域取得進展,可能 1% 就夠了。?
在評估復雜性方面,端到端的性能也是重要的一塊。下面我們來看看怎樣進行神經網絡在模擬任務中的端到端性能評估。Habitat Sim 是目前速度最快的模擬器之一,其設計目的是最大限度地減少神經網絡推理和環境步進之間的開銷。模擬器可以每秒 10000 step,但由于神經網絡的正向傳遞約為 10ms,該瓶頸導致每個 episode 的評估時間為 2 秒(假設典型的 navigation episode 為 200 step)。這比運行真正的機器人快得多,但比評估單個計算機視覺樣本慢得多。?
如果要評估端到端的機器人系統,其多樣性水平與我們使用 ImageNet 所做的相似,普通的評估需要 1 周時間來處理數十萬個評估場景。這并不完全是合理的比較,因為每個 episode 實際上有 200 個左右的推理過程,但我們不能將單個 episode 內的圖像視為獨立的驗證集。如果沒有任何其它 episode 度量,我們只知道任務是否成功,因此 episode 內的所有推理只對二項式估計的單個樣本有貢獻。我們必須根據數萬個 episode 而不是圖片來估計成功率。當然,我們可以嘗試使用其他策略評估方法,但這些算法還不夠可靠,無法開箱即用。?
接下來階段,我們對真實機器人進行現場評估。在現實世界中每個 episode 大約需要 30 秒的時間進行評估,如果一個由 10 名操作員組成的團隊進行評估,每個操作員每天可以完成 300 個 episode,那么每天可以進行大約 3000 次評估。?
如果評估模型需要一整天的時間,這會對工作效率造成很大的限制,因為這樣每天只能嘗試一種想法。所以我們不能再研究那些將性能逐步提高 0.1% 的小想法,或者非常極端的想法。我們必須想辦法在性能上實現大飛躍。雖然這看起來不錯,但在實踐中很難做到。?
當考慮進行機器人學習迭代過程時,很容易讓評估試驗的數量遠遠超過你的訓練數據!幾個月的不間斷評估產生了約數萬個 episode,這已經超過了大多數機器人深度學習演示數據集。

幾年前,研究人員仍在解決類似讓機械臂開門的問題,但這些策略不能進行很好的泛化。研究人員通常按照 10 個 episode 左右的順序進行評估。但 10-50 次試驗實際上不足以保證統計魯棒性。為了取得好的效果,實際可能要進行超過 1000 次試驗以進行最終評估。?
但當進一步擴展試驗時會發生什么呢?假如我們最終需要訓練具有 O(100,000)種行為、極其通用的機器人系統,我們需要多少次試驗來評估這樣的通用系統?這里的評估成本變得極其高昂。
這里再強調一次:數據是足夠的,評估存在瓶頸!

如何加速評估?
下面介紹關于如何加快通用機器人系統評估的想法。?
方法之一是分別對泛化問題和機器人進行研究。其實深度學習社區已經做到了這一點。大多數計算機視覺和生成建模研究人員并不直接在實際機器人上測試他們的想法,而是期盼一旦他們的模型獲得強大的泛化能力,那么它將快速地遷移到機器人上。在計算機視覺領域開發的 ResNets 極大地簡化了許多機器人視覺運動建模選擇。想象一下,如果一名研究人員每次想嘗試不同的神經網絡架構時都必須在真實的機器人上測試他們的想法!另一個成功案例是 CLIPort,它將圖像 - 文本模型強大的多模式泛化能力與用于抓取規劃的基本幾何推理解耦。?
我們可以進一步將 RL 的技術堆棧分為「模擬玩具環境」、「模擬機器人」和「真實機器人」三層(按評估難度的增加順序排列)。

在金字塔的底層,是一般的基準,比如 Kaggle 競賽的基準。往上走,是一組「玩具控制問題」,以「裸機」的方式研究問題,只有模擬器和神經網絡運行,所有與真實世界機器人相關的代碼,如電池管理等都不存在。沿著金字塔再向上走,就來到更特定領域,與你試圖解決的問題更相關。例如「模擬機器人」和「真實機器人」可能用于相同的任務,并重用相同的底層機器人代碼。模擬玩具環境可用于研究一般算法,但與最終機器人領域重疊的較少。在「評估金字塔」的頂部,是我們試圖解決的真實機器人任務。直接迭代這個過程非常慢,因此我們都希望在這里花費盡可能少的時間。我們希望,在較低層次上訓練和評估的基礎模型能夠幫助了解哪些想法有效,而不必在頂層進行每一次評估。?
同樣,該領域已經以這種解藕的方式運作。大多數有興趣為機器人做出貢獻的人不一定會操控機器人。他們可能會訓練最終可能對機器人有用的視覺表示和架構。當然,去耦合的缺點是感知基準的改進并不總是對應于機器人能力的改進。例如正在改進語義分割或視頻分類準確性的 mAP 指標,甚至是無損壓縮基準(理論上最終應該有所貢獻),我們不知道表示目標的改進在實際上如何與下游任務的改進產生映射。所以最終必須在端到端系統上進行測試,以了解真正的瓶頸在哪里。?
Google 曾發表過一篇很酷的論文《Challenging Common Assumptions in Unsupervised Learning of Disentangled Representations》,他們證明了許多完全無監督的表示學習方法不會在下游任務中帶來顯著的性能改進,除非我們正在執行評估和選擇模型使用的是自己關心的最終下游標準。
論文地址:https://arxiv.org/pdf/1811.12359.pdf?
另一種降低評估成本的方法是確保數據收集和評估過程一致。我們可以同時收集評估數據和專家操作數據。我們可以通過一定的干預來收集 HG-dagger 數據,這樣就可以收集有用的訓練數據。同時,每個 episode 的平均干預次數大致可以告訴我們該策略是否夠好。我們還可以觀察標量指標,而不是二項式指標,因為這些指標的每個 episode 產生的信息比單次成功 / 失敗更多。?
使用 RL 算法進行自主數據收集是將評估和數據收集相結合的另一種方法,但該方法需要我們對 episode 進行人工評分,或者使用精心設計的獎勵函數。所有這些方法都需要在現實世界中部署大量機器人,這仍然會陷入在現實世界中不斷迭代的泥潭。?
讓評估算法更快的方法是改進 sim-to-real 的遷移算法。我們可以并行模擬許多機器人,這樣就不會再受約束。Mohi Khansari、Daniel Ho 和 Yuqing Du 等人開發了一種被稱為「任務一致性損失(Task Consistency Loss)」的技術,該技術將來自 sim 和 real 的表示正則化為不變量,因此策略在 sim 和 real 下的行為應該類似的。當我們將 sim 中評估的策略遷移到 real 時,我們希望確保 sim 中的較高性能指標也確實對應于 real 中的較高性能指標。sim2real 差距越小,就越可信任模擬實驗中的指標。
表達性
讓我們看看現代生成模型可以輸出多少位。每通道 8 位的 64x64x3 RGB 圖像為 36864bits。語言模型可以生成任意數量的 tokens,但如果我們將輸出窗口固定為 2048 個 tokens,每個 token 有 17bits,總共 36793bits。因此,圖像和文本生成模型都可以合成大約 37kbits。隨著模型的表現力越來越強,人們對這些模型的感知會發生質的飛躍。甚至有人開始認為語言模型是部分有意識的,因為它們的表達能力太強大!
相比之下,當下機器人的表達性如何?這里我們設計一個簡化現實世界的環境,桌上有 6 個物品,機器人的任務是必須將一個物品移動到另一個物品的頂部或運送某幾個物品,總共 100 個任務。log2(100)大約是 7 個 bits,也就是說“給定世界的狀態,機器人能夠將原子移動到 N 個狀態中的一個,其中 N 可以用 7bits 來描述”。谷歌的 SayCan 算法可以用一個神經網絡完成大約 550 個操作任務,這在當前的機器人深度學習標準中是相當令人印象深刻的,總共只有大約 10 個 bits。?
這種比較并不是完美合理的,因為信息的定義在兩者之間是不同的,這里只是提供一個粗略的直覺,當人們衡量一組任務與另一組任務的相對復雜性時,需要弄明白什么是重要的。?
我們遇到的挑戰之一是機器人的功能仍然有限。如果你看一下 Ego4D 數據集,很多任務都需要雙手操作,但現在大多數機器人仍然使用帶輪底座、單臂的移動機械手。他們無法移動不能去任何地方,顯然我們擁有的只是「機械臂」,這排除了很多有趣的任務。
我們需要研究更具表達性的機器人,但是機器人學習算法的表現力是受硬件限制的。下面是機器人開門、打包行李箱、拉上拉鏈、給植物澆水以及翻轉水瓶瓶蓋的畫面。隨著機器人硬件越來越接近真實的人類,在以人類為中心的世界里,你可以做的事情的數量呈指數級增長。
隨著機器人變得更具表達性,我們不僅需要互聯網規模的訓練數據,還需要互聯網規模的評估過程。如果你看一下大型語言模型 (LLMs) 的進展,現在有很多論文研究調優以及現有模型可以做什么和不能做什么。
比如,BigBench 的基準編譯了一系列任務,并詢問我們可以從這些模型中獲得什么。OpenAI 面向互聯網用戶評估他們的 DALLE-2 和 GPT-3 模型。他們的工程和產品團隊可以從用戶參與的人工智能試驗中學習,因為任何一位研究人員都很難掌握 LLMs 模型的細節。
最后向讀者提個問題,機器人領域中與 GPT-3 或 DALLE-2 API 等價的技術是什么?通過這個等價技術,互聯網社區的研究人員可以對機器人研究進行質疑、并了解它到底可以做什么嗎?
最后用表格總結優化、評估和表達性之間的比較:



























