機器人強化學習深度科普

在2024年末,我們舉辦過一場關於RL和Control的線上Panel(播客:RL+Control 如何將機器人可靠性逼進99.9x%),關於RL的路線嘉賓提到了一個觀點:“拿強化學習來說,我們得明確具體討論的是哪種型別的強化學習。比如是“模擬到現實的無模型強化學習(Sim2Real Model – Free Reinforcement Learning)”呢,還是當下很熱門的“學習世界模型(Learning word model)”、也就是基於模型的強化學習(Model-based reinforcement learning),亦或是在真實世界裡開展的無模型強化學習呢?我覺得這些不同型別的強化學習其實差別挺大的。另外,還有離線強化學習(Offline reinforcement learning),有很多演示資料(Demonstration)的時候,不光能做模仿學習,還可以進行離線強化學習。強化學習之間的差別可能比強化學習和Control之間的差別還大。”
在這個觀點的觸動下,我就特別希望做一個關於強化學習+機器人的深度科普。其實RL+Robotics這個關鍵詞也是石麻筆記自2023年6月開始一系列關於具身智慧科普系列文章的開端。一年半之前,基於Covariant(Covariant:三個華人小夥創辦的AI4Robot獨角獸)的路線RL+Robotics延展,我在網路上搜集關於RL和機器人結合的各種學習資料,當時廣為流傳的圖譜AI+Robotics華人圖譜其實草稿裡的名字就叫RL+Roboitcs華人圖譜。時隔一年半,我也想好好了解一下目前紛繁複雜的RL各種演算法和Robotics的結合。
今天這篇文章,我採訪了兩位在RL領域極具代表性的學者上海交通大學的張偉楠老師和蘇黎世大學的宋運龍博士,並結合播客:RL+Control 如何將機器人可靠性逼進99.9x%裡朱秋國、石冠亞、盧宗青、羅劍嵐的觀點整合了一篇RL+Robotics的深度科普。原本計劃將所有的觀點歸納整理成結論釋出,但又不想因為我的二次加工將被訪者的思考過程或者資訊丟掉,所以還是按照老樣子以訪談記錄的形式公佈。不同的嘉賓對某些問題的回答觀點可能會有重複,也請讀者見諒。
以下關於RL+Robotics的萬字長文,希望對你有用。
以下為本文目錄
👇

第一部分:張偉楠訪談記錄
1. Value-based RL vs Policy-based RL
2. Online/Offline RL vs On/Off-policy
3. Model based RL vs Model Free RL
4. Q-Learning
5. Sim2Real RL
6. 關於師生網路
7. RL+操作
第二部分:宋運龍訪談記錄
8. RL的分類
9. Value-based RL vs policy-based RL
10. on/off-policy是policy-based的分支嗎?
11. model-free RL vs model based RL
12. RL在無人機控制的特色
13. 無人機和操作任務中的感知問題
14. RL和MPC對無人機的控制
15. 無人機學術和應用的發展趨勢?
16. 可微引擎 vs locomotion
第一部分:張偉楠訪談記錄
張偉楠博士現任上海交通大學計算機系教授、博士生導師、副系主任,科研領域包括強化學習和資料科學,谷歌學術引用2萬餘次,於2011年獲得上海交通大學計算機系ACM班學士學位,於2016年獲得倫敦大學學院計算機系博士學位。張偉楠老師曾出版教材《動手學強化學習》和《動手學機器學習》。

