# 皮特·阿比耳：深度強化學習

> 深度強化學習研究者講解機器人學習、模擬到現實遷移與樣本效率的難題。

- 原標題：Pieter Abbeel: Deep Reinforcement Learning
- 期數：特別節目
- 釋出日期：2018-12-16
- 嘉賓 / 主題：皮特·阿比耳
- 網頁版：https://lex.qiaomu.ai/tw/ep/pieter-abbeel/
- 官方頁面：https://lexfridman.com/pieter-abbeel/
- 精讀字數：約 6482 字（閱讀約 14 分鐘）

> 本文為 lex.qiaomu.ai 基於原始訪談的 AI 改寫中文精讀，非官方翻譯；引用請註明出處並連結網頁版。

OpenAI 有一隻單腿機器人，學會了後空翻。整個過程裡沒有人給它寫過“後空翻”這條獎勵函式，也沒有人告訴它目標是什麼。它只收到一類訊號：人看完它剛才那段動作，說這次比上次好，或者說這次不如上次。

幾十次比較之後，它翻出一個乾淨的後空翻。皮特·阿比耳（Pieter Abbeel）講這件事時，把它當成強化學習最迷人的地方：人的心裡裝著一個目標，機器人對那個目標一無所知，兩邊靠“更好”和“更差”這兩類偏好訊號，最後收斂到了同一個動作上。阿比耳是伯克利機器人學習實驗室的主任，深度強化學習這條線上最核心的研究者之一，也是讓機器人學會抓取、飛行、操作的代表人物。

這件事的另一面，是強化學習今天最大的瓶頸。絕對分數難拿，相對偏好好拿。讓人給一段動作打 1 到 10 分，他會猶豫半天；讓他比較兩段影片哪段順眼，他脫口而出。OpenAI 的保羅·克里斯蒂亞諾（Paul Christiano）和同事做出的結果證明的就是：把打分換成比較，樣本效率能好一大截。

## 讓人形機器人打贏費德勒，卡在硬體還是軟體

訪談從一個玩笑開始：什麼時候能有機器人自主打贏費德勒？阿比耳把這問題拆成兩半。在 AI 的很多難題裡，缺的只有軟體，可這件事上硬體同樣差得遠。波士頓動力的機器人開始接近了，但離“繞著球場跑動再揮拍”還早。他的估計是硬體還要 10 到 15 年。他特意提到場地：紅土要滑步，可能比草地更難。

如果不強求人形，允許輪式底盤和特殊設計，時間會提前。揮拍這件事他反而樂觀。球機在一側發球，機械臂在另一側揮拍，用強化學習加上一點模擬裡的預訓練，他覺得可行，只是不知道能做到多高的精度。人類選手能把球打在邊線上，還帶旋轉。強化學習能不能學會給球加旋轉，他說這問題把他問出興趣來了。

> “你把我問有興趣了。”（皮特·阿比耳）

## 明知道里面沒有學習，人還是會喜歡它

物理世界裡最震撼阿比耳的，還是波士頓動力那些影片：跑上樓梯、做 parkour。他說不知道底下有多少是硬編碼的，但光是身體層面的運動能力就已經很驚人。他在傑夫·貝索斯（Jeff Bezos）組織的 Mars 活動上見過 SpotMini，它在場上到處溜達，貝索斯一離開房間，它還得跟著走。今年早些時候他和 Spot 一對一待過一段時間。明知道里面沒有多少學習，明知道原理，心理上還是會產生某種連線。

更極端的例子是 Pepper。在一場 Fidelity 組織的活動上，Pepper 被指令碼化去主持幾個環節，還被指令碼化出一點小孩的性格，會突然插話，也像人一樣搶著參與。阿比耳說那百分之百是寫死的指令碼，他還是很難不把它當成一個“人”。

實驗室裡還有 BRETT，全稱是 Berkeley Robot for the Elimination of Tedious Tasks。所有人一律叫“他”，不叫“它”。一個性別代詞，就讓它在心理上更像人。

