您現在的位置是:首頁 > 遊戲

讓AI幫你上分!使用機器學習來挑選Dota2補位英雄

由 雷峰網leiphone 發表于 遊戲2022-10-13
簡介png&amp

dota如何讓電腦選英雄

雷鋒網 AI 科技評論按:本文作者朝陽,原文載於集智專欄,雷鋒網 AI 科技評論獲其授權釋出。

機器學習不只是書本和文件中的枯燥理論,事實上,機器學習方法已經可以應用在我們日常生活的很多場景中,甚至是我們在玩遊戲的時候,機器學習也能幫我們一起哈啤。

比如在玩Dota2的時候,大家除了經常抱怨伺服器問題,另外一個頻繁出現的問題就是:「臥槽這麼多英雄我該玩什麼才好,隨機吧又怕隨出個不會玩的,選個大哥吧又怕背鍋。。。快快快開始掉錢了,選什麼選什麼。。。算了還是隨機吧~~~臥槽米波!!!」

&;amp;lt;img alt="讓AI幫你上分!使用機器學習來挑選Dota2補位英雄" data-isLoading="0" src="/static/img/blank.gif" data-src=&;amp;quot;https://static。leiphone。com/uploads/new/article/pic/201708/b16e245628509e65307e44ca5bddd7c9。jpg&;amp;quot; data-rawwidth=&;amp;quot;2560&;amp;quot; data-rawheight=&;amp;quot;3055&;amp;quot; class=&;amp;quot;origin_image zh-lightbox-thumb&;amp;quot; width=&;amp;quot;2560&;amp;quot; data-original=&;amp;quot;https://pic2。zhimg。com/v2-1ee28a0d7f0bcb8635234dfd1fe415dd_r。jpg&;amp;quot; _alt="讓AI幫你上分!使用機器學習來挑選Dota2補位英雄" data-isLoading="0" src="/static/img/blank.gif" data-src=&;amp;quot;https://static。leiphone。com/uploads/new/article/pic/201708/b16e245628509e65307e44ca5bddd7c9。jpg&;amp;quot;/&;amp;gt;

讓AI幫你上分!使用機器學習來挑選Dota2補位英雄

玩米波需要超高的手速和手感,因此不是所有玩家都能玩米波

選英雄絕對是一個難題,對於職業選手而言更是如此,賽前BP時如果出現問題將會直接導致比賽失去懸念,那麼冥冥之中有沒有什麼東西能在我們選英雄的時候幫我們提高勝率呢?當然有,機器學習就可以幫我們選出一手好英雄。

讓AI幫你上分!使用機器學習來挑選Dota2補位英雄

&;amp;lt;img alt="讓AI幫你上分!使用機器學習來挑選Dota2補位英雄" data-isLoading="0" src="/static/img/blank.gif" data-src=&;amp;quot;https://static。leiphone。com/uploads/new/article/pic/201708/e25b977bc42df0a6fbb53de959833a17。jpg&;amp;quot; data-rawwidth=&;amp;quot;1280&;amp;quot; data-rawheight=&;amp;quot;739&;amp;quot; class=&;amp;quot;origin_image zh-lightbox-thumb&;amp;quot; width=&;amp;quot;1280&;amp;quot; data-original=&;amp;quot;https://pic3。zhimg。com/v2-4879f823a08e9bfbeeb4987188917b9a_r。jpg&;amp;quot; _alt="讓AI幫你上分!使用機器學習來挑選Dota2補位英雄" data-isLoading="0" src="/static/img/blank.gif" data-src=&;amp;quot;https://static。leiphone。com/uploads/new/article/pic/201708/e25b977bc42df0a6fbb53de959833a17。jpg&;amp;quot;/&;amp;gt;

好的BP對於職業比賽而言非常重要

Reddit上面的網友Andrei Apostoae剛剛釋出了一個很有意思的機器學習專案(網站地址見文末),叫做Dota2 Predictor。這個專案就是使用機器學習中的神經網路以及邏輯迴歸方法,透過分析50萬場Dota2比賽來幫助大家選擇比賽中的最後一個英雄,以及針對對戰雙方的英雄陣容來預測比賽勝率。這個使用Python編寫的程式同時提供了GUI介面,其介面如下:

讓AI幫你上分!使用機器學習來挑選Dota2補位英雄

如上圖所示,在輸入完9個已選英雄然後再輸入平均天梯分之後,就可以讓程式為你推薦一些最能帶隊伍走向勝利的英雄來供你選擇。

