現實差距
在機器人學習裡,現實差距指的是:當一項在模擬中訓練出來的技能被搬到真實機器人上時,所出現的性能下滑。機器人是在模擬器裡學會它的行為的——也就是它的策略,那條把「它感知到的東西」轉成「它要做的動作」的規則——而模擬器裡的物理既整齊又可預測。可一旦把這套一模一樣的策略裝進一台實體機器,它的表現卻突然變差:打滑、遲疑、衝過頭,甚至在它本已在模擬器裡掌握得很好的那項任務上徹底失敗。這種「模擬裡很在行」與「現實裡很在行」之間的落差,就是現實差距;它正是一個看上去已經做好的策略,卻仍然不能在硬體上被信任的根本原因。
這道差距之所以存在,是因為沒有任何模擬能完美複製現實。模擬器也許假定地板摩擦固定不變、馬達響應瞬時無延遲、攝影機從不模糊,也沒有灰塵、形變或磨損的齒輪——而真實機器人卻同時身處所有這些不完美之中。一個學出來的策略,會不動聲色地把自己調到「恰好契合模擬器所假定的那一套」,於是兩個世界之間哪怕只是小小的不匹配,也會把它帶偏;而當機器人漂移進它從未練習過的狀態時,錯誤還會層層累積。差距越大,模擬裡那個滿分成績就越是誇大了機器人在現實中真正會有的表現。
現實差距正是每一種遷移技術所要對抗的東西。你從兩個方向去縮小它:一是測量真機器並校正模型,讓模擬更忠實於現實;二是給模擬加入隨機變化,讓策略學會應付一整片範圍內的各種狀況,而不是只適應一個理想化的世界,從而更加穩健。一個被訓練得能在上百種不同模擬摩擦下都活下來的策略,對它最終遇到的那一種真實摩擦幾乎毫無察覺。
一台四足機器人在模擬裡小跑得無可挑剔,可到了真實草坪上,富有彈性的草和一隻略弱的馬達讓每一步都落得差那麼一點,模擬與現實之間的差距隨著步伐一步步拉大,直到它絆倒。
在模擬器裡完美無瑕,卻敗給了模擬器漏掉的那些小事。
這裡是從機器人學習的角度描述現實差距——也就是讓被遷移的策略性能變差的那個東西。它是模擬到現實遷移必須跨越的障礙,而域隨機化是縮小它的主要辦法之一。