那這種心理能不能寫進獎勵函式？阿比耳說，如果能把“讓人喜歡和它相處”形式化成一個目標，強化學習沒有理由學不會，也沒有理由不會自己變得越來越像人，或者像寵物。難點在於怎麼拿到那個訊號。數字形式的評分很難，比較形式的好惡卻很容易：一個人說“你剛才那五分鐘比前五分鐘舒服多了”，這句話就已經是一個可用的獎勵。

## 一百步動作換來的 3 分，能說明什麼

阿比耳提到自己剛翻開薩頓（Sutton）和巴託（Barto）那本強化學習教材時的感受：這看起來像魔法，像是智慧本身的定義。

稀疏獎勵下的學習為什麼可能？他先講了反面。正因為訊號這麼弱，強化學習才需要海量樣本。設想連續做一百個動作，第一次拿到 3 分，第二次拿到 2 分。單看這兩個數字毫無意義，但兩條軌跡之間有了相對關係：第二次那一百個動作整體上不如第一次。兩條軌跡裡都混著好動作和壞動作，分不出來是哪個起了作用。所以只能靠大量經歷，把“一貫和好結果同時出現的動作”和偶然的噪聲分開。

然後策略梯度做的是一件很簡單的事：讓高獎勵時經常出現的動作更可能發生，讓低獎勵時經常出現的動作更不可能發生。聽起來過於樸素，但它在實際任務裡學到的東西，比紙面推演能解釋的要多。

## ReLU 網路是一片逐步鋪開的線性控制器

伯克利做深度強化學習大約起步於 2011 到 2013 年，閆端（Yan Duan）最早在推動。當時他們腦子裡的圖景是這樣的：ReLU 這類整流網路給出的東西，本質上是**分段的線性反饋控制**。

線性反饋控制在控制文獻裡極其成功。阿比耳舉過直升機的例子：懸停狀態下，直升機是一個動力學非常複雜的系統，可一個相對簡單的線性控制器就能把它穩住。被控物件複雜，控制結構卻可以很簡單，這在工程裡反覆被驗證過。

網路的額外好處是拼接。以前這塊工作要靠人手工做：這裡放一個線性控制器，那裡放一個，中間用有限狀態機切換。網路學的是自己決定什麼時候用哪一塊。兩層網路裡，隱層某個單元從啟用切到失活，相當於沿著某個方向切一刀，這個方向不一定和座標軸對齊。空間就這樣被一刀一刀慢慢鋪滿，而且**相鄰的那些線性控制器共享大量引數**，也就是共享了大量已經學到的經驗。

阿比耳說，這是他當年敢於期待深度強化學習能成的核心直覺：它吃著線性反饋控制極其好用的紅利，同時用鋪磚的方式補上了線性控制做不到的部分。

## 肌肉收縮是高頻的，讀博的決定是低頻的

這套直覺搬進真實世界，就會撞上時間尺度的問題。

人影響世界的方式，說到底是一串高頻的肌肉纖維收縮和放鬆。但“決定讀一個博士”這種決策，跟肌肉動作之間隔了不知道多少層抽象。做出決定到看到結果要十年，中間還有無數分叉。現有演算法根本沒有能力把最終的結果歸因到當初那個決定上。

這就是信用分配（credit assignment）的死結。阿比耳認為，要解開它，需要**目前完全不存在的層級推理能力**。調參補不上這個缺口，缺的是一個還沒有被髮明出來的機制。

## 二三十年前的推理系統能想很遠，只是沒接地

層級推理這四個字，容易讓人以為是個新問題。阿比耳提醒，二三十年前就有能在很長時間跨度上做推理的系統，問題是它們不接地。世界的邏輯描述、動力學描述，全部由人手工設計，接不到感知上，接不到真實物體上。這套系統在紙面上想得很遠，落到現實裡立刻失焦。

