當前位置:
首頁 > 新聞 > 死亡啟示錄:AI在Dota 2中預測玩家5秒後死亡

死亡啟示錄:AI在Dota 2中預測玩家5秒後死亡

機器之心報道

參與:杜偉、張倩


人們可以從人工智慧研究的持續發展中領悟到,曾經很多被認為不可預知的事件實際上是可預測的,並且準確率也相當高。比如,最近約克大學的研究者在其發表的論文《Time to Die: Death Prediction in Dota 2 using Deep Learning》中介紹了這樣一種系統,它能夠可靠地預測哪些 Dota 2 玩家角色將在 5 秒內死亡。

這種 AI 技術在未來或許可以為遊戲解說和觀眾們帶來便利:突然出現的擊殺總會是遊戲最精彩的部分,而對於玩家來說,他們或許還能找到更大膽的想法。

死亡啟示錄:AI在Dota 2中預測玩家5秒後死亡

打開今日頭條,查看更多圖片

OpenAI Dota 2 競技現場

  • 論文:Time to Die: Death Prediction in Dota 2 using Deep Learning
  • 論文鏈接:https://arxiv.org/pdf/1906.03939.pdf

Valve 公司發行的 Dota 2 是一款多人在線競技遊戲。遊戲分為兩方,每方擁有 5 名玩家,目的是佔領敵方和防禦己方基地,並試圖破壞位於地圖兩端的建築物。每個玩家都有一套獨特的戰鬥技能,同時收集經驗值和裝備以解鎖新的攻擊和防禦動作。

Dota 2 實際操作起來會更複雜。平均每場比賽包含 80,000 個單個幀,其中每個角色可以執行 170,000 個可能的動作。遊戲中的玩家在每幀上平均完成 10,000 個動作,使遊戲的總維度超過 20,000。遊戲中的每個玩家都可以撿起或者購買上百件虛擬裝備(item)。

研究者在論文中指出,角色的生命值並不總是與死亡與否掛鉤,因為一些角色具有治癒能力,並且玩家還可以通過購買虛擬裝備來治癒或者通過傳送遠離危險。考慮到這一點,研究者獲取了 Valve 公司 12 月 5 日之前 5000 場職業(大型賽事)和 5000 場半職業(小型比賽和聯賽)比賽的回放文件。他們的語料庫在預處理和誤差計算後共包含 7311 個文件,並通過在 4-tick 採樣周期(對應 0.133 秒的遊戲時間)內記錄屬性集數值,研究者從語料庫中提取數據並轉化為時間序列。

基於語料庫中的數據,研究者為每個玩家角色提取了 287 個特徵,其中一些特徵是遊戲對象屬性值(如英雄生命值)。研究表明,時間、玩家當前狀態(如力量值和敏捷值)、可激活裝備、英雄技能、走位、與最近的存活敵人和己方防禦塔的距離以及可見性歷史是導致玩家死亡的一些最重要因素,其中英雄的相對力量值和特定時間內在地圖上的位置居首位。

根據死亡預測的屬性,研究者需要創建一個能夠捕獲相關數據的特徵集。他們首先著眼於導致玩家死亡的兩個最重要因素——相對力量值和特定時間內它們在地圖上的當前方位。從最開始的少量特徵開始構建,研究者最終得到了包含每位英雄 287 個特徵的特徵集。一些特徵是遊戲對象屬性值,如英雄生命值;其他一些則是派生值,如與其他玩家的鄰近值。下表給出了一些重要特徵的詳細描述。

死亡啟示錄:AI在Dota 2中預測玩家5秒後死亡

表 1:各類特徵的詳細信息。

研究者表示:「玩家採取行動時確實依賴以往行為。例如,如果一名敵人脫離視線,玩家依然清楚這名敵人還在這個區域。另一方面,如果一名敵人在幾分鐘前消失了,則從玩家的角度看,這名敵人可以在地圖的任何位置。這就是我們添加可視性歷史特徵的原因。」

