0

雷鋒網 AI 科技評論按:我們都已經知道了,OpenAI 的 5v5 DOTA AI 「OpenAI Five」再次完勝人類。
美國時間 8 月 5 日星期天下午,OpenAI 組織的線下比賽(OpenAI 稱其為「OpenAI Five Benchmark」)中一共進行了四局比賽。第一局 5 名現場觀眾組成的路人隊伍被 7 分鐘破中路二塔,9 分鐘上路上高地,12 分鐘破兩路,人頭比 26:4,可以說是完全碾壓。
之后的三局比賽是重頭戲,「OpenAI Five」對陣 4 位前職業選手(Blitz、Cap、Fogged、Merlini)與 1 位現任職業選手(MoonMeander)組成的高手隊伍。第一局依然慘敗,21 分鐘破第二路高地,人類選手打出 GG,人頭比 39:8。第二局人類選手選擇了更強的控制、更積極的打法,卻也只堅持到了 24 分鐘,人頭比 41:12。這樣,三局兩勝的比賽就已經告負了。

勝負已分,第三局就成為了娛樂局,現場觀眾給「OpenAI Five」選擇了 5 個不怎么厲害的英雄,最后果然讓人類玩家獲得了勝利。
不過除了比賽比分之外,廣大強化學習研究人員和人工智能愛好者還有一個深深的疑問就是,這樣的 AI 是如何訓練出來的。
毋庸置疑,DOTA 游戲的復雜程度比圍棋要高,反饋也相當稀疏,即便選用了 OpenAI 已經開發得非常成熟的大規模分布式 PPO 實現「Rapid」,我們也難以直覺上信服「只要有足夠的訓練時間就能學到如此豐富的游戲行為」。比如首先「OpenAI Five」的團隊協作上表現出了人類一樣的明確的核心和輔助英雄的區分,比如據 OpenAI 的研究人員介紹「OpenAI Five」也會選擇打肉山,只說這兩件事就都是人類玩家需要經過有意識的策略判斷和執行才能做出的。強化學習算法現在就有這么高層次的思維了?不太可能吧。
下面這些 5 日的比賽中的瞬間也值得玩味:





強化學習的范式決定了「能幫助帶來高反饋的行為」會更容易被學到,而 DOTA 的復雜就在于,許多行為和最終游戲結果之間的關聯似乎也是若即若離,在大多數場合下都能起到一錘定音效果的行為也許人類自己都說不清。即便相信 AlphaGo 能在反復的自我對局中找到更好的策略的人,也不一定相信在 DOTA 如此復雜的環境下僅靠自我對局就可以學到定位、分路、補兵、先手、看肉山、插眼等等系列行為。
結合 OpenAI 之前放出的一些資料和「OpenAI Five」開發團隊在比賽現場的訪談,雷鋒網 AI 科技評論找到了「計算集群上相當于180 年游戲時間每天的訓練」之外的,能幫助我們理解更具體的 AI 實現過程一些端倪。相比于說這些是「強化學習研究的小技巧」,我們更覺得這是「人類教學的小技巧」;相比于「OpenAI Five」訓練中模型自己的探索行為,我們覺得意義更重大的是人類成功地把自己的知識和經驗設法教給了「OpenAI Five」。
只使用最終比賽結果作為反饋,過于稀疏,所以 OpenAI 還增加了一些評價人類選手表現的常用指標,比如總財產、擊殺數、死亡數、助攻數、補刀數等等。這些指標上的改進也會與比賽輸贏一起帶來反饋的提升,促進模型的學習(避免長時間停留在無效學習區)。
但同時為了避免 AI 過于關注這些偏向于短期策略的數據,OpenAI 對基于指標的反饋的設計并不是「指標數值越大越好」,而是只鼓勵 AI 在這些方面做到人類玩家的平均水平。這項巧妙的設計同時也可以幫助 AI 學習到不同英雄在團隊作戰中不同定位:以人類玩家的平均水平而言,火槍是核心英雄,應當高傷害輸出、高正補、高人頭、低助攻、低輔助行為,冰女則應當低正補、低人頭、高助攻、高輔助行為。數據指標的不同就可以引領不同的行動策略。
DOTA 中的英雄除了自身的定位,他們之間也是需要合作的,比如抱團殺人拿塔。OpenAI 并沒有為 AI 之間設計顯式的溝通頻道,目前他們設計了一個名為「團隊精神」的超參數,這個 0 到 1 之間的值會反應每個英雄關注自己單獨的反饋和整個團隊的反饋之間的比例。在訓練中 OpenAI 通過退火來優化這個值的具體大小。
大家可能記得,在「OpenAI Five」剛剛發布的時候,它是還不支持肉山的。很快支持了肉山之后,大家都很感興趣 OpenAI 團隊做了哪些改進。在 5 日比賽現場 OpenAI 的研究人員給出了答案:正常的探索中很難出現 5 個英雄都來到 Roshan 坑里然后打了 Roshan 拿到正面反饋的情況,所以他們引導模型學習的方法是,在訓練過程把 Roshan 的血量設為隨機的,那么在探索過程中英雄如果遇到了血量很低的 Roshan,顯然就可以輕松地獲得高反饋,從而鼓勵 AI 開始關注 Roshan。不過同時 Roshan 也不是隨時都要打的,隨機血量的設定會讓 AI 只有在覺得自己能打過 Roshan 的時候才會打。
從長期學習的角度講,只要有足夠的訓練時間讓 AI 探索各種行為,人類覺得有幫助的各種游戲操作 AI 最終都是有機會學會的(比如切假腿吃大藥,也比如打肉山),只不過在 AI 做出足夠多的次數之前,都還不能形成有效的學習。那么人類希望 AI 快速學會的行為,可以通過設計一些正反饋來鼓勵學習;而另一方面,不常出現的局面,也就會像我們對深度學習模型的正常預期一樣,AI 并不知道應該怎么處理。
關于裝備和眼,OpenAI 的研究人員透露目前都是通過 API 編寫腳本讓 AI 購買的,AI 并不需要自己選擇;尤其是眼,目前腳本的設定是眼只要 CD 就會購買。這樣的設定當然降低了訓練的難度,讓 AI 享有穩定的出裝,同時也給輔助英雄帶來一個有趣的境地:因為有眼就要買,就會占它們的格子、遲早需要清出來,這成為了一項促使它們插眼的動力;而實際上,如果真的要為「插眼」動作本身設計反饋的話,OpenAI 的研究人員發現還真的很難找到任何指標量化眼插得好不好。所以這樣的設計確實是一種簡單快捷的解決方案。
現在知道了這些 OpenAI 的「教學」方法之后,再回過頭去看看前面提到的「OpenAI Five」的游戲表現,是否顯得合理多了、親切多了呢?
可以說「OpenAI Five」的開發團隊想了許多辦法鼓勵 AI 用像人類一樣的策略和操作玩 DOTA,但并不對表現的上限做出明確的限制。在人類玩家探索了這個游戲這么久之后,借助人類的經驗快速避開低效的游戲空間當然是一個好主意。從這個角度講,OpenAI 現階段的「OpenAI Five」就仿佛是早期的 AlphaGo,以從人類的過往游戲中學習為基礎,然后嘗試提升和創新。
那么這套系統繼續優化之后在 DOTA2 國際邀請賽(TI)上面對現役職業選手還能有如何的表現,比現在明顯進化明顯全面的(也許是 Master 版)「OpenAI Five」甚至去掉一切約束完全自己探索的「OpenAI Five」Zero 版未來是否還有可能呢?我們拭目以待。
雷鋒網 AI 科技評論報道。
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。