根據作者的說法,該演算法的最終預測可靠性可以達到0。63的ROC AUC評分——確實不是很高,但已經非常不錯了,要知道影響一場比賽的可不僅僅是陣容,選手的狀態、發揮以及一些偶然因素會更加關鍵。而如果僅憑陣容就能佔得一絲先機,對於隊伍而言已經是再好不過了。

該程式使用Python 2。7編寫,程式內同時提供了比賽資料下載和模型訓練的介面,以便大家自行使用最新版本的比賽結果來進行預測。程式預設提供了50萬場比賽的訓練結果模型,而且為了提升精準度,演算法考慮到了使用者的天梯分(MMR)對於比賽結果的影響。當然,透過這個程式我們也可以輕鬆得到當前版本下各個英雄的平均勝率比較。

這個工具一個最大的作用就是可以透過陣容來預測每一方的勝率,我們這裡不妨使用之前的比賽來測試一下。我們選取了TI7預選賽中LGD對陣VG的一場比賽,其對戰陣容是這樣的:

&;amp;lt;img alt="讓AI幫你上分!使用機器學習來挑選Dota2補位英雄" data-isLoading="0" src="/static/img/blank.gif" data-src=&;amp;quot;https://static。leiphone。com/uploads/new/article/pic/201708/2f9502ce82968966c44795859f94d831。png&;amp;quot; data-rawwidth=&;amp;quot;694&;amp;quot; data-rawheight=&;amp;quot;91&;amp;quot; class=&;amp;quot;origin_image zh-lightbox-thumb&;amp;quot; width=&;amp;quot;694&;amp;quot; data-original=&;amp;quot;https://pic1。zhimg。com/v2-41130595740039bfc28264369699340c_r。png&;amp;quot; _alt="讓AI幫你上分!使用機器學習來挑選Dota2補位英雄" data-isLoading="0" src="/static/img/blank.gif" data-src=&;amp;quot;https://static。leiphone。com/uploads/new/article/pic/201708/2f9502ce82968966c44795859f94d831。png&;amp;quot;/&;amp;gt;

讓AI幫你上分!使用機器學習來挑選Dota2補位英雄

我們將所有英雄輸入預測程式,然後點選預測按鈕,程式給出瞭如下的反饋:

讓AI幫你上分!使用機器學習來挑選Dota2補位英雄

&;amp;lt;img alt="讓AI幫你上分!使用機器學習來挑選Dota2補位英雄" data-isLoading="0" src="/static/img/blank.gif" data-src=&;amp;quot;https://static。leiphone。com/uploads/new/article/pic/201708/6dd917ac1d975f4dabe32a65a78505e7。png&;amp;quot; data-rawwidth=&;amp;quot;454&;amp;quot; data-rawheight=&;amp;quot;515&;amp;quot; class=&;amp;quot;origin_image zh-lightbox-thumb&;amp;quot; width=&;amp;quot;454&;amp;quot; data-original=&;amp;quot;https://pic4。zhimg。com/v2-6713a97afbeebef132ee15144c5fdc9f_r。png&;amp;quot; _alt="讓AI幫你上分!使用機器學習來挑選Dota2補位英雄" data-isLoading="0" src="/static/img/blank.gif" data-src=&;amp;quot;https://static。leiphone。com/uploads/new/article/pic/201708/6dd917ac1d975f4dabe32a65a78505e7。png&;amp;quot;/&;amp;gt;

(職業選手的天梯分一般都會高於6000,有些選手因為擅長打天梯所以分數會特別高,但不具有普遍參考性)

根據程式的預測,夜魘方(Dire)有56。12%的機率獲勝——這個勝率並不是非常高,意味著雙方的陣容基本勢均力敵,夜魘方只是略佔優勢。

那麼真實的比賽結果呢?其實是LGD的天輝方獲得了最後的勝利,程式預測失敗了——但是,讓我們不妨來看一下比賽的程序:

讓AI幫你上分!使用機器學習來挑選Dota2補位英雄

從經濟曲線中我們看出,夜魘方其實在中期具有很大優勢,直到55分鐘才突然崩盤,這可能源於一次失誤,但是我們已經可以知道,陣容上的部分優勢已經幫助夜魘方在中期建立了較大優勢,只是後期的發揮影響了比賽結果。程式的預測雖然是錯誤的,但並不是毫無意義的,夜魘方的英雄搭配仍然值得推薦!!

我們再來換一場比賽看看,我們選取了一場TI7預選賽南美賽區的比賽(有點菜雞互啄的味道)。我們直接上程式的預測結果:

