機器人學習

域隨機化

域隨機化是一種在模擬裡訓練機器人、好讓它的技能能在真實世界裡挺住的竅門:與其在一個精心調好的虛擬環境裡反覆練習,不如在每一次運行時都把模擬的各項設定隨機地打亂一遍。這一次試驗地板很滑、光線很暗,下一次物體很重、馬達有延遲,再下一次又是刺眼的眩光和換了角度的攝影機。等練到最後,機器人是在成千上萬個略有差異的假世界裡練過,而不是只在一個世界裡。這個想法簡單卻有力:如果在訓練過程中,從來沒有哪一個版本的現實是那個「真正的」現實,機器人就不會再過度擬合其中任何一個,轉而去學那條貫穿所有版本、放之四海皆準的底層技能。

它之所以管用,是因為真實世界不過是機器人從未原樣見過的又一種設定罷了——而這恰恰正是它被訓練得早有預料的情形。如果一個行走策略已經應付過上百種不同的模擬摩擦,那麼它最終踩上去的那一種真實摩擦,就舒舒服服地落在它早已練習過的範圍之內,於是它幾乎察覺不到這點變化。說到底,域隨機化並不把模擬與現實之間的差距當作一個必須精確命中的靶子,而是把它當作又一個需要被淹沒掉的變化來源。這正是它成為模擬到現實遷移、以及縮小現實差距時最被廣泛使用的工具的原因。

其中的門道,在於挑選隨機化什麼、以及隨機到多大的幅度。變動得太少,模擬就仍是一個狹窄的泡泡,現實照樣把它戳破;變動得太離譜,任務又會亂成一團,機器人永遠學不出任何穩定的東西。工程師通常會隨機化那些要緊的物理量——摩擦、質量、馬達延遲、感測器噪聲——以及事物的外觀——光照、顏色、紋理、攝影機位置——並把每一項的範圍調得既寬到足以涵蓋現實,又不至於把問題變得無解。

為了訓練機器人抓取一塊紅色積木,工程師在各次運行中隨機變換它的顏色、光照、桌面紋理以及夾爪的摩擦;策略於是不再死盯某一種外觀,在它從未見過的真實實驗室燈光下,照樣穩穩地把積木抓起來。

在一千個假世界裡練過,那唯一的真實世界便顯得似曾相識。

隨機化世界的外觀(顏色、光照、紋理)有時稱為視覺隨機化;隨機化物理(摩擦、質量、延遲)則稱為動力學隨機化。兩者都是域隨機化的形式。

又稱
DRdynamics randomization动力学随机化