
英雄聯(lián)盟如何指揮團戰(zhàn)?AI幫你做決策
英雄聯(lián)盟是一個需要默契團隊配合的多人對戰(zhàn)游戲。在瞬息萬變的戰(zhàn)斗中,如何做出正確的決策非常重要。最近,數(shù)據(jù)分析師 Philip Osborne 提出了一種利用人工智能技術(shù)提升英雄聯(lián)盟中團隊決策水平的方法,并將其開源。該方法不僅參考了大量真實游戲的統(tǒng)計結(jié)果,也將當前玩家的偏好計算在內(nèi)。
該項目由三部分組成,旨在將 MOBA 游戲《英雄聯(lián)盟》的對戰(zhàn)建模為馬爾科夫決策過程,然后應(yīng)用強化學習找到最佳決策,該決策還考慮到玩家的偏好,并超越了簡單的「計分板」統(tǒng)計。
作者在 Kaggle 中上傳了模型的每個部分,以便大家更好地理解數(shù)據(jù)的處理過程與模型結(jié)構(gòu):
目前這個項目還在進行當中,我們希望展示復雜的機器學習方法可以在游戲中做什么。該游戲的分數(shù)不只是簡單的「計分板」統(tǒng)計結(jié)果,如下圖所示:
動機和目標
英雄聯(lián)盟是一款團隊競技電子游戲,每局游戲有兩個團隊(每隊五人),為補兵與殺人展開競爭。獲得優(yōu)勢會使玩家變得比對手更強大(獲得更好的裝備,升級更快),一方優(yōu)勢不斷增加的話,獲勝的幾率也會變大。因此,后續(xù)的打法和游戲走向依賴于之前的打法和戰(zhàn)況,最后一方將摧毀另一方的基地,從而贏得比賽。
像這種根據(jù)前情建模的情況并不新鮮;多年來,研究人員一直在考慮如何將這種方法應(yīng)用于籃球等運動中(https://arxiv.org/pdf/1507.01816.pdf),在這些運動中,傳球、運球、犯規(guī)等一系列動作會導致一方得分或失分。此類研究旨在提供比簡單的得分統(tǒng)計(籃球中運動員得分或游戲里玩家獲取人頭)更加詳細的情況,并考慮建模為時間上連續(xù)的一系列事件時,團隊應(yīng)該如何操作。
以這種方式建模對英雄聯(lián)盟這類游戲來說更為重要,因為在該類游戲中,玩家補兵和殺人后可以獲得裝備并升級。例如,一個玩家拿到首殺就可以獲取額外金幣購買更強的裝備。而有了這些裝備之后,該玩家變得更加強大進而獲取更多人頭,如此循環(huán),直到帶領(lǐng)其隊伍獲取最后的勝利。這種領(lǐng)先優(yōu)勢被稱為「滾雪球」,因為該玩家會不斷積累優(yōu)勢,不過很多時候,該玩家在游戲中所在的隊伍并不一定是優(yōu)勢方,野怪和團隊合作更為重要。
該項目的目標很簡單:我們是否可以根據(jù)游戲前情計算下一步最好的打法,然后根據(jù)真實比賽數(shù)據(jù)增加最終的勝率。
然而,一場游戲中影響玩家決策的因素有很多,沒那么容易預測。不論收集多少數(shù)據(jù),玩家獲得的信息量始終多于任何一臺計算機(至少目前如此!)。例如,在一場游戲中,玩家可能超水平發(fā)揮或發(fā)揮失常,或者偏好某種打法(通常根據(jù)他們選擇的英雄來界定)。有些玩家自然而然地會變得更加好斗,喜歡殺戮,有些玩家則比較被動一直補兵發(fā)育。因此,我們進一步開發(fā)模型,允許玩家根據(jù)其偏好調(diào)整建議的打法。
讓模型「人工智能化」
在第一部分中,我們進行了一些介紹性的統(tǒng)計分析。例如,假設(shè)隊伍在比賽中補到第一個和第二個兵,我們能夠計算出獲勝的概率,如下圖所示。
有兩個組成部分,使我們的項目超越簡單的統(tǒng)計的人工智能:
我們定義馬爾可夫決策過程及收集玩家喜好的方式會決定模型學習和輸出的內(nèi)容。
根據(jù)匹配統(tǒng)計信息對馬爾科夫決策過程進行預處理和創(chuàng)建
AI 模型 II:引入打錢效率
我從第一個模型的結(jié)果中意識到,我們沒有考慮到負面和正面事件對未來都可能產(chǎn)生累積的影響。換句話說,無論在當時時間點之前還是之后,當前的 MDP(馬爾科夫決策過程)概率都有可能發(fā)生。在游戲中,這是不正確的。一旦落后,殺人、拿塔、補兵都會變得更難,我們需要考慮到這一點。所以,我們引入隊伍間的打錢效率來重新定義狀態(tài)。當前目標是建立一個定義狀態(tài)的 MDP,這個狀態(tài)可能是事件發(fā)生順序,或者隊伍是否落后或領(lǐng)先。我們將金幣差值分為以下幾類:
我們也需要考慮沒有任何事件發(fā)生的情況,并把其歸為『無』事件中,以保證每分鐘都有事件發(fā)生。這個『無』事件表示一個隊伍決定拖延游戲,以將那些在早期游戲中更善于獲得金幣的隊伍區(qū)分出來,而不需要殺死(或通過小兵殺死)他們。然而,這樣做也會大大增加數(shù)據(jù)量。因為我們?yōu)槠ヅ淇捎闷ヅ漤椧呀?jīng)添加了 7 個類別,但如果我們能訪問更常規(guī)的匹配項,那數(shù)據(jù)量就已足夠了。如前所述,我們可以通過以下步驟來概述:
預處理
1. 輸入殺人數(shù)、塔數(shù)、野怪和金幣差值的數(shù)據(jù)。
2. 將『地址』轉(zhuǎn)為 ID 特性。
3. 移除所有舊版本的游戲。
4. 從金幣差值開始,按照事件的時間、匹配 ID 和與以前一致的團隊進行合計。
5. 追加(助攻的)人頭數(shù)、怪數(shù)和塔數(shù)到此末尾,為每個事件創(chuàng)建行并按發(fā)生的時間對事件進行排序(平均人頭數(shù))。
6. 添加「事件序號」特性,顯示每次匹配中的事件順序。
7. 為行上的每個事件創(chuàng)建一個統(tǒng)一的「事件」特性,包括人頭、塔、怪或者『無』事件。
8. 每次匹配時將其轉(zhuǎn)化為行,現(xiàn)在是用列來表示每個事件。
9. 只考慮紅隊的視角,以便合并列,視藍隊增益為負紅隊增益。同時增加紅隊的游戲長度和結(jié)果。
10. 將所有空白值 (即在前面步驟中結(jié)束的游戲) 替換為匹配的游戲結(jié)果,以便所有行中的最后一個事件是匹配結(jié)果。
11. 轉(zhuǎn)換為 MDP,其中 P(X_t | X_t-1)用于每個事件數(shù)和由金幣差值定義的狀態(tài)之間的所有事件類型。
馬爾科夫決策過程輸出
使用簡易英語的模型 V6 偽代碼
我們最終版本的模型簡單總結(jié)如下:
1. 引入?yún)?shù)
2. 初始化啟動狀態(tài)、啟動事件、啟動操作
3. 根據(jù) MDP 中定義的首次提供或基于其發(fā)生可能性的隨機選擇操作
4. 當行動贏或輸時,結(jié)束
5. 跟蹤事件中所采取的行動和最終結(jié)果(贏/輸)
6. 根據(jù)最終結(jié)果所用的更新規(guī)則來更新操作
7. 重復 x 次上述步驟
引入獎勵偏好
首先,我們調(diào)整模型代碼,把獎勵歸入回報計算中。然后,當我們運行模型時,引入了對某些行為的偏置,現(xiàn)而不是簡單地使獎勵等于零。
在第一個例子中,我們顯示了如果對一個動作進行積極的評價,會發(fā)生什么;在第二個例子中,顯示對一個動作進行消極的評價,會發(fā)生什么。
如果我們積極評價動作『+KILLS』的輸出
如果我們消極評價動作『+KILLS』的輸出
更真實的玩家偏好
現(xiàn)在我們可以嘗試近似模擬玩家的真實偏好。在這個案例中,我們隨機化一些獎勵以允許遵守以下兩條規(guī)則:
因此,我們對人頭和補兵的獎勵都是最小值-0.05,而其它行動的獎勵都在-0.05 和 0.05 之間隨機生成。
隨機化玩家獎勵后的輸出。
隨機化玩家所有動作的獎勵后所獲得的輸出。
最終輸出,顯示給定當前金幣差值狀態(tài)和分鐘的每個動作的值
總結(jié)及玩家對獎勵的反饋
我過分簡化了某些特征(如「kills」實際上并不代表人頭的數(shù)量),數(shù)據(jù)也不太可能表示正常的匹配。然而,我希望本文能夠清晰地展現(xiàn)一個有趣的概念,鼓勵更多人討論這一領(lǐng)域今后的走向。
首先,我將列出在實現(xiàn)之前需要作出的重要改進:
1. 使用更多能夠代表整個玩家群體(而不只是競爭性比賽)的數(shù)據(jù)計算 MDP。
2. 提高模型效率,將其計算時間控制在更合理的范圍。蒙特卡洛以耗時著稱,因此我們將探索更高效的算法。
3. 采用更高級的參數(shù)優(yōu)化以進一步改進結(jié)果。
4. 捕捉、映射原型玩家對更真實的獎勵信號的反饋。
我們引入了針對影響模型輸出而給予的獎勵,但該如何獲得獎勵?我們可以考慮幾種方法,但是根據(jù)我之前的研究,我認為最好的方法就是考慮一種既涉及到行動的個體質(zhì)量又考慮到轉(zhuǎn)變質(zhì)量的獎勵。
這變得越來越復雜,我不會在此文中展開,但簡而言之,我們想為玩家匹配決策,其中下一個最佳決策取決于最新情況。比如,如果一隊玩家將對方全部殲滅,他們可能會去拿大龍。我們的模型已經(jīng)將一個序列中事件發(fā)生的概率考慮在內(nèi),因此,我們也應(yīng)該用同樣的方式思考玩家的決策。這一想法來自一篇論文《DJ-MC: A Reinforcement-Learning Agent for Music Playlist Recommendation》,該論文闡釋了如何更加詳細地將反饋映射出來。
反饋的收集方式?jīng)Q定了我們的模型能有多成功。依我之見,我們這么做的最終目標是為玩家的下一步?jīng)Q策提供最佳實時建議。如此一來,玩家就能從根據(jù)比賽數(shù)據(jù)算出的幾條最佳決策(根據(jù)獲勝情況排序)中做出選擇。可以在多個游戲中跟蹤該玩家的選擇,以進一步了解和理解該玩家的偏好。這也意味著,我們不僅可以追蹤決策的結(jié)果,還能預測該玩家的意圖(例如,該玩家試圖拆塔結(jié)果卻被殺了),甚至還能為更高級的分析提供信息。
當然,這樣的想法可能造成團隊成員意見不符,也可能讓游戲變得沒那么令人興奮。但我認為這樣的想法可能對低水平或者常規(guī)水平的玩家有益,因為這種水平的游戲玩家難以清楚的溝通游戲決策。這也可能幫助識別「毒瘤」玩家,因為團隊指望通過投票系統(tǒng)來統(tǒng)一意見,然后就能看出「毒瘤」玩家是不是一直不遵循團隊計劃,忽略隊友。
實時游戲環(huán)境中的模型推薦投票系統(tǒng)示例
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03