一個機械臂,正在努力把一隻無線耳機塞進充電盒。
它已經打開了盒蓋,用左手穩穩地拿住盒子,這些都做得挺好。可是每次伸出右手去插耳機的時候,它總是差那麼一點點,要麼角度歪了,要麼位置偏了,耳機卡在盒子邊緣插不進去。研究人員看著這一幕,心裡冒出一個問題:機器人明明大部分步驟都會做,為什麼就是卡在插入這一步上?
如果按照傳統思路,解決辦法是收集更多完整的示範數據,讓機器人從頭到尾重新學一遍怎麼做這件事。可問題是,開盒子、拿穩盒子這些步驟它已經學會了,再讓操作員演示一百遍開盒子的動作,純粹是在浪費時間。真正需要練習的,只有插入耳機那幾秒鐘的動作。
這就是本文要解決的核心矛盾。來自UT Austin、Autel US和UC Berkeley的研究團隊提出了一套叫PARTS
的方法,試圖讓機器人只在它卡殼的地方反覆練習,而不是把整個任務推倒重來。
卡殼的地方,才是真正的瓶頸
長時間跨度的任務,比如插耳機、給樂高積木分類、拔插網線,通常要拆解成好幾個連續的子步驟。研究者觀察到一個規律:機器人的失敗並不是均勻分布在整個任務里的,而是集中在少數幾個環節上。
這些環節被稱作瓶頸子任務
瓶頸子任務:指長任務中導致整體失敗率升高的少數幾個關鍵步驟,比如需要毫米級精度的插入動作,或者會影響後續步驟難度的準備性動作。
論文裡給出一個直白的數學解釋。如果一個任務由N個子步驟組成,每個步驟的成功率是p1到pN,那麼整個任務成功的概率大致等於這些成功率相乘。假設前面五個步驟成功率都是95%,但插入這一步只有30%,那整個任務的成功率也就被死死摁在30%左右,前面做得再好也沒用。這就好比一條鏈子,不管其他環節多結實,只要有一環脆弱,整條鏈子的承重能力就取決於那一環。
而更麻煩的是,當研究者嘗試用強化學習去微調整個任務時,會撞上另一個障礙。強化學習需要獎勵信號來告訴模型做得好不好,可如果這個獎勵只在整個任務徹底成功時才給出,那麼一旦某個環節反覆失敗,機器人幾乎拿不到任何有效反饋。就像考試只公布總分不公布單題對錯,學生永遠不知道自己到底哪道題錯了,只能在黑暗裡瞎撞。論文測得的數據顯示,基礎策略在耳機插入任務上的完整成功率只有32%,如果用傳統的全任務強化學習去訓練,大部分嘗試甚至連插入這一步都走不到,因為前面的步驟先失敗了,根本沒機會練習後面的動作。
這也是論文標題里"極少人工干預"這幾個字的由來。研究者不想每次機器人卡殼時都靠人工手把手糾正動作,那樣的成本太高,也沒法規模化。
把練習範圍縮小到問題本身
PARTS的核心想法說穿了很簡單:凍結那些已經學得不錯的部分,只對出問題的環節單獨訓練一個"糾錯模組"。
具體來說,系統保留一個預訓練好的基礎策略,論文裡用的是π0.5
,一個在大量機器人數據上訓練過的通用模型。
VLA模型
:全稱視覺-語言-動作模型,是一類能同時理解圖像、語言指令並輸出機器人動作的AI模型,近幾年被廣泛用作機器人的基礎能力來源。
這個基礎策略在執行任務時始終在運作,給出它認為該做的動作。而在被人工標記出來的瓶頸環節,系統會額外疊加一個殘差策略
的輸出,對基礎動作做微調修正。
殘差策略:不是從零開始學一整套動作,而是在基礎策略給出的動作基礎上,學習一個小幅度的修正量,比如把抓取角度往左偏兩度,或者把夾爪再多合攏一點。
這個設計思路其實很像給一個已經會開車但停車技術差的司機配一個陪練。司機的整體駕駛技能不需要重新培訓,方向盤怎麼打、油門怎麼踩他都懂,唯獨倒車入庫這個動作總是壓線。這時候最有效率的做法不是讓他把整套駕駛重新學一遍,而是專門針對倒車入庫這一項反覆練習,陪練在他快要壓線的瞬間給出微調提示。如果非要讓他把整個駕駛流程重新考一遍,不僅浪費時間,還可能把原本練得很熟的路段技能弄亂,因為訓練信號被攤薄到了整條路線上,真正需要強化的那幾秒鐘反而沒得到足夠關注。
那麼,系統怎麼知道該在哪裡插入這個糾錯模組,又怎麼判斷這次糾錯算不算成功呢?論文給出的答案是靠人工定義"契約"加上編程代理自動生成執行程序。
人工確定瓶頸之後,要為每個瓶頸寫一份契約,包括這個子任務從哪些狀態可以進入、哪些動作維度可以被修正、修正的物理範圍有多大、以及怎樣才算成功。有了這份契約,編程代理會自動編寫三個程序:一個負責判斷當前該不該啟動殘差策略的選擇器,一個負責判斷這次嘗試成不成功的驗證器,還有一個負責決定該重試還是該復位場景的復位程序。
VLM
:視覺語言模型,能夠根據圖像回答自然語言問題,論文中用它來判斷比如耳機是否已經插好這類需要視覺理解的狀態。
編程代理寫出的代碼不產生具體的電機指令,它只是充當調度和裁判的角色。這三個程序一旦部署,機器人就能自己反覆練習某個瓶頸動作,不需要人在旁邊一次次按下"成功"或"失敗"的按鈕,也不需要人來決定什麼時候該把控制權切回基礎策略。
這套自動化裁判系統解決的實際上是一個很現實的問題。如果每次機器人嘗試插耳機,都要有個人守在旁邊判斷插沒插進去、要不要重置場景,那這套系統就沒法真正大規模跑起來,訓練效率會被人力瓶頸死死卡住。而自動驗證器加自動復位程序,讓機器人可以在無人看管的情況下,利用幾十分鐘時間做成百上千次嘗試。
獎勵要給得勤,反饋要給得快
傳統強化學習面對長任務時的另一個問題是獎勵太稀疏。一次插耳機的完整任務可能要跑二三十秒甚至更久,如果只在最後才告訴模型這次任務算不算成功,那模型很難搞清楚具體是哪個動作導致了失敗。
PARTS給出的方案是,每個瓶頸子任務都有自己獨立的局部獎勵
局部獎勵:不等到整個長任務結束才評分,而是每完成一次瓶頸子任務的嘗試,立刻給出這次嘗試成不成功的反饋,論文裡瓶頸子任務通常只持續3到15秒。
這就好比學鋼琴的時候,老師不是等你彈完整首曲子才告訴你哪裡彈錯了,而是你每彈錯一個小節,老師立刻叫停並糾正。如果等到整首曲子結束才反饋,你練習一百遍可能都不知道具體是第幾小節的指法出了問題,反而可能把錯誤的動作練得更熟練。局部獎勵縮短了從犯錯到被糾正之間的距離,這讓學習效率大大提升。
在強化學習的具體算法上,論文用的是TD3+BC
TD3+BC:一種結合了雙延遲深度確定性策略梯度和行為克隆正則化的強化學習算法,前者通過訓練兩個評價網路來減少價值高估的問題,後者則讓策略不要偏離那些已經被驗證有效的動作太遠。
簡單說,這套算法一邊鼓勵機器人探索更好的動作,一邊又用一根繩子拉住它,不讓它為了探索而徹底忘掉那些已經驗證過管用的修正方式。對於那些成功過的嘗試,策略會主動模仿這次執行的動作;對於失敗的嘗試,策略則會被拉回接近"不修正,直接用基礎策略"的狀態,相當於一種保守的兜底機制。
在線數據不夠用時,如何補救
這裡出現了一個很微妙的坑,論文管它叫復位造成的分布偏差。
為了節省時間,機器人每次練習瓶頸動作時,往往不是從任務最開始復位,而是直接復位到這個瓶頸子任務的起始狀態,反覆原地練習。這樣做效率是高了,但帶來一個副作用:連續多次嘗試看到的場景幾乎一模一樣,機器人練出來的修正動作很可能只適配這個特定場景,一旦換成完整任務里由前面步驟自然產生的、略有變化的場景,這個修正反而不管用了。
這就好比一個人總是在同一塊空地上練習倒車入庫,練到閉著眼睛都能倒進去,可換到一個略微傾斜或者旁邊多了輛車的真實停車場,他反而手忙腳亂,因為他練的其實是那塊特定空地的記憶,而不是真正適應各種停車場景的能力。如果不做任何處理,機器人在實際評估時的表現就會明顯低於它在訓練時展現出的水平,論文的消融實驗證明了這一點:去掉後面要講的這個補救措施,耳機任務的完整成功率從66.7%直接掉到40%。
補救措施叫成功重加權再訓練
成功重加權再訓練:定期把積累的所有訓練數據重新整理一遍,保留全部成功案例,再從失敗案例里按一定比例隨機抽取一部分,用這份經過調整比例的數據集重新訓練一套全新的策略網路,然後把這個新策略重新部署到機器人上繼續收集數據。
這個操作的意義在於,它不是簡單地在舊策略基礎上繼續微調,而是徹底重新訓練一套網路,用一份成功案例占比被人為提高的數據集。這樣可以避免策略陷入某個局部最優解出不來,同時因為重新部署後策略會遇到新的場景變化,也間接緩解了前面提到的復位偏差問題。
三個任務,兩個機器人平台
論文在三個真實機器人任務上做了驗證,分別是雙臂YAM機器人
上的耳機插入任務和樂高分揀任務,以及單臂Franka機器人上的網線拔插任務。
耳機插入被認為是最難的一個,因為它是一條依賴鏈:如果一開始盒子沒拿穩,後面兩次插入都會受影響;插槽的容錯空間很小,對雙臂協調的精度要求很高;而且夾爪會擋住插槽,讓攝影機很難分辨耳機到底插好了沒有,這給自動判斷成功與否也增加了難度。
樂高分揀任務的問題不太一樣,它面對的是一種分布外的挑戰。訓練這個基礎策略用的公開數據集裡,樂高積木的尺寸比實際測試用的積木要大,導致夾爪經常合攏得不夠緊,抓起來的積木又掉了。因為抓取動作在整個任務里要重複十次,哪怕每次失敗率不高,累積起來也會嚴重拖慢整體進度。
網線拔插任務相對簡單一些,基礎策略本身就能可靠地完成拔線部分,問題主要出在插入目標路由器時的對準精度上。
在完整任務的最終評估里,PARTS把耳機插入任務的成功率從32%提升到61%(論文摘要數據),而正文裡具體的實驗章節記錄到66.7%,提升幅度達到基礎策略的四倍左右。網線任務的完整成功率從50%提升到97.5%,幾乎翻倍。樂高分揀任務因為是重複性的抓取放置動作,論文用的是完成度評分而不是簡單的成功失敗二元判斷,完成度從基礎策略的54%提升到82%,而且這個提升只花了17分鐘的真實機器人訓練時間。
論文還和幾個現有的真實世界強化學習方法做了對比,包括DSRL、EXPO-FT和RLT三種方法。這三種方法各有各的思路,DSRL把探索限制在基礎模型能生成的動作範圍內,EXPO-FT一邊訓練一個修正策略一邊繼續更新基礎模型本身,RLT則是通過一次性的交接把控制權從基礎模型完全轉交給強化學習策略。在相同的機器人訓練時間預算下,PARTS的完整任務成功率比這些方法平均高出超過25個百分點。
有意思的是,EXPO-FT這個方法在網線任務上的表現反而比什麼都不做的基礎策略還差。論文分析認為,這是因為它一邊用稀疏的整體任務獎勵去更新整個模型,一邊這種更新可能在悄悄破壞那些原本已經很可靠的非瓶頸動作,比如把原本很穩的拔線動作也帶偏了。這提醒我們一件事:不加區分地用全局獎勵去微調整個模型,看似是在優化任務表現,實際上可能在無意中拆掉了原本運轉良好的部分。
寫在後面
讀完這篇論文,最觸動我的其實不是提升了多少個百分點,而是背後那個樸素到有點反直覺的判斷:機器人學習新任務,不一定非要從頭再學一遍。
我們平時接受的教育里,似乎默認了"重新來一遍"是最穩妥的進步方式,考試不及格就整門課重修,項目失敗了就推倒重來。可這篇論文用真實機器人實驗證明,精準定位問題所在、只針對問題本身高頻次練習,效率可能遠遠超過全盤重來。這個思路其實不只適用於機器人,任何需要反覆試錯來改進的系統,大概都值得先問一句:真正的瓶頸到底卡在哪一環,而不是籠統地把整個流程再走一遍。
論文裡那個耳機插入任務的細節我印象很深:一隻已經插好的耳機和一隻還搭在盒子邊緣沒插到位的耳機,在攝影機視角下看起來幾乎一模一樣,連視覺語言模型都判斷不准,得靠人工去核對標籤。這說明即便是自動化程度已經很高的系統,判斷"成功還是失敗"這件事本身,有時候比訓練策略更難。
那麼下一步的問題也許是,當機器人自己都分不清成功和失敗的時候,誰來教它認識那條界限?
Q&A
Q1:PARTS是什麼?
A:PARTS是一套面向真實機器人的強化學習框架,全稱是Policy Adaptation with RL on Targeted Subtasks,核心思路是只針對長任務中失敗率高的瓶頸子步驟進行強化學習訓練,而不是對整個任務重新訓練,從而用更少的人工干預和更短的訓練時間提升複雜任務的完整成功率。
Q2:PARTS和傳統的全任務強化學習相比有什麼優勢?
A:傳統方法用整體任務是否成功作為唯一獎勵信號,導致早期失敗會讓後續步驟根本沒機會被練習,反饋也非常稀疏。PARTS給每個瓶頸子任務單獨設置局部獎勵,讓機器人在3到15秒的短周期內就能獲得反饋,同時保留已經可靠的基礎動作不被打亂,實驗顯示在同等訓練時間下完整任務成功率能比現有方法高出超過25個百分點。
Q3:PARTS訓練過程中真的完全不需要人工干預嗎?
A:不是完全不需要。人類需要在前期根據機器人失敗情況指出瓶頸所在,並協助設置執行標準,訓練過程中在場景無法自動復位時人類需要手動復位,在部分任務比如耳機插入中因為自動判斷容易混淆,人類還需要核對成功驗證器給出的標籤,但相比傳統方法需要逐次人工糾正動作或反覆標註,人力投入已大幅減少。