深度學習補上的正好是這一環。它讓機器能從感測器資料裡看懂世界裡有什麼。所以現在是把兩邊接起來的時機，他給出了兩條路線。

第一條是把深度學習嵌進傳統方法，端到端訓練，讓深度網路的輸出變成一種表徵，再餵給傳統的動力學系統去做規劃。值迭代網路（Value Iteration Networks，阿維夫·塔瑪 Aviv Tamar 等人的工作）是這條線上的代表。

第二條是資訊理論的思路。所謂採取一個高層動作，就是選一個隱變數，這個隱變數在相當程度上決定了未來一段時間裡會發生什麼。決定去加油站加油，五分鐘後人到沒到，從當初那個高層動作大致就能判斷出來。這條路線他們做了很久，進展很小。

撞牆之後，阿比耳回頭問了一個更樸素的問題：要層級到底是為了什麼？答案落在兩件事上，更好的信用分配，和更快的學習。

> “我們不知道層級該怎麼設計，但我們知道想從它身上得到什麼。那就直接把它當最佳化目標，看它會不會自己長出來。”（皮特·阿比耳）

這就是 RL²（由閆端領銜）的做法。在迷宮導航任務裡，確實長出了東西：走廊裡穩定地直著走，這本身就是一個“選項”；到了岔路口才決定轉不轉；甚至出現了“別去走過的地方”這種傾向。阿比耳說這算有生命跡象，只是還沒能擴充套件到真實世界的複雜度上。

他同時承認，自己更希望這類問題能用數學解決。一個能形式化的結論可以跳過大量實驗，而研究過程本身就像強化學習，要試很多次才撞到一次成功。可惜這些年大多數進展還是一步一步試出來的，那種能一眼看穿兩年實驗量的方程，還沒有出現。

## AlexNet 真正的價值在於學到的東西能複用

遷移學習是阿比耳眼裡最難也最重要的問題之一。他在這件事上的態度有點分裂。

一邊是已經足夠驚人的成績。2012 年 AlexNet 在影象識別上變好，只是個開頭。緊接著大家發現，在 ImageNet 上學到的東西可以微調去解新任務。這一點在當時反而是更大的事情：以前的機器學習通常是一次性的，為一個場景學一個模型，學完就完了。**“學到的東西能複用”這件事，是遷移學習到今天為止影響範圍最大的一次成功。**

後來規模變大，又把這件事放大了一輪。語言模型先做預測任務，再把學到的東西複用到別的任務上。UNREAL 那類工作一邊做強化學習一邊掛上輔助目標，在迷宮導航裡學到的不只是走法。阿比耳說這些結果已經很說明問題。

另一邊是他的困惑。什麼算泛化？泛化有幾個層級？這條線該畫在哪裡？他說自己在這上面很分裂。看得見的進步是真的，概念上的模糊也是真的。

## 能預測行星軌道的模型，遇到闖入的恆星就廢了

他有一個區分“學會精通”和“學會泛化”的例子。

當前的深度學習拿來預測太陽系行星的相對運動，能預測得不錯。可如果突然有一顆大質量天體闖進太陽系，它就不會知道接下來會發生什麼。物理學家做的事情不一樣：他們要找到能解釋這一切的最簡解釋，不斷追問還能不能更簡單。整個宇宙動力學的終極方程，是這種追問的極限形態。深度學習沒有往這個方向推。

統計學家弗拉基米爾·瓦普尼克（Vladimir Vapnik）夢想找到學習的 E=mc²，一門關於學習的通用理論。阿比耳覺得這個追求有意思，但他心裡的版本更像是**模組化原則**。有證據表明大腦相當模組化，先天失明的人會把通常處理視覺的腦區挪作他用，說明一部分腦區可以被重新徵用。新皮質佔了很大一塊，看起來也相當模組化。如果誰能設計出同樣模組化的東西，讓它自己成長、自己變得更能幹，這個方向不算不現實。

