當手寫規則用盡時
幾十年來,給機器人編程意味著手寫規則:如果感測器讀到這個,就讓那個馬達轉動這麼多。在零件總是停在同一位置的工廠流水線上,這套辦法運行得很漂亮。可一旦把機器人搬進廚房、倉庫走道或碎石地,規則膨脹的速度就遠超任何人能寫下的範圍。每一種新光照、每一個略有差異的物體、每一陣風,都是編程者沒料到的情況。這個世界擁有的處境,就是比人能預想的要多。
機器人學有個令人謙卑的反轉:對我們毫不費力的任務,往往最難編程。這一觀察有個名字,叫莫拉維克悖論——機器人能在西洋棋上擊敗特級大師,卻可能疊不好一條毛巾、走不過一片碎石。西洋棋有整齊的規則;而疊毛巾牽涉柔軟的材料、不斷變化的摩擦,以及那種誰也無法完整寫下的瞬間手感。演化花了數百萬年在我們身上打磨的本領——感知與運動——恰恰是我們最難用語言說清的,更別提寫成程式碼。
機器人到底學的是什麼
撥開術語,一個會學習的機器人追求的只有一樣東西:一個從「感知到的」通往「該做的」的良好映射。給定攝影機當下的畫面、各關節的角度、夾爪的觸感,下一步該發出什麼馬達指令?這種從輸入到動作的映射叫做控制策略——可以把它想成機器人的習慣,是它在任意時刻被訓練出的反射。手寫編程試圖把這套策略逐條規則寫清;而學習,則是讓機器人從經驗中把策略養出來。
為什麼「養」比「寫」更好?因為學到的策略能吸收任何方程式都捕捉不到的細微之處:某塊布料是怎麼皺起來的、輪子在濕磁磚上如何打滑、光線怎樣從金屬杯上閃過。這正是具身智慧的核心——真正的本領來自一具身體與雜亂物理世界的互動,而非單憑抽象推理。機器人的智慧就活在感知與行動之間的循環裡,靠每一次嘗試不斷打磨。
不妨把策略想像成一個佈滿旋鈕的控制盒,機器人被允許重新調校它。起初旋鈕是隨機的,機器人手忙腳亂。每練習一輪、每看一個範例,旋鈕就朝著「管用」的設定挪動一點。學習不過就是在搜尋正確的旋鈕位置——多達數百萬個,由系統自動找到,而非靠人手撥定。
三種配方一覽
找到那些旋鈕設定大致有三條路,本主線後續會逐一展開。一句話便能勾勒:從獎勵中學、從示範中學,或從海量資料中學。
強大,但並非魔法
誠實地把預期擺正很有必要。學習很「吃」資料:一隻真實機械臂練習抓取,可能需要上千次嘗試,而每一次都要耗費實打實的秒數、磨損硬體、還冒著摔壞的風險。這正是為何大量練習都放在模擬中進行——在那裡,機器人一夜之間就能把一項任務試上百萬遍。問題在於,模擬器永遠無法與現實完美吻合——業界把這道落差稱為「現實鴻溝」——於是一個在模擬中大放異彩的策略,到了真實地面上可能就趔趄了。
學習還會繼承其範例的侷限。只在白天畫面上訓練過的策略,可能在夜裡失靈;只見過紅色杯子的策略,碰到藍色的就可能笨手笨腳。由於機器人是自己找到旋鈕設定的,而非遵循可讀的規則,要確切知道它為何如此行動、或保證它在無人測試過的情形下依然安全,都相當困難。這些都是懸而未決的難題,而非已被解決的舊帳——這恰恰是這個領域充滿生氣的原因。
於是誠實的小結是:我們讓機器人學習,並非因為這條路毫不費力,而是因為另一條路——手工把整個雜亂世界寫成腳本——根本走不通。學習是把一個我們無解的難題,換成一組我們能一點點啃下去的難題:蒐集資料、縮小現實鴻溝、讓結果值得信賴。後續各章會把這些難題逐一拿來細說。