“只見4號球員在隊友的配合下迅速攻破後防,單刀直入,一腳射門,球,進了!”
觀眾朋友們大家好,您現在看到的是谷歌AI足球比賽的現場,場上身著黃色球衣的是來自清華大學的AI球員。
這屆清華AI可不一般,他們在艱苦訓練之下,不僅有個人能力突出的明星球員,也有世界上最強最緊密的團隊合作。
在多項國際比賽中所向披靡,奪得冠軍。
“Oh,現在7號接過隊友傳來的助攻,臨門一腳,球又進了!”
言歸正傳,以上其實是清華大學在足球遊戲中打造的一個強大的多智慧體強化學習AI——TiKick。
在多項國際賽事中奪得冠軍則是指,TiKick在單智慧體控制和多智慧體控制上均取得了SOTA效能,並且還是首次實現同時操控十個球員完成整個足球遊戲。
這支強大的AI團隊是如何訓練出來的呢?
從單智慧體策略中進化出的多智慧體足球AI在此之前,先簡單瞭解一下訓練所用的強化學習環境,也就是這個足球遊戲:Google Research Football(GRF)。
它由谷歌於2019年釋出,提供基於物理的3D足球模擬,支援所有主要的比賽規則,由智慧體操控其中的一名或多名足球運動員與另一方內建AI對戰。
在由三千步組成的上下半場比賽中,智慧體需要不斷決策出移動、傳球、射門、盤球、剷球、衝刺等19個動作完成進球。
在這樣的足球遊戲環境中進行強化學習難度有二:
一是因為多智慧體環境,也就是一共10名球員(不含守門員)可供操作,演算法需要在如此巨大的動作空間中搜索出合適的動作組合;
二是大家都知道足球比賽中一場進球數極少,演算法因此很難頻繁獲得來自環境的獎勵,訓練難度也就大幅增大。
而清華大學此次的目標是控制多名球員完成比賽。
他們先從Kaggle在2020年舉辦的GRF世界錦標賽中,觀摩了最終奪得冠軍的WeKick團隊數萬場的自我對弈資料,使用離線強化學習方法從中學習。
這場錦標賽只需控制場中的一名球員進行對戰。
如何從單智慧體資料集學習出多智慧體策略呢?
直接學習WeKick中的單智慧體操作並複製到每個球員身上顯然不可取,因為這樣大家都只會自顧自地去搶球往球門衝,根本就不會有團隊配合。
又沒有後場非活躍球員動作的資料,那怎麼辦?
他們在動作集內添加了第二十個動作:build-in,並賦予所有非活躍球員此標籤(比賽中若選用build-in作為球員的動作,球員會根據內建規則採取行動)。
接著採用多智慧體行為克隆(MABC)演算法訓練模型。
對於離線強化學習來說,最核心的思想是找出資料中質量較高的動作,並加強對這些動作的學習。
所以需在計算目標函式時賦予每個標籤不同的權重,防止球員傾向於只採用某個動作作為行動。
這裡的權重分配有兩點考慮:
一是從資料集中挑選出進球數較多的比賽、只利用這些高質量的資料來訓練,由於獎勵較為密集,模型能夠加速收斂並提高效能。
二是訓練出Critic網路給所有動作打分,並利用其結果計算出優勢函式,然後給予優勢函式值大的動作較高的權重,反之給予較低的權重。
此處為了避免梯度爆炸與消失,對優勢函式做出了適當的裁剪。
最終的分散式訓練架構由一個Learner與多個Worker構成。
其中Learner負責學習並更新策略,而Worker負責蒐集資料,它們透過gRPC進行資料、網路引數的交換與共享。
Worker可以利用多程序的方式同時與多個遊戲環境進行互動,或是透過I/O同步讀取離線資料。
這種並行化的執行方式,也就大幅提升了資料蒐集的速度,從而提升訓練速度(5小時就能達到別的分散式訓練演算法兩天才能達到的同等效能)。
另外,透過模組化設計,該框架還能在不修改任何程式碼的情況下,一鍵切換單節點除錯模式和多節點分散式訓練模式,大大降低演算法實現和訓練的難度。
94.4%的獲勝率和場均3分的淨勝分在多智慧體(GRF)遊戲上的不同演算法比較結果中,TiKick的最終演算法(+AW)以最高的獲勝率(94.4%)和最大的目標差異達到了最佳效能。
TrueSkill(機器學習中競技類遊戲的排名系統)得分也是第一。
TiKick與內建AI的對戰分別達到了94.4%的勝率和場均3分的淨勝分。
將TiKick與GRF學術場景中的基線演算法進行橫向比較後發現,TiKick在所有場景下都達到了最佳效能和最低的樣本複雜度,且差距明顯。
與其中的基線MAPPO相比還發現,在五個場景當中的四個場景都只需100萬步就能達到最高分數。
作者介紹一作黃世宇,清華大學博士生,研究方向為計算機視覺、強化學習和深度學習的交叉領域。曾在華為諾亞方舟實驗室、騰訊AI、卡內基梅隆大學和商湯工作。
共同一作也是來自清華大學的陳文澤。
此外,作者還包括來自國防科技大學的Longfei Zhang、騰訊AI實驗室的Li Ziyang 、Zhu Fengming 、Ye Deheng、以及清華大學的Chen Ting。
通訊作者為清華大學的朱軍教授。
論文地址:https://arxiv.org/abs/2110.04507
專案地址:https://github.com/TARTRL/TiKick
參考連結:https://zhuanlan.zhihu.com/p/421572915
— 完 —
量子位 QbitAI · 頭條號簽約