## 自我對弈漂亮在哪：一局裡總有一方贏

自我對弈（self-play）之所以美，在於它順手解決了強化學習最頭疼的訊號問題。

普通強化學習裡，如果你從來沒成功過，就一點訊號都拿不到。自我對弈裡你在兩邊，一局裡總有一方贏、一方輸，對比天然存在：一個版本的“我”比另一個版本的“我”強。每下一局都有訊號。所以只要一個問題能被改寫成自我對弈，學習速度就遠好於普通環境。

可惜目前自我對弈主要還用在有天然對手的遊戲裡。如果機器人搭建一間小屋這種事也能寫成自我對弈，會快得多，但沒人知道怎麼寫。寫不成就只能設計細粒度獎勵，不只獎勵達成目標，還要獎勵中間取得的進展。這樣做很耗人力。

既然獎勵要花這麼大力氣設計，為什麼不乾脆演示一遍？阿比耳順勢把話頭引到了模仿學習上。

## 十分鐘教一個技能，和讓機器人看懂你的手

最直接的一種演示是遙操作。人在這邊操控，機器人在那邊真實地經歷整個過程。訊雜比很高。阿比耳說十分鐘就能教會一個基本技能，比如抓起瓶子放到指定位置，不管瓶子從哪個位置開始都能放過去。

更有意思的是第三人稱。機器人不動手，只看著你做，然後自己完成那一步翻譯：把“你的手在做什麼”對映成“我的手該做什麼”。你不能用它控制你的手，你只能看。阿比耳把 2018 年的一次重要突破歸在這條線上，由切爾西·芬恩（Chelsea Finn）領銜，他形容這幾乎是給示範做了一次機器翻譯：人的示範被翻譯成機器人該執行的動作，背後是元學習，從很少的示範裡學到這種翻譯關係。這開啟了很多加速學習的口子。

## 自動駕駛不太需要區分第一人稱和第三人稱

萊克斯自己研究自動駕駛，問這套第三人稱的辦法能不能用過去。阿比耳說，開車這件事上，第一人稱和第三人稱的區分並不重要。

原因在於難的地方已經很清楚了：從當前位置到前方几米的一個點，這件事被研究得很透，動力學也好理解。區別只在誰在打方向盤。機器人操作就完全不同，接觸力非常複雜，視角的區分在那裡才有意義。

至於駕駛該用模仿還是強化學習，模仿給出的訊號更足，短板也明顯：標準形態的模仿學習裡沒有目標概念。純粹反應式的行為克隆，泛化能力有限，遇到訓練分佈之外的場景就沒轍。逆強化學習這類帶目標推斷的版本會好不少。阿比耳的意思很清楚：**一個沒有目標概念的策略，很難泛化到你真正需要的那種程度。**

## 與其造一個完美模擬器，不如造一群不太完美的

模擬和模仿、強化學習的關係，阿比耳給了一個角度。

一條路是把模擬器做得越來越準。另一條路是造一批模擬器，每一個都不夠準，單獨在裡面訓練都遷移不到真機，但同時在全部模擬器裡訓練，就會出現一個在所有模擬器裡都表現好的策略。真機無非是又一個略有偏差的模擬器。

> “說不定我們本來就活在一個模擬裡，那真機也就是其中之一。”（皮特·阿比耳）

## 駕照只考繞街區一圈，我們卻不敢這麼信自動駕駛車

說到安全，阿比耳先談最實際的一層。機器人物理上很強壯，一次失誤就可能造成傷害，車可以看成會跑的機器人，風險同理。這一層是很工程的問題：這個機器人犯錯，後果是什麼。“機器比人聰明之後怎麼辦”那類長期擔憂，是另一個層面的事。模擬在這裡派上很大用場。