讓AI幫你上分!使用機器學習來挑選Dota2補位英雄

&;amp;lt;img alt="讓AI幫你上分!使用機器學習來挑選Dota2補位英雄" data-isLoading="0" src="/static/img/blank.gif" data-src=&;amp;quot;https://static。leiphone。com/uploads/new/article/pic/201708/cad7216e64c7ef38811047ce3fb6172d。png&;amp;quot; data-rawwidth=&;amp;quot;453&;amp;quot; data-rawheight=&;amp;quot;512&;amp;quot; class=&;amp;quot;origin_image zh-lightbox-thumb&;amp;quot; width=&;amp;quot;453&;amp;quot; data-original=&;amp;quot;https://pic3。zhimg。com/v2-f03d53933990689dcb4dd29f8c2f4e6e_r。png&;amp;quot; _alt="讓AI幫你上分!使用機器學習來挑選Dota2補位英雄" data-isLoading="0" src="/static/img/blank.gif" data-src=&;amp;quot;https://static。leiphone。com/uploads/new/article/pic/201708/cad7216e64c7ef38811047ce3fb6172d。png&;amp;quot;/&;amp;gt;

我的天夜魘勝率這麼高,那這天輝方還打個毛——事實上比賽結果也確實是這樣,天輝被從頭虐到尾,輸的找不到北。

但是這個程式還有另外一個用途,就是可以幫助我們找出導致隊伍勝率這麼低的罪魁禍首——也就是找人背鍋。在上面的比賽中,如果我們把沙王換掉,比如說換做大屁股試試看。

讓AI幫你上分!使用機器學習來挑選Dota2補位英雄

&;amp;lt;img alt="讓AI幫你上分!使用機器學習來挑選Dota2補位英雄" data-isLoading="0" src="/static/img/blank.gif" data-src=&;amp;quot;https://static。leiphone。com/uploads/new/article/pic/201708/73254d5bd81879856a0c73d49fa38758。png&;amp;quot; data-rawwidth=&;amp;quot;452&;amp;quot; data-rawheight=&;amp;quot;404&;amp;quot; class=&;amp;quot;origin_image zh-lightbox-thumb&;amp;quot; width=&;amp;quot;452&;amp;quot; data-original=&;amp;quot;https://pic1。zhimg。com/v2-acf412a458733915f1b43e78a9e5dc60_r。png&;amp;quot; _alt="讓AI幫你上分!使用機器學習來挑選Dota2補位英雄" data-isLoading="0" src="/static/img/blank.gif" data-src=&;amp;quot;https://static。leiphone。com/uploads/new/article/pic/201708/73254d5bd81879856a0c73d49fa38758。png&;amp;quot;/&;amp;gt;

我們可以看到把沙王換掉之後的結果發生了巨大的變化,天輝方變成了有優勢的一方,這說明程式認為沙王這一手選的非常失敗,而真實比賽的結果呢?讓我們來看一看:

讓AI幫你上分!使用機器學習來挑選Dota2補位英雄

事實確實如此,沙王KDA僅有1,死亡次數達到10次實在是慘不忍睹。

當然,程式也僅僅是程式,並不具備未卜先知的能力,所作出的預測也僅僅具有參考意義。經過多次嘗試之後,我們會發現程式的某計算過程很容易陷入區域性最優,比如僅僅因為宙斯(zeus)的總體勝率很高,程式就會頻繁向玩家推薦使用宙斯這個英雄;又因為某些英雄(比如小精靈)的登場機率很低,程式就會對這些英雄的勝率做出錯誤的估計。

另外一點,由於訓練過程所分析的資料維度有限,某些陣容分析也會與大家的直覺相悖。比如說該程式在某一方已經擁有四個Carry的時候仍然會向玩家推薦幽鬼這個英雄。對於這一問題,作者解釋說因為程式並未分析陣容的位次而僅僅是分析過往比賽中英雄之間的相互影響狀況,所以導致最終推薦結果可能仍然無法貼近現實的比賽結果。也就是說,這個專案中用到的演算法仍然有著很大的進步空間,願意研究的同學可以前往 https://github。com/andreiapostoae/dota2-predictor 下載原始碼並進行除錯。

PS。 我站之前也做過類似的實驗專案,不過當時的研究重點是集中於某個英雄本身而不是比賽總體的陣容搭配,有興趣的讀者可以前往 https://jizhi。im/blog/post/dota2dom 一探究竟。

推薦文章