研究者將訓練數據——2870 個輸入和 5760 萬個單個數據點,即 10 位玩家的 287 個特徵相乘的結果——饋入到機器學習演算法中,分別保留 10% 的數據用於驗證和測試。他們在實驗中發現,當預測比賽雙方 10 位玩家中哪位玩家會在 5 秒內死亡時,該模型實現了 0.5447 的平均精度。此外,研究表明,該模型能夠在指定的 5 秒窗口出現之前預測玩家死亡,說明它已經學會了與死亡相關的「固有屬性」。

模型詳解

研究者將具有權重分享的深度前饋神經網路作為模型。該神經網路的輸入包含每位英雄的特徵。在最大的特徵集中,每位英雄具有 287 個特徵,則 10 位英雄具有 2870 個輸入。因此,該網路具有 10 個獨立的持續輸出,代表每位玩家在接下來 5 秒內死亡的概率。

網路架構

死亡啟示錄:AI在Dota 2中預測玩家5秒後死亡

圖 1:網路架構概覽圖。

圖 1 為該網路的架構概覽,顯示了輸入如何進入共享的網路結構。

此處所有的權重都是共享的,本質上是創建一個子網路,該子網路為英雄特性學習一個新的、更密集的表徵。連接層附帶來自每個共享層的輸出,為網路結構的最後一部分(一個全連接網路)創建一個輸入張量。每個隱藏層的輸出都使用 RELU 函數,但網路的最後一個激活函數用的是 Sigmoid 函數。

特徵集

由於遊戲複雜度高,研究者不確定網路是否可以利用所有的特徵類別。為了深入了解,研究者創建了三個獨立的特徵集並利用三個獨立的超參數搜索運行三個訓練步驟:

  • 最小的特徵集(每個英雄 15 個特徵)只包含當前生命值、總金幣、位置、英雄和塔的鄰近特徵。選擇這些特徵是因為研究者認為它們包含更多信息。
  • 中等特徵集(每個英雄 109 個特徵)包含除了英雄 ID 和能力特徵之外的所有特徵。
  • 大型特徵集包含全部的特徵(每個英雄 287 個特徵)。

訓練網路

對於每一個特徵集,研究者使用基於隨機搜索的探索來確定最佳超參數,用於:層數、每層的神經元數、學習率和批大小,詳細信息見表 II。

死亡啟示錄:AI在Dota 2中預測玩家5秒後死亡

結果

表 III 顯示了最佳模型在測試集上的性能。結果表明,該網路可以利用額外的特徵。

死亡啟示錄:AI在Dota 2中預測玩家5秒後死亡

表現最佳的模型達到了 0.5447 的平均精度,研究者利用這一模型進行進一步分析。

該模型的精度-召回率曲線如圖 3 所示。該圖顯示了閾值和精度及召回率之間的權衡。

死亡啟示錄:AI在Dota 2中預測玩家5秒後死亡

值得注意的是,儘管用來預測死亡的時間是 5 秒,但這一時間也可以增加。但為了減少計算混淆,這些預測將被視為不準確預測。預測時間為 0-5 秒以及延長到 20 秒時的概率輸出如下圖所示:

死亡啟示錄:AI在Dota 2中預測玩家5秒後死亡

研究者坦言,他們的方法也有一些局限,如系統需要 200 多個遊戲數據點(包括那些不可見的玩家)來輔助預測以及可能無法泛化到新的遊戲版本。然而,研究者表示,他們設計的模型可能對緊盯比賽進程的解說員和玩家有用。

目前,該模型已經在 GitHub 上開源:https://github.com/adam-katona/dota2_death_prediction

「電子競技遊戲非常複雜,幾秒鐘之內的一個瞬移都有可能改變遊戲的平衡,而且,多個事件可能在遊戲場地的多個區域同時發生。這些事件可能發生地很快,解說員和觀眾很容易錯過某個事件,而只看到事件的後續影響,」該團隊寫道。「在 Dota 2 中,某個角色被敵人殺掉是解說員和觀眾感興趣的事件。」

參考鏈接:https://venturebeat.com/2019/06/13/this-dota-2-ai-predicts-player-death-within-a-5-second-window/

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

與華為合作不能斷:晶元大廠高通、英特爾向美國政府施壓
文本也有攻防戰:清華大學開源對抗樣本必讀論文列表

TAG:機器之心 |