超出預期,這個機器人已經達到中級水平。
看完它的表現,網友們紛紛表示:### 可以買嗎?想要。
遭遇戰也能從容應對
乒乓球是一項對體力和戰略、技巧等各方面綜合要求很高的運動,人類也往往要經過多年訓練才能掌握。
因此,不同於像象棋、圍棋這種純戰略遊戲,對於機器人而言,乒乓球成為考驗其綜合能力的重要基準,比如高速運動、即時的精準控制、戰略決策、系統設計等等。
舉個例子,面對球的不同落點,機器人需要快速移動位置;面對明顯的出界球,機器人應該選擇不接。
團隊找到了29個不同技能水平的乒乓球運動員進行了比賽,包括初學者、中級、高級和高級以上。
人類與機器人進行了3場比賽,比賽遵循標準乒乓球規則。(不過由於機器人無法發球,整場由人類來發球)
在此之前,其實也有相應的乒乓球機器人研究,此次谷歌機器人的特別之處在於,它能夠同從未見過的人類進行全面的競技對決。
人類的各種打球風格,它都能快速適應。
比如看這位選手,比賽剛開局機器人明顯還在適應過程中,人類以9比2的大比分擊敗機器人。
但就在下一局之後,機器人明顯熟悉了對手風格,始終在緊緊追著比分。雙方打得也是有來有往。
最終在所有對手中,機器人贏得了所有初學者比賽,在與中級選手的比賽中勝率為55%。
雖然目前機器人還沒有辦法戰勝高級選手,但在人類的各種反饋中,可以看到,大家都很樂意同這個機器人玩耍。
小小乒乓球,如何拿下?
在介紹方法前,先來看一眼乒乓球機器人的硬體配置。
主體採用的是6自由度的瑞士公司ABB 1100機械臂,裝置在兩個Festo直線導軌上,使其能夠在平面內移動。橫向移動導軌長4米,縱向移動導軌長2米。
機械臂上裝配了一個3D列印的球拍手柄和一個覆蓋短顆粒膠皮的球拍。
就是這麼個小登西,是如何學會打乒乓球的?
總結來說,使用了結合### 強化學習和### 模仿學習的混合訓練方法。
團隊設計了分層和模組化的策略架構,Agent包括一個低級技能庫(LLC)和一個高級控制器(HLC)。
LLC是一組專門的策略,每個策略都經過訓練來執行### 特定的乒乓球技能,如正手擊球、反手擊球、發球等。這些LLC使用CNN架構,通過模擬環境中的進化策略算法進行訓練。
訓練過程採用了從真實世界收集的球狀態數據集,以確保模擬環境與真實環境的一致性。
而HLC負責### 在每次來球時選擇最合適的LLC。
包含多個組件:風格策略,用於選擇正手或反手;旋轉分類器,用於識別來球的旋轉類型;LLC技能描述符,描述每個LLC的能力;一組啟發式策略,用於根據當前情況shortlist候選LLC。
HLC還使用線上學習的LLC偏好來適應對手的特點和彌補模擬到現實的差距。
具體來說,團隊先是收集了少量人類比賽數據,設置初始化任務條件,然後用強化學習在模擬環境中訓練一個Agent,再將策略零樣本部署到真實世界中。
其中使用MuJoCo物理引擎精確模擬球和機器人動力學,包括空氣阻力、Magnus效應等,還設計處理了上旋球"校正",通過在模擬中切換不同的球拍參數來模擬真實世界中的上旋和下旋效果。
在Agent和人類不斷對打的過程中,可以生成更多的訓練任務條件,並重複訓練-部署。
機器人技能逐漸提升,比賽也逐漸變得複雜,但仍基於現實世界的任務條件。機器人收集完數據,還能發現其能力的不足,隨後通過在模擬環境中持續訓練來彌補這些缺陷。
通過這種方法,機器人的技能可以在模擬與現實相結合的循環過程,自動迭代改進。
此外,這個機器人還能追蹤對手的行為和打法來適應不同的對手,比如對手傾向於將球打回桌子的哪一。
由此能夠嘗試不同的技巧,監控自己的成功率,並即時調整策略。
在和人類對打實驗中,團隊也發現這個機器人有個弱點:不擅長處理下旋球。
按照對球旋轉的估計,