他拿駕照考試做了個對比。加州郊區的路考，繞街區開一圈，路邊停車，過一個停車標誌，基本就結束了。人類駕駛這麼複雜的能力，被這麼短的測試代表了，我們接受了這種代表性。換成一輛自動駕駛車做完這套流程，沒人會信它能上路。所以真正缺的是**面向機器人的單元測試**，這一類測試目前還沒有。

問題在軟體更新時更尖銳。自駕駛系統升級了一版，怎麼確認新版本在所有維度上都更強，沒有把壞行為悄悄帶進來？阿比耳說這個問題目前還沒有真正的解法，是值得專門研究的方向。

## 善良是被預置的，還是能被最佳化出來

訪談末尾聊到善良。

阿比耳提到吳恩達（Andrew Ng）讓他看到善良的價值。人的偏好裡有一部分是進化預置的：痛、餓、渴，我們天生就知道要躲開，這不是被教出來的。進化把這些寫進身體裡，正是因為把它們寫進去，學習才變得容易。同時人類又非常部落化，對自己人很寬厚，對外人要專門去學。

史蒂芬·平克（Steven Pinker）在《人性中的善良天使》裡描述了暴力長期下降的趨勢。無論人們怎麼分陣營，長期看人類是越來越能相處。這是一種跨越很多代的緩慢最佳化。

那能不能把善良教給機器人？阿比耳用狗來回答。狗有推理能力，水平也不低，但遠不到人類水平，可是很多人從狗身上得到的幸福感很高。回家時狗撲上來，那天就順了；狗被帶走幾天，回家的那一刻就沒那麼高興。建立強烈的感情聯結，**不需要人類級別的推理**。至於這種聯結對人是不是好事，那是另一個問題。

馬斯克說過愛是答案。萊克斯順著提了個改法：愛是目標函式，強化學習是答案。阿比耳的回答是，也許吧。

把整場對話串起來看，阿比耳的判斷其實相當剋制。機器人打贏費德勒還要等硬體，層級推理還沒有發明出來，安全測試還沒有解法，遷移學習到底算不算泛化也說不清。他反覆回到同一個位置：如果一件事能被形式化成目標，學習就沒理由做不到。剩下的工作，是把目標寫對，以及找到足夠便宜的訊號來源。

- **獎勵訊號能用比較就別用打分。**絕對評分採整合本高、噪聲大，“這一段比上一段好”這種相對判斷幾乎零成本，文中獨腿機器人學會後空翻就是靠這個。設計人類反饋流程時，先把評分表換成二選一。
- **先問一個問題能不能改寫成自我對弈。**只要能拆出兩個互相競爭的自己，每局都有勝負，訊號就不再稀缺。遊戲之外的場景值得花時間試一次這種改寫，收益遠大於調超參。
- **獎勵塑形做不動時，改成演示。**與其設計逐步進展的獎勵，不如花十分鐘遙操作示範一次，訊雜比高得多。有條件的團隊可以再往第三人稱示範上走一步，讓機器只觀察、不經歷。
- **模擬別追求單個完美，追求一組有偏差的。**同時在一批都不夠準的模擬器裡訓練，逼策略學出對全部偏差都成立的行為，真機就是其中一個略有不同的樣本。
- **給模型建迴歸測試集，尤其在更新之後。**人類靠一圈路考代表駕駛能力，機器需要更嚴格的東西。每次上線前確認新版本在所有維度上都不弱於舊版本，別讓壞行為悄悄混進來。
- **把“層級”當最佳化目標而不是手工架構。**既然說不清層級該長什麼樣，就先定義想從它身上獲得的東西，比如更快的收斂，然後讓結構自己湧現，再從結果裡反推它學到了什麼。
- **先在大規模預測任務上預訓練，再遷移。**從 ImageNet 微調到語言模型，這條路的收益被反覆驗證過。手上的任務規模不夠時，先把資料用在通用表徵上。
- **給形式化推導留出時間。**實驗本身就像強化學習，要試很多次才成功一次。一個能寫下來的定理或界，可以跳過兩年的試錯，這筆賬值得算。