在訪談的過程中感受到張老師對強化學習的理解非常深入,而且可以將複雜的知識用很生動的方式講解清楚。以下是我和張老師請教的關於RL分類的訪談記錄:
關於強化學習的分類有很多種方法,大致我們可以將其分類成以下幾類:基於價值函式的RL和基於策略的RL;Online RL和Offline RL;On-Policy和Off-Policy;Model-based RL和Model-free RL。
1. Value-based RL vs Policy-based RL
基於價值函式的RL(Value-based RL)方法是透過智慧體與環境多次互動,累積回報(Return),並計算期望值,這個期望值就是價值(value)。Value-based RL 透過學習價值函式來評估狀態和動作的優劣,智慧體基於這些評估來選擇動作。比如,Q-Learning,SARSA,DQN等就是基於價值函式的強化學習演算法。
Value-based Reinforcement Learning (基於價值的強化學習) 是強化學習中的一種方法,主要透過學習一個價值函式來指導智慧體的行為決策。該方法的核心思想是,透過評估每個狀態或狀態-動作對的價值(即“好壞”程度),來選擇最優的行動策略。在這種框架下,智慧體並不直接最佳化策略,而是透過學習一個價值函式來評估每個狀態的“價值”或某個動作在特定狀態下的“價值”,然後基於這些評估來選擇行動。
價值函式(Value Function)估計的是從某個狀態出發,智慧體未來所能獲得的累積獎勵的期望值。通常有兩種形式:第一種是狀態價值函式,表示在某個狀態下,智慧體能夠獲得的預期回報。第二種是動作價值函式,表示在某個狀態下執行某個動作,所能獲得的預期回報。
基於策略的RL(Policy-based RL)不依賴於價值函式,它直接最佳化策略。純策略方法較少見,常見的演算法有策略梯度方法(Policy Gradient),例如REINFORCE。
Policy-based RL 直接最佳化智慧體的策略,透過調整策略引數來最大化累積回報。與基於價值函式的強化學習方法不同,基於策略的方法不依賴於價值函式的估計,而是透過直接學習一個引數化的策略(通常是一個神經網路)來選擇最優動作。策略(Policy)是智慧體在某一狀態下選擇動作的規則,可以是確定性的(deterministic),也可以是隨機的(stochastic)。
除此之外,還有結合價值函式和策略的演算法,這類方法同時使用價值函式和策略來進行學習和最佳化。常見的結合演算法包括A3C(Asynchronous Advantage Actor-Critic)、A2C、PPO(Proximal Policy Optimization)、TRPO(Trust Region Policy Optimization)、DDPG(Deep Deterministic Policy Gradient)等,這些演算法都屬於“Actor-Critic”框架。這些方法在處理高維狀態和動作空間時表現尤為突出,適合一些需要高靈活性和連續動作空間的強化學習任務。
2. Online RL vs Offline RL vs On-policy vs Off-policy
Online和Offline,主要的區別在於智慧體訓練時是否即時與環境進行互動。Online RL 依賴於即時互動,而 Offline RL 則依賴於預先收集的資料。
On-policy 和Off-policy皆屬於Online RL,主要的區別在於是否使用與當前策略相同的資料來進行學習。On-policy 僅使用當前策略產生的資料來更新策略,而 Off-policy 可以使用其他策略生成的資料來學習。
Online RL,On-policy和Off-policy 都屬於線上學習的範疇,其中 On-policy 是完全的線上學習,是一種依賴環境互動的學習方式。Offline RL則是完全不同的概念,大約是在 2018 到 2020 年左右才出現的,它不需要和環境互動,而是基於已經收集到的資料進行學習,也就是脫離了環境的互動,速度相對較快。On-policy和Off-policy在學習時仍然需要和環境進行互動,唯一的區別是,On-policy 不使用資料快取池,而 Off-policy 則會有一個數據快取池。
為了方便理解,我經常用一個類比:on-policy就像是用自來水洗手,水從水管流出來經過你的手,這個水就是資料。這些水過了你的手之後會變髒,然後直接流掉,不再使用。如果水流太快,可能會浪費很多資料。
與此相對,off-policy 更像是有一個臉盆接水,你不是直接用自來水,而是透過臉盆把水接住,臉盆裡的水可以繼續迴圈使用。當臉盆裡的水滿了,最早期的水就會流出去。在off-policy 的方法中,資料被收集進快取池中,可以在不同的時刻重複使用。
Offline 則更進一步,這個水壓根就沒有從水管裡出來,就是一個臉盆,裡面預先裝好了水,你不斷的在臉盆裡洗手。就是根本不依賴於環境的即時互動,你不會從自來水管中直接取水,而是先收集好資料,之後在緩衝池裡反覆利用這些資料進行訓練。
這種設定是環境或者說任務決定你可不可以使用 on-policy 或 off-policy,或者是否只能使用 offline RL。例如,在玩遊戲的時候,遊戲引擎可以隨時讓你玩,產生無限的資料,這時你就可以使用 on-policy,因為資料採集是沒有限制的。但如果資料流得很快,導致很多資料被浪費,需要有個臉盆接住,這就是資料緩衝池,那麼你可能會選擇使用 off-policy 的線上學習方法。反之,如果資料採集很貴,哪怕一條浪費了都很寶貴,像在工廠車間裡,每條資料都非常寶貴,那麼就可能會選擇 offline RL的方法進行學習。
總結來說,如果資料非常稀缺且難以獲得,那麼就用offline RL;如果資料相對容易獲得,但也比較寶貴,那麼可以用off-policy,用資料緩衝池先把資料收集起來,如果池子滿了那麼最老的資料還是會被丟掉;如果資料可以無限獲得,那麼就可以讓它一直產生,就用on-policy
3. Model based RL vs Model Free RL
最開始時,許多人選擇使用基於模型(model-based)的方法,因為一旦建立了環境模型,智慧體可以在這個模型中自由操作。建立好環境模型後,可以進行動態規劃,或者在這個模擬環境中進行無限資料取樣,這些都不會干擾到現實世界。基於模型的方法適用於環境能夠完全建模並模擬的情況。很多經典的強化學習方法,如走迷宮、圍棋遊戲等,都是基於模型的。在強化學習中,所謂的“模型”一般都指的是環境的模型,即環境的動態模型,例如,Model Predictive Control(MPC)就是利用環境的動態模型進行規劃。說到model,我們幾乎不會說policy model,或者value function model,我們一般說的都是環境的model。
在強化學習中,環境模型通常包含兩部分:一是狀態轉移(state transition)函式,二是獎勵(reward)函式。更常見的是基於動態環境狀態轉移函式進行建模。建模完成後,相當於環境已經給你了,就可以利用環境模型進行動態規劃,這種方法的核心在於,透過學習模型來進行決策和規劃。
但是這種方法的問題就是通常對環境建模建的不準,結果可能並不理想。正因如此,像Rich Sutton和David Silver等人提出了model-free的方法,這個方法更依賴資料,通常不需要事先構建複雜的環境模型,而是直接從資料中學習。最典型的例子是Q-learning,的核心思想是學習價值函式(Q函式),它可以告訴智慧體在每個狀態下采取什麼動作是最優的。Q-learning不需要知道環境的動態模型,只要能夠收集到狀態、動作和獎勵的三元組資料,就可以進行學習。
這個過程其實可以透過一些具體的學習演算法來實現,比如時序差分學習(temporal difference learning)方法。差分學習方法中有兩種主要的方式,一種是on-policy方法,另一種是off-policy方法。
4. Q-Learning
Q-learning是一種“off-policy”方法,即它的訓練不必依賴於當前策略生成的資料(與“on-policy”方法不同)。例如,在Q-learning中,智慧體可以利用其他策略或者之前訓練的策略生成的資料進行學習。這使得Q-learning具有更大的靈活性,可以使用來自不同策略的資料來加速學習,而無需侷限於當前策略生成的資料。相比之下,“on-policy”方法則要求智慧體只能使用當前策略生成的資料進行學習。
Q-learning的優勢在於它去掉了傳統強化學習中的“重要性取樣糾偏”問題。傳統的“off-policy”方法需要對使用他人策略生成的資料進行修正,而Q-learning透過一個簡單的更新規則,能夠在不用糾偏的情況下使用其他策略的資料。
在實際應用中,Q-learning方法的一個顯著優勢是它可以基於資料驅動進行學習,而不需要構建複雜的環境模型。智慧體只需收集狀態、動作和獎勵資訊,就能夠直接學習Q函式,就可以得到最優的策略。這樣,Q-learning方法不需要對環境的狀態轉移機率或獎勵分佈有明確的瞭解。
Q-learning 最初由 Chris Watkins 在 1989 年提出,它的主要優勢在於無需環境模型,透過與環境的互動學習最優策略。1990 年代到 2000 年代初期,Richard Sutton 等學者幫助推動了 Q-learning 演算法的普及。2013 年,DeepMind 的研究人員David Silver 提出了 Deep Q-Network (DQN),他是深度強化學習的早期推動者之一,他的最大貢獻之一是將Q-learning與深度神經網路結合,提出了 Deep Q-Network (DQN),使 Q-learning 成為深度強化學習(Deep Reinforcement Learning, DRL)的核心演算法之一。DQN 的出現使 Q-learning 不再侷限於簡單的狀態空間,打破了強化學習在高維資料處理(如影像輸入)上的瓶頸。
當時,David Silver 在 UCL(倫敦大學學院)工作時,他不斷向倫敦的公司推銷自己提出來的 Model-free 強化學習方法。然而,初期並沒有得到太多關注。很多人不理解他的方法,認為如果不對環境進行建模,直接依賴資料學習是不可行的。大家習慣了透過建模來描述環境,尤其是在小資料時代,人們更傾向於透過建模環境並採用動態規劃來解決問題。
但是,隨著大資料時代 的到來,David Silver 的方法開始顯得更為可行,因為資料量的增加使得基於資料驅動的學習變得更加可靠。儘管他在回到 UCL 後沒有立即獲得廣泛的認可,他依然堅持自己的理念,不斷推進 Model-free 方法的發展。
後來,隨著深度學習的崛起,這種基於資料的深度強化學習演算法也獲得了巨大的突破。深度神經網路的強大表達能力使得 Q-learning 這樣的演算法能夠處理更加複雜的任務。當 Q-function 被深度神經網路(如 CNN 或 AlexNet)所表示時,它能夠自然地從大量資料中學習,從而進行更加精細的最佳化。
這種方法與傳統的演算法相比有著巨大的差異:以前的演算法依賴於手動建模和有限的資料,而透過深度學習,Q-learning 能夠自動從海量的資料中進行學習和改進,最終實現了Atari 遊戲等複雜任務中的成功應用。這也標誌著深度強化學習(Deep Reinforcement Learning)邁向了一個全新的高度,打破了過去的限制。
總之,基於模型的方法和無模型的方法各有優劣。基於模型的方法可以透過模擬和規劃提前預見未來狀態,而無模型的方法則更依賴於資料的積累和學習。隨著深度學習的突破,Q-learning等“model-free”方法逐漸成為主流,特別是在處理複雜的、高維度的環境時,它們表現出了巨大的優勢。
5. Sim2Real RL
以前,機器人並沒有什麼Sim2Real問題,就是因為現在它要學習了,才需要Sim2Real。對於強化學習而言,使用它來訓練機器人進行運動或操作在以前是不奏效的,所以幾乎無人嘗試,原因主要有兩點。
第一,強化學習需要大量資料。由於其試錯性質,強化學習非常依賴智慧體與環境的互動過程來獲取有意義的資料。這與有監督或無監督學習不同:有監督學習可以直接利用預先標註的資料,無監督學習則可以從大量無標籤資料中提取模式,但強化學習必須透過互動來獲取可用於學習的高價值資料。
第二,機器人策略的部署需要考慮真實環境的本質。即便在模擬環境中策略看似有效,但如果互動資料量不足,策略就無法成功遷移到真實機器人上,尤其是在行走、跑跳等 locomotion 場景中。若缺乏充分訓練,機器人可能頻繁損壞裝置,而在實際場景中摔壞十臺甚至上百臺機器人是不可接受的。因此,這類任務通常只能在模擬環境中進行訓練。
然而,模擬器本身也存在侷限性。它們通常基於預設的方程執行,難以完美模擬真實環境,尤其當涉及接觸(如機器人腿接觸地面)或碰撞時,這種模擬的準確度往往非常有限。這種模擬與現實之間的差距被稱為 reality gap(現實差距)。
為了讓強化學習策略在模擬環境中得到高效訓練並能夠成功跨越 reality gap,就產生了Sim2Real的技術,目前主要有兩種解決方案。第一種領域隨機化(Domain Randomization),在訓練時,透過在多個維度上隨機調整環境引數,使模擬環境涵蓋儘可能大的變化範圍。如果策略能在這些波動範圍內保持有效,那麼它在真實環境中的表現也會更加穩健。當前,大多數機器人(如四足機器人和工業機器人)都採用此方法;第二種領域自適應(Domain Adaptation or Policy Adaptation),這種方法結合真實環境的資料,使策略適應真實環境。具體來說,訓練過程的大部分(約 95%)仍然在模擬環境中進行,只有約 5% 的訓練資料來自真實環境,用於幫助策略適應真實環境。然而,在真實環境中收集資料依然面臨很多挑戰,比如噪聲較大,以及資料質量問題可能導致策略完全失效。
為了應對這些挑戰,有些領域自適應方法會在真實環境中收集資料後,調整模擬器中的引數,使模擬環境更接近真實環境。雖然這無法徹底解決所有問題,但相對可靠,且是目前被廣泛採用的一種方案。
6. 關於Teach-Student Learning
做domain randomization,一個policy需要在很多環境裡都work,舉例來說,如果是機器狗(盲狗),它並不知道自己前面半米的地形具體是什麼,只能“摸著”走。我們現在訓練的盲狗就是摸著走:對它來說,地形是非穩態的,因為它不知道當前地形具體是什麼,也不知道自己邁了腿之後會發生什麼。它獲得的觀察(local observation)大多隻來自四條腿的主體感測器,這些資訊本身並不夠全面。
但如果你的資訊是帶有“作弊”成分的——也就是說,在模擬環境裡,你能看到周圍一個一個格子裡所有的地形,那麼對你來說,環境就“白盒”了,你可以很快訓練出一個策略。這時候我們就稱這些“作弊資訊”為特權資訊(privilege information)。為什麼這麼叫?因為在模擬裡,你能看到所有資訊,等於開了全圖,所以很容易就學到該怎麼走。
這樣做就可以先訓練出一個 teacher(teacher policy),它打開了全域性資訊(全圖),知道怎麼走。接著,你要想辦法把這個 teacher 蒸餾到只能用 local observation 的 student policy 裡。也就是說,在實際中,學生並不知道為什麼要在某個時候邁腿,但由於老師教了它此刻需要這麼邁,它也就能做出正確的動作。老師之所以知道什麼時候要邁腿,是因為它能看到前面其實有一塊石頭,所以應該往後邁一步——就是這麼個道理。
一般來說,都是先讓老師去學,學成之後,它就可以把自己看到全域性資訊的策略拿來指導學生。老師的策略會告訴學生:“這個時候往那邊走”“那個時候怎麼動”,透過一種迴歸的方式去教學生。
7. RL+操作
如果你的機器人任務就是一個路徑規劃任務——比如先做路徑規劃再做路徑執行,那麼它其實根本就不太需要RL。做 CV(計算機視覺)的同行喜歡先透過視覺把環境理解清楚,然後再做路徑規劃,接著就是路徑執行,就結束了。這種情況下確實不太需要額外的複雜操作。
這裡面一個關鍵點在於:當機器人和環境互動時,是否需要高頻的、需要即時動態把握的事情。如果沒有,那你就還是一個路徑規劃就夠了,路徑規劃加執行就行。
舉個例子,比如說“疊衣服”這個任務。如果你只是走路徑規劃的思路,在執行過程中,兩個機械臂移動時,衣服只是自然地垂在上面,靠重力把衣服合攏,你的移動速度基本和疊衣服本身沒有強關聯——不管你是移得快還是慢,衣服都還會垂在下面。這就是“靜態執行”。
但如果你有一些任務需要把衣服甩起來,做一個動態的動作(dynamic action),這種就得上RL。比如像機器狗走路,它本身就是動態的,不可能給每條腿做一個路徑規劃然後再執行,因為腿動得非常快。這種動態性是完全不同的路線,這也是為什麼 locomotion(行走、奔跑等)很早就被研究並快速做出來,就是因為它很講究動態控制。
我們再來看“操作”這個概念。如果只是簡單地“夾一下”,可能需要關注的就比較少,變化速度不會那麼快。那在這種情況下,你根本不在乎什麼過程,你只要設定一個指令,比如 0 和 1,就是“放開”和“夾住”,這種就不太需要RL。現在很多操作都是 0 或 1 的簡單動作,比如一個夾子“咔”一下就完事了,屬於比較早期的場景,也不怎麼需要玩兒太多花樣。
但未來,如果是靈巧手的應用會越來越多,那手上的那些靈活動作就需要用RL,來做非常精細的把握。因為真正要做那些靈活細膩的操作,往往就需要很高頻率的動態控制,遠超出簡單的 0/1 動作。
第二部分:宋運龍訪談記錄
宋運龍博士是蘇黎世大學資訊學系機器人與感知小組、以及蘇黎世大學與蘇黎世聯邦理工學院聯合成立的神經資訊學系,由Davide Scaramuzza教授指導的博士生。在攻讀博士期間,他曾在麻省理工學院的仿生機器人實驗室與Sangbae Kim教授合作研究。在攻讀博士之前,他在達姆施塔特工業大學(TU Darmstadt)獲得了碩士學位,其導師為Jan Peters教授。
(宋運龍博士學術生涯的幾位指導老師都是大名鼎鼎,Davide Scaramuzza是RL+無人機領域的大牛,Sangbae Kim則是MIT Cheetah知名教授,Jan Peters和他的老師Stefan Schaal這一派學術傳承是歐洲機器人學習最重要的分支,同時Jan Peters也是著名的論文Reinforcement Learning in Robotics: A Survey的通訊作者。)
在加入蘇黎世大學之前,宋運龍做了相當多的理論研究,隨後又進行了應用方面的探索,將強化學習應用到無人機控制領域。讀博期間,他開始接觸傳統控制,尤其是基於最佳化的最佳化控制,發現這個方向非常有意思,便系統地進行了學習。博士期間,他的研究主要圍繞最佳化控制和強化學習這兩大理論基礎展開,並在此基礎上做了進一步的探索與應用。他開發了Flightmare模擬器,並設計了第一個能夠推動超級敏捷無人機在物理世界中達到極限效能的強化學習策略。在進入關於機器人強化學習分類的科普訪談前,讓我們先看一段宋運龍博士用強化學習做的無人機競速。
8. RL的分類
在理論層面上,其實並沒有太多真正全新的內容,更像是“新瓶裝舊酒”。在深度學習出現之前,傳統的強化學習已經探討過如今常見的各種分類方法。具體如何分類,主要取決於你從哪個角度切入。
第一種分類是從最高層次來區分:可以將強化學習分為“深度強化學習”和“非深度強化學習”,兩者的差別在於是否運用了深度學習技術。
第二種分類可以基於“value-based”和“policy-based”來劃分。例如,AlphaGo 代表了一種典型的基於 value-based 的深度強化學習方法。而在機器人領域,目前較常見的則是基於 policy-based 的深度強化學習。當然,也有將 value 和 policy 相結合的混合(Hybrid)方法。
第三種分類與on-policy/off-policy相關。我不確定你所說的 online/offline 是否就是指 on-policy 和 off-policy,但這確實是另一種常見的分類方式。在強化學習中,常見的“online”概念指的是即時與環境互動並更新引數,但在實際應用中,這種完全線上的方式並不多見。更多討論的則是 on-policy 與 off-policy 的區別。on-policy:用於更新策略(policy)的資料來自當前正在學習的這條策略本身就叫on-policy。off-policy:用於更新策略的資料來自其他策略或其他來源,而非當前策略,這種叫off-policy。
二者各有優缺點,on-policy 方法通常需要更多的樣本(samples),因為每次只能使用當前策略採集到的資料;off-policy 方法可以重複利用歷史資料或其他策略收集的資料,因此對樣本的需求相對較小,也更具資料效率。
在前面提到的 value-based 和 policy-based 分類中,多數 value-based 方法(如 DQN)往往是 off-policy;多數 policy-based 方法(如 PPO)一般是 on-policy。這就是第三類分類方式:根據取樣資料的來源劃分為 on-policy 和 off-policy。
第四類分類被區分為 model-based 與 model-free。Model-free是無需顯式學習環境模型,直接透過與環境互動來最佳化策略。Model-based是先學習(或構建)環境模型,然後基於該模型來採集資料或直接對策略進行最佳化。
除此之外,還可以再分出另一類:Reinforcement Learning (RL) 和 Inverse Reinforcement Learning (IRL)。後者主要關注如何從資料中學習出一個合理的獎勵函式(reward function),以解決在 RL 中難以設計獎勵函式的問題。
在機器人領域,我們通常會使用 PPO 這一類 on-policy 的演算法,因為機器人控制訊號多為連續空間,而離散動作空間(如棋類)常採用基於 value function 的方法。policy-based 方法在連續控制場景下更適用,因此也逐漸成為主流。
大約在 2019 年前後,隨著 GPU 等硬體效能的提升和各類開源工具的湧現(如 OpenAI 提供的 Stable Baselines),PPO 的應用變得更加便利,只要資料量足夠,就能取得良好效果。
因此,越來越多的機器人研究都採用了 PPO 等 policy-based 方法。而在此之前,各實驗組往往根據自身條件或已有程式碼來決定使用何種演算法。如今,PPO 幾乎成為機器人強化學習的“標配”演算法。但基於 Value-based 的方法,比如 SAC(Soft Actor-Critic)這類 off-policy 演算法,它在理論上需要的資料量更少,但在實際使用中要想獲得良好效能並不容易,雖然GPU可以給到它資料量,但它沒有辦法處理這麼多的資料,會導致訓練這類off-policy的方法訓練速度更慢。換句話說,這類 off-policy 演算法雖然資料需求相對更少,但訓練週期往往會變長,也因此在實際使用中並沒有想象中那麼普及,使用者也相對較少。
9. Value-based RL vs policy-based RL
我的理解是,這主要取決於我們如何最佳化目標函式。在 Value-based 方法裡,我們通常從底層推匯出 Bellman 函式,最後要最小化 Bellman Error 或者 TD Error;透過最小化這個量,就能進行 Value-based 強化學習。
相比之下,Policy-based 方法則主要透過 Policy Gradient 來最佳化一個 Reward 函式,目標是最大化這個 Reward。也就是說,Value-based 方法是圍繞最小化某種誤差(例如 TD Error)來展開,而 Policy-based 方法則是直接最大化累積回報。從這個角度看,兩者本質上是針對不同目標函式的最佳化過程。
其實並不是完全按照‘Value-based 適用於離散控制,Policy-based 適用於連續控制’這樣來區分。就拿 SAC(Soft Actor-Critic)為例,它也能很好地解決連續控制問題,而 Policy Gradient 同樣可以應用在離散動作空間。
只是從最初起源的角度來看,Policy-based 方法更多被用在連續動作領域,Value-based 方法更多應用於離散動作領域。但是隨著神經網路的出現,我們可以用近似函式來解決各種不同的問題,所以這兩種方法之間最初的分界線也變得越來越模糊了。
10. on-policy vs off-policy是policy-based的分支嗎?
不是,在強化學習中,on-policy 和 off-policy 是一個整體的分類概念,並不單純對應於 Value-based 或 Policy-based,value-based裡面很多是on-policy。
on-policy指的是用來更新當前策略(policy)所使用的資料,全部都來自於當前策略本身的取樣過程。也就是說,在 on-policy下,一旦使用完收集到的資料,通常就會拋棄,不再反覆使用;因此這類方法往往資料需求更大。
off-policy則允許用任何方式收集到的資料來更新當前策略。這些資料可能來自人工示教、舊版本的 Q 函式取樣,或者其他策略取樣等。off-policy 演算法的一個明顯特徵是使用了 Replay Buffer,可以反覆地從中取樣資料來更新策略,因而資料利用率更高,訓練也更高效。
此外,Value-based 方法中確實常見 off-policy 演算法,但不能簡單地說“Value-based 就等於 off-policy;Policy-based 就等於 on-policy”。這兩組概念在強化學習中是不同的維度。
11. model-free RL vs model based RL
Model-free 和 Model-based 之間的區別非常直觀:是否在演算法的最佳化過程中顯式地使用了環境模型。如果使用了模型,就屬於 Model-based;如果沒有使用,就屬於 Model-free。
不過,這裡說的‘是否使用模型’也有一定的複雜性。例如,許多 Model-free 方法也會使用模擬器來採集資料,但只要該模擬器沒有被直接用於策略梯度計算或策略最佳化中,就依然屬於 Model-free。
比如 MPC(Model Predictive Control)演算法會用到一個顯式模型,透過它來計算梯度或進行預測,並把結果直接用於最佳化過程,因而是地地道道的 Model-based 方法。
另一方面,Model-based 與 MPC 之間也有細微差別,主要看‘模型’的來源和用法:在 MPC 中,通常假定模型是已知的或透過物理推導(First-Principle)得到的。而在一些其他 Model-based RL 方法中,模型可以透過資料來學習(例如用神經網路去逼近環境動力學)。
不同的 Model-based 方法也會基於不同的最佳化思路。比如,可以借鑑 MPC 的線上滾動最佳化方式,用模型進行取樣或預測;也可以採用基於梯度或者非梯度的搜尋方法。所有這些差異都體現在‘如何在策略最佳化的過程中具體使用環境模型’這一點上。
有些 Model-based方法並不僅僅學習一個環境動力學模型(Dynamics Model),它可能同時還學習一個獎勵模型(Reward Model)以及一個價值函式(Value Function)。例如在一些論文(如 Dreamer、PlaNet)中,他們會把這些模型一併學習:先學到環境動力學、獎勵模型和價值函式,然後再基於這些模型進行線上最佳化。
不過,僅靠學到的模型本身並不能直接告訴我們該採取什麼動作,因此還需要一個方法來確定最優動作。通常的做法是採用類似線上 MPC(Model Predictive Control)的方式,直接在學到的模型上對一系列候選動作進行取樣或預測,評估它們的長期回報並選取最優動作。這樣就實現了在模型之上的規劃與決策,這是當下較常見的一種方式。
如果我們只學習了一個 Value Function,而沒有學習 Dynamics Model,那更像是做一個迴歸任務,和是否使用模型(Model-based 或 Model-free)關係並不大。只有在做線上最佳化、尋找最優動作時,才真正涉及到強化學習的部分,因為這時我們需要透過 RL 的方法來更新策略引數、決定具體動作。
現在的許多論文,作者可能並沒有對這些概念(Model-based、Model-free、RL 最佳化等)進行嚴格區分,比如說某些工作號稱是 ‘Model-based’,但實際上它依舊是 Model-free,或者它與真正的強化學習並不搭界,這種誤用的例子並不少見,所以在閱讀論文時也要多加留意,避免被誤導。
在目前的 Locomotion(機器人運動)領域,至少有 80% 的效果較好成果都來自於 Model-free 方法。Model-based 方法的表現普遍不夠理想,因為要精確學習環境模型(Dynamics Model)本身就很困難;即便得到了模型,還要在此模型基礎上進一步最佳化策略或動作,這個過程同樣不容易。
有些 Model-based 演算法同時還要學習獎勵函式(Reward Model)和價值函式(Value Function),它們各自都會帶來一定的誤差,這些誤差疊加後往往導致效能不如直接採用 Model-free 方法穩定。儘管 Model-based 理論上能以更少的資料量完成學習,但實際的最佳化難度要更高,尤其是在如何利用學到的模型來計算最優動作這一環節上。
目前大家對Model-based RL有一種‘理想願景’是,如果我們可以先從少量資料中學到一個環境模型(Model),那麼就能,第一,減少真實環境與模擬環境的差距(Sim-to-Real Gap):因為我們直接用真實資料來訓練模型,而不是人工手動編寫模擬器;第二,降低樣本需求:有了模型以後,在學習具體策略(Policy)時,或許只需要少量新資料就能完成最佳化;第三,複用性:同一個學到的模型不僅能應用於當前任務,還能在更改 Reward 函式或目標任務時再次使用,從而極大提高效率。
不過在現實中,這種優點往往並未完全體現出來。因為目前常見的方法還是透過手工編寫的模擬器(Simulator)來生成資料,而這個模擬器和真實環境之間不可避免地存在差異。此外,把在模擬環境中學到的策略部署到真實環境時,也面臨很多挑戰。如何有效地橋接這兩者,仍是一個亟待解決的問題。
12. RL在無人機、locomotion和操作裡的應用有什麼區別
我個人並沒有在機器人操作(Manipulation)領域做過實際專案,所以只能提供一些主觀看法。與無人機或機器人移動(Locomotion)相比,操作任務有著根本性區別:
首先,關注物件不同。在無人機或 Locomotion 領域,機器人最主要關注的是自身本體的狀態,例如自身姿態、關節角等,環境因素(如地形)雖然也重要,但相對來說關注度較低。而在 Manipulation 中,環境起著至關重要的作用;不僅需要知道機械臂(或機器人手)自身的位置和姿態,還必須對環境中的各類物體有相當深入的理解。
其次,環境多樣性。在 Manipulation 場景下,每新增或更換一種物體(如形狀、重量、材質不同的杯子或工具),都可能顯著影響抓取策略。換言之,為了在通用情形下實現抓取,機器人需要在感知層面具備對環境的“通用理解”,包括物體的幾何形狀、重量、物理特性等。因此,有人認為,如果能真正解決通用抓取(General-Purpose Manipulation),幾乎就解決了“AGI”中的一個核心難題,因為這要求對環境中各種不同的未知物體有極強的感知和理解能力。
再次,核心挑戰在於感知(Perception)。從機器人要“看見”並“理解”物體的形狀、重量、材質,到根據這些資訊規劃抓取方案,感知與認知層面的難度遠遠超出簡單的控制問題。比如,如果已經知道目標物體的重量、形狀等資訊,那麼“抓起物體放到指定位置”這個控制環節本身並不複雜,甚至可能不需要強化學習或複雜的神經網路。
最後,對大模型的期望。當前有很多期待是:藉助大模型來提供更高層次的環境理解,包括對物體特性的推理和場景認知等。一旦這部分環境理解得到有效解決,執行抓取動作本身就變得相對簡單。
綜上,對於機器人操作(Manipulation)而言,真正的難點並不完全在控制層面,而更多在於對環境(尤其是未知物體)進行準確感知與建模。正因為此,如果僅僅在模擬環境中進行訓練,到了現實世界,仍會面臨大量無法預測的環境變化與物體差異,這也是當前通用抓取任務尚未被完全攻克的重要原因。
在機器人操作(Manipulation)場景中,除了對環境物體進行感知與理解(Perception & Understanding)這一核心挑戰外,還需要考慮到長時間序列的任務規劃(Long-horizon Task Planning)。例如讓機器人在廚房裡完成做菜,或者讓機器人自己繫鞋帶,都需要多個步驟的分解與先後順序的安排。
這一類複雜任務很難像無人機從 A 點飛到 B 點那樣,用相對簡單的數學公式直接表達並設計獎勵函式。要把‘如何做飯’或‘如何繫鞋帶’這樣高度抽象的過程,轉化成明確可量化的目標和子步驟,本身就十分困難。
因此,相較於傳統的短時、可量化任務(如定點導航),在操作領域的長時規劃和任務拆分需求,使得問題建模(Problem Formulation)獎勵設計(Reward Design)都變得相當棘手。這也解釋了為什麼在現實世界的 Manipulation 任務中,我們往往還需要更多關於感知、理解、規劃等多方面的技術突破。
13. 無人機和操作任務中的感知問題
無人機競速、機器人抓取(Manipulation)以及自動駕駛等任務,其感知需求和複雜度並不在同一個量級。以無人機競速為例,需要感知的主要是當前位姿、環境障礙物等,而在抓取任務中,機器人不僅要感知物體在空間中的位置和形狀,還要理解其物理屬性,比如物體材質、重量等,因為抓取過程中需要與物體本身發生互動。
相比之下,自動駕駛所需的感知主要是識別道路、行人、其他車輛及交通標誌等,這些目標大多處在‘已知’的類別中。即便出現少量未知物體,通常也可以簡單歸類為障礙物。而在機器人抓取中,每新增一個物體,系統都需要更深層次地理解和適應,從而帶來更大的感知挑戰。
因此,雖然上述任務都離不開感知,但抓取任務的感知難度要遠高於導航、無人機競速或自動駕駛等場景:它不僅要感知物體‘是什麼’,還要理解‘它的物理屬性和互動方式’,這就是為什麼 Manipulation 的感知難度被普遍認為更高。
14. RL和MPC對無人機的控制
那篇論文顯示強化學習在無人機競速(或類似任務)中優於傳統的 MPC(Model Predictive Control),但實際上,MPC 對於絕大多數‘可輕鬆規劃軌跡’的任務仍然足夠勝任。只有當任務無法容易地被分解為顯式軌跡跟蹤時(比如競速任務沒有軌跡可以跟蹤),強化學習的優勢才更明顯。
一個典型例子是Locomotion任務。在強化學習出現之前,常見做法是先規劃好軌跡,再讓機器人按此軌跡執行。但強化學習方法可以讓機器人根據即時情況靈活決策,而不必嚴格跟隨固定軌跡。當機器狗踩到不規則石頭時,它可以自發地調整身體姿態或腿部動作,而不是侷限於預定的運動軌跡;這使得強化學習在一些未知或複雜環境下表現出更高的適應性與自主性。
另一方面,如果要讓機器人執行諸如‘做菜’這類複雜任務,無法用簡單的數學公式或可微分的代價函式直接描述。在這種情況下,強化學習可以根據更靈活的獎勵訊號來最佳化策略,而傳統的 MPC 通常需要一個可微、可解析的目標函式,因而無能為力。
換言之,強化學習在長時序、難以規劃或難以設計可微目標函式的任務中更具優勢;而 MPC 在短時序、可輕鬆規劃的任務中依舊具有高效、穩定的表現。
在無人機以及Locomotion這類任務中,為強化學習(RL)找到合適的應用場景往往更容易,因為問題本身通常可以被相對簡單地建模,例如‘從 A 點到 B 點’。
不過,無人機競速任務之所以更有挑戰,在於除了從起點到終點外,還需要考慮速度最大化、避障(如穿越特定門框)、門框的透過順序等要素。儘管如此,這些目標仍能較容易地轉換成一個可明確定義的獎勵函式,因而在強化學習的框架下也相對好建模。
15. 無人機目前已經很成熟,目前學術和應用的發展趨勢是什麼?
無人機未來的目標與自動駕駛類似:在給定一個高層任務後(如送貨、巡檢、滅火等),無人機能夠完全自主地執行任務。技術上,目前雖未達成‘完全自主’(類似自動駕駛的 L5 級別),但已有企業(如美國的 Skydio)在做高水平的自主飛行,能實現相當程度的自主性。
目前的無人機行業在產品化與市場佔有方面具有明顯優勢,但從其現有產品來看,在無人機自主飛行的核心演算法上或許還沒有達到最頂尖的水平。尤其是基於視覺(Camera)的自主飛行,仍存在較大的技術挑戰與發展空間。相比之下,基於雷射雷達(LiDAR)的感知在精度和演算法設計上相對更容易,但視覺方案若能突破,則可在無人機應用領域帶來更多可能性。
16. differentiable simulation vs locomotion
之所以選擇做這個 Locomotion 任務,是因為當時在 MIT 交流時,那個團隊正好在研究 MIT Mini Cheetah 等機器人。其實用常規強化學習來解決 Locomotion 已經相對成熟了,我當時的想法是嘗試不同演算法,對同一個問題進行多角度探索。
在這過程中,我們提出了一些新思路:如果有一個可微分(Differentiable)的模型,那麼就能透過這個模型直接獲取梯度,訓練策略時效率可能提升十倍甚至上百倍。不過由於 Locomotion 任務的資料採集成本並不算特別高(從一兩分鐘縮短到十幾秒可能並沒有本質差異),因此實際中人們對這種‘額外的高效率’並不十分在意。
但我仍然覺得這個方向值得研究,尤其是當輸入是高維度的視覺資訊時,單純依賴強化學習往往難以勝任。因此現在常見的一些做法,如‘Learning by Cheating’(先給一個擁有更完整或特權資訊的 Teacher 策略,再做模仿學習),也是因為目前直接用端到端強化學習去處理視覺輸入,難度依舊很大,模擬能力也有限。
在24年12月末的部落格裡,也有大量關於機器人裡RL的探討。因為涉及引用的問題,我們僅提取一些觀點,詳細的內容可以參看之前的問題整理播客:RL+Control 如何將機器人可靠性逼進99.9x%
“RL以及Control本身都算不上是一種方法,而應該是一個問題。RL和Control之間的的差別甚至比強化學習(RL)內部不同型別之間的差別還要大。強化學習的定義就是有一個馬爾可夫決策過程(MDP),包含獎勵(Reward)和系統動態特性(Dynamics),目標是最佳化獎勵,找到策略用於控制,這和Control本質上是一回事。其定義就是面對動態系統去設計策略以滿足一些限制,不能因為Richard Belleman提出“SARS”這套表述就說它們不同。
Richard Bellman 提出的“S, A, R, S”是強化學習中馬爾可夫決策過程(MDP)的一種表述方式,其中:S (State):表示系統的狀態,描述了環境或系統在某一時刻的情況。A(Action):表示代理(如機器人)在當前狀態下可採取的動作。R(Reward):表示系統在某一狀態下采取某一動作後獲得的獎勵,通常用來衡量行動的好壞。S'(Next State):表示採取某個動作後,系統轉移到的下一個狀態。這個框架是強化學習的核心,用於描述在不同狀態下,代理透過採取行動獲得獎勵,並根據獎勵調整行為,以達到最佳化某種目標的策略。
說到 Locomotion,目前在這方面最流行的RL方法就是模擬到現實強化學習(Sim2Real RL),就是先在虛擬模擬(Simulated)環境裡,運用近端策略最佳化演算法(PPO)或者其他類似的演算法去訓練出一個策略,之後再把這個策略部署到現實世界當中去。我認為 Sim2Real RL是一種基於模型(Model-based RL)的方法你想想它的操作流程就能明白,首先得有一個你比較信賴的模型,比如模擬器(Simulator),然後在這個模擬器裡訓練出一個策略(Policy),之後再把這個策略部署到現實(Real world)當中。
Sim2Real RL優勢一是比MBC有更強的離線計算能力,Sim2Real RL優勢二是可以繞開狀態估計問題。拿目前在 Locomotion方面最成功、最流行的邏輯來說,師生網路學習(Teacher Student Learning)。自2020Science Robotics釋出論文Learning quadrupedal locomotion over challenging terrain之後,大概有幾千篇文章都遵循這個邏輯,一直到現在,差不多5年時間把師生網路學習推到了頂峰。就是因為有這種師生學習框架,所以繞開了狀態估計(State estimation)這個問題。
無模型強化學習(Model free RL)和Control解決的其實是相同的問題,面臨的數學問題也是一樣的,只不過解法不同罷了。”
References:
張偉楠主頁
https://wnzhang.net/
宋運龍主頁
https://yun-long.github.io/
無人機競速論文:
Reaching the Limit in Autonomous Racing: Optimal Control versus Reinforcement Learning
https://yun-long.github.io/publication/song-2023-science/
四足狗的可微分引擎:
Learning Quadruped Locomotion Using Differentiable Simulation
https://yun-long.github.io/publication/song-2024-rss/
原創不易,歡迎“點贊”“打賞”“在看”三連
也歡迎加我微信交流!


相關文章