0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用深度學(xué)習(xí)提高CSGO用戶游戲體驗(yàn)的嘗試

zhKF_jqr_AI ? 來源:未知 ? 作者:胡薇 ? 2018-05-31 16:42 ? 次閱讀

事實(shí)上這是幾個(gè)月前的一個(gè)PPT演講。在GDC 2018上,Valve游戲工程師John McDonald介紹了度假社用深度學(xué)習(xí)提高CSGO用戶游戲體驗(yàn)的嘗試。之所以說是“提高用戶體驗(yàn)”而不是“鑒別開掛行為”,是因?yàn)閂社這次不僅把AI技術(shù)用在了反作弊機(jī)制上,還對(duì)普通玩家心理進(jìn)行了透徹研究。

2018年1月Steam游戲人數(shù)排行前三名

CSGO中的掛

CSGO(中文名《反恐精英:全球攻勢(shì)》)是V社于2012年推出的一款第一人稱射擊團(tuán)隊(duì)競(jìng)技游戲,它是CS系列的第四部作品,6年來一直深受國內(nèi)外玩家的歡迎。作為一款FPS游戲,玩家惡意開掛幾乎是不可能避免的,相比上圖中排名第一的PUBG,其實(shí)CSGO里的掛并沒有多到人神共憤的程度。

但有掛玩家就會(huì)生氣,一生氣他們就會(huì)抱怨,會(huì)用腳投票。

根據(jù)John McDonald透露的數(shù)據(jù),現(xiàn)在CSGO的月活人數(shù)有1240萬,平均日活約300萬,組隊(duì)時(shí)間平均1-2秒。對(duì)于一個(gè)已經(jīng)推出6年的游戲,保持這樣的數(shù)據(jù)并穩(wěn)居Steam榜單前三是不容易的,它離不開開發(fā)團(tuán)隊(duì)為玩家打造的游戲環(huán)境。

可就在2016年,V社收到了鋪天蓋地的玩家投訴,許多人用發(fā)郵件、reddit發(fā)帖等方式告狀:你們的游戲有很多掛。面對(duì)玩家的怒火和無法迅速排查開掛行為的棘手情況,V社有點(diǎn)懵。

CSGO是V社自己開發(fā)的游戲,它自帶官方VAC系統(tǒng),能對(duì)開掛者實(shí)施高效封禁——但火爆的游戲背后總伴隨經(jīng)濟(jì)利益,許多人針對(duì)VAC開發(fā)了不少能繞過監(jiān)控的掛,或是看準(zhǔn)V社喜歡秋后算賬的風(fēng)格找漏洞,既奪走了心存僥幸的玩家的賬號(hào),也毀掉了正常比賽的玩家的游戲體驗(yàn)。

時(shí)至今日,許多人在調(diào)侃CSGO“已涼”時(shí)都不忘把“掛太多”拉出來重點(diǎn)批評(píng)一下。所謂愛之深、責(zé)之切。他們對(duì)游戲的熱愛是真實(shí)的,但他們對(duì)外掛的憎惡也是深入骨髓的。而令人無奈的一個(gè)現(xiàn)實(shí)是,制作一個(gè)CSGO外掛的成本非常低,如果某人還保留著當(dāng)初《半條命2》的外掛,他就會(huì)發(fā)現(xiàn)這個(gè)掛居然也可能繼續(xù)在CSGO里生效。

CSGO和深度學(xué)習(xí)

2015年,CSGO的Overwatch正式上線(別想歪!我真的沒笑),這是一個(gè)監(jiān)督功能,允許獲得裁決資質(zhì)的選手可以通過觀看疑似作弊選手的Demo來判斷其是否作弊或者調(diào)整了游戲參數(shù)。如果玩家發(fā)現(xiàn)存在開掛行為,他們可以把Demo提交給協(xié)調(diào)員進(jìn)一步審核,之后官方會(huì)跟進(jìn)處理并反饋結(jié)果。

Overwatch本身可以初步判斷玩家有沒有開掛,它背后的算法是樸素貝葉斯,系統(tǒng)先為開掛找到一個(gè)閾值,然后對(duì)結(jié)果進(jìn)行分類。但實(shí)踐證明,這個(gè)基于樸素貝葉斯的系統(tǒng)太寬容了,它只能辨別出非常明顯的開掛行為,然后把大多數(shù)微妙的Demo——漏網(wǎng)之魚反饋給真人。

對(duì)于玩家而言,也許Overwatch頗為雞肋,但在深度學(xué)習(xí)眼里,這就成了不可多得的數(shù)據(jù)來源。

模型簡介

V社開發(fā)的反作弊深度學(xué)習(xí)系統(tǒng)叫VACnet。因?yàn)槊嫦蛐蛄刑幚砣蝿?wù),它被設(shè)計(jì)成一個(gè)時(shí)間步長為140的GRU RNN,包含一個(gè)輸入層(256個(gè)神經(jīng)元)和4個(gè)隱藏層(每層256個(gè)神經(jīng)元)。網(wǎng)絡(luò)使用的激活函數(shù)是ReLU,損失函數(shù)是二元交叉熵,優(yōu)化算法是Adagrad。

VACnet在Overwatch搜集的數(shù)據(jù)中訓(xùn)練,其中包含玩家提供的內(nèi)容和官方收集的內(nèi)容,是個(gè)大型優(yōu)質(zhì)數(shù)據(jù)集。雖然現(xiàn)在也有用深度學(xué)習(xí)生成數(shù)據(jù)的方法,但這種做法容易讓神經(jīng)網(wǎng)絡(luò)鉆空子,所以開發(fā)人員用的還是真實(shí)的游戲Demo。

模型的輸入不是常規(guī)的長向量,這里他們把140次射擊當(dāng)做一個(gè)序列,按順序記下每個(gè)視頻幀的所有信息。這些輸入被稱為(X,y),其中X就是我們常說的特征,它包括用了什么武器、射擊后的結(jié)果、(如果擊中)目標(biāo)距離有多遠(yuǎn)、瞄準(zhǔn)角度調(diào)整用時(shí)等。訓(xùn)練到最后,模型需要能擬合X數(shù)據(jù)并反復(fù)驗(yàn)證學(xué)習(xí)質(zhì)量,直到輸出最佳結(jié)果。

推斷和硬件

完成訓(xùn)練后,模型就要被用于推斷(饋送)。

John McDonald把這一過程類比成制作牛肉漢堡。當(dāng)開發(fā)人員面對(duì)Overwatch時(shí),他們手中沒有現(xiàn)成的牛肉肉泥,而是一頭不斷吃草長胖的牛。為了讓數(shù)據(jù)能為深度學(xué)習(xí)模型所用,開發(fā)人員花了95%的時(shí)間和精力把牛切成牛肉——數(shù)據(jù),然后把剩下的1%用于把牛肉攪碎——深度學(xué)習(xí),4%用于制作漢堡——訓(xùn)練模型。

據(jù)介紹,V社平均每天收集60萬場(chǎng)5v5比賽,每場(chǎng)比賽耗時(shí)4分鐘,一共是240萬分鐘CPU耗時(shí)(一天)。然而一天只有1440分鐘,這也就是說,為了達(dá)成目標(biāo),他們至少要購買1700塊GPU。這時(shí),玩家們獻(xiàn)給G胖的供奉就開始發(fā)揮作用了——他們一共買了3456塊CPU。下圖是處理器的冰山一角,它包含64個(gè)刀片式服務(wù)器,每個(gè)刀片有54個(gè)CPU核心、128GB RAM,僅用于模型推斷。

按照之前V社制定的反作弊邏輯:玩家舉報(bào)——協(xié)調(diào)員篩選——玩家裁定——開掛/沒開掛,現(xiàn)在他們有了VACnet,舉報(bào)環(huán)節(jié)就又增加了一個(gè)“VACnet舉報(bào)”。據(jù)了解,在所有舉報(bào)中,玩家舉報(bào)的開掛證實(shí)率為15-30%,而且種類非常豐富;而VACnet的開掛證實(shí)率高達(dá)85%-90%,但種類相對(duì)單一。

效果評(píng)價(jià)

正如之前所述的,VACnet的效果是令人滿意的,盡管缺乏靈活性和通用性,但它至少找出了大部分開掛者的“罪證”。如下圖所示,剛被加入游戲反作弊機(jī)制中時(shí),它就小幅提高了系統(tǒng)檢測(cè)開掛數(shù)的數(shù)量,加入更多訓(xùn)練數(shù)據(jù)后,它在2018年前后又形成了一個(gè)劇增的峰值。而且就實(shí)際應(yīng)用來看,從VACnet提出至今,它還沒有誤判過一起作弊事件,當(dāng)然最后的真人檢測(cè)也在其中發(fā)揮了重要作用。

從用戶反饋來看,這個(gè)深度學(xué)習(xí)嘗試也取得了史無前例的成功。自從引入Overwatch和VACnet以來,在reddit上抱怨開掛的CSGO玩家數(shù)大幅降低,僅為2016年高峰期的1%。這種情況將有利于老玩家的存續(xù)和新玩家的進(jìn)駐,也是V社所喜聞樂見的。

但VACnet真的很完美嗎?其實(shí)不盡然。除了之前提到了它似乎只能識(shí)別某幾種開掛行為,它還有一個(gè)更嚴(yán)峻的缺點(diǎn)。訓(xùn)練時(shí),當(dāng)完成“舉報(bào)——協(xié)調(diào)員篩選——玩家裁定——開掛/沒開掛”這一流程后,為了保證模型的學(xué)習(xí)效果,經(jīng)真人裁定的數(shù)據(jù)會(huì)被再次饋送進(jìn)模型進(jìn)行學(xué)習(xí)。

這就引出一個(gè)問題,如果有人開發(fā)了一個(gè)掛,它能在前幾槍自描、鎖頭,后幾槍回歸正常,那系統(tǒng)該怎么判斷?如果是個(gè)真人裁判,他肯定會(huì)想:emm,這貨有問題,肯定開掛了。但機(jī)器不知道這樣的判斷依據(jù),它只能把它標(biāo)成開掛,然后同時(shí)從開掛的時(shí)間段和沒開掛的時(shí)間段內(nèi)去強(qiáng)行學(xué)習(xí)開掛依據(jù)。這會(huì)導(dǎo)致模型性能變差。

針對(duì)這個(gè)問題,目前V社找到的補(bǔ)救方法是添加一個(gè)自動(dòng)的重新訓(xùn)練功能,它能修補(bǔ)啟發(fā)式算法帶來的漏洞。二是建立一個(gè)全新的沒有經(jīng)驗(yàn)的模型,由它來拓展開掛行為檢測(cè)范圍,增加系統(tǒng)能識(shí)別的開掛種類。第三則是把VACnet應(yīng)用到其他steam游戲上,追求泛化通用化。

小結(jié)

John McDonald認(rèn)為,深度學(xué)習(xí)是一種新興涌現(xiàn)的技術(shù),它將改革傳統(tǒng)的反作弊方式。V社現(xiàn)在已經(jīng)把深度學(xué)習(xí)用于反開掛、反作弊和Dota2英雄選擇等,而其中最受關(guān)注的就是Dota2的“大老師”。

就目前而言,玩家無需擔(dān)心有人用深度學(xué)習(xí)技術(shù)開發(fā)對(duì)抗VACnet的工具,因?yàn)閂社手里掌握著其他人難以想象的游戲數(shù)據(jù),對(duì)于深度學(xué)習(xí)來說,數(shù)據(jù)越多,模型性能越好,這是毫無疑問的。唯一需要擔(dān)心的一點(diǎn)是,這個(gè)用于訓(xùn)練的數(shù)據(jù)集是從比賽里收集的,有人可能會(huì)惡意污染數(shù)據(jù)。雖然似乎人們可以一眼分辨出這個(gè)人有沒有開掛,但如果外掛能做到欺騙玩家,那它也能騙過VACnet,并干擾它的訓(xùn)練和學(xué)習(xí)。

綜合整個(gè)演講,我們可以下這么一個(gè)結(jié)論:VACnet是有效的,但它的反作弊能力并沒有我們想象中的那么突出,它還是不能做到完全杜絕外掛。如果一個(gè)反作弊系統(tǒng)連玩家有沒有作弊都分辨不出來,那它的開發(fā)者其實(shí)并沒有消滅外掛的決心,而只是關(guān)心玩家的游戲體驗(yàn)。

事實(shí)上這也正是VACnet成功的地方,它立竿見影地減少了投訴帖子數(shù)量,穩(wěn)定住了玩家的心,讓CSGO穩(wěn)居玩家活躍榜的前三位。當(dāng)玩家們?cè)俅握劶坝螒蚶锏拈_掛行為時(shí),他們也會(huì)樂于討論V社在反作弊上的努力,并褒揚(yáng)深度學(xué)習(xí)的實(shí)際效果。

對(duì)于一個(gè)普通玩家來說,這樣的結(jié)果是喜是憂呢?

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:V社:用深度學(xué)習(xí)檢測(cè)CSGO中的開掛行為

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Nanopi深度學(xué)習(xí)之路(1)深度學(xué)習(xí)框架分析

    的初學(xué)者。日記目標(biāo)是構(gòu)建深度學(xué)習(xí)環(huán)境,使用的是TensorFlow后端的Keras,Keras 是一個(gè) Python 編寫的高級(jí)神經(jīng)網(wǎng)絡(luò) API,它能夠以 TensorFlow, CNTK, 或者
    發(fā)表于 06-04 22:32

    深度學(xué)習(xí)與數(shù)據(jù)挖掘的關(guān)系

    ;而深度學(xué)習(xí)使用獨(dú)立的層、連接,還有數(shù)據(jù)傳播方向,比如最近大火的卷積神經(jīng)網(wǎng)絡(luò)是第一個(gè)真正多層結(jié)構(gòu)學(xué)習(xí)算法,它利用空間相對(duì)關(guān)系減少參數(shù)數(shù)目以提高訓(xùn)練性能,讓機(jī)器認(rèn)知過程逐層進(jìn)行,逐步抽象
    發(fā)表于 07-04 16:07

    什么是深度學(xué)習(xí)?使用FPGA進(jìn)行深度學(xué)習(xí)的好處?

    使用FPGA進(jìn)行深度學(xué)習(xí)推理。事實(shí)上,微軟的“ Project Brainwave ”在云端使用 FPGA 進(jìn)行推理,并宣布將搜索引擎中 RNN 計(jì)算的延遲和吞吐量提高了 10 倍以上。用戶
    發(fā)表于 02-17 16:56

    深度學(xué)習(xí)應(yīng)用入門

    深度學(xué)習(xí)技術(shù) 這一輪AI的技術(shù)突破,主要源于深度學(xué)習(xí)技術(shù),而關(guān)于AI和深度學(xué)習(xí)的發(fā)展歷史我們這里
    發(fā)表于 09-30 14:35 ?2次下載
    <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>應(yīng)用入門

    深度學(xué)習(xí)科普文:最通俗易懂 從老虎機(jī)到電子游戲

    機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)的專家Emmanuel Ameisen分享了自己對(duì)深度學(xué)習(xí)的理解,簡明扼要的方式為大家講述了深度
    的頭像 發(fā)表于 06-12 19:00 ?4970次閱讀

    深度學(xué)習(xí)是什么?了解深度學(xué)習(xí)難嗎?讓你快速了解深度學(xué)習(xí)的視頻講解

    深度學(xué)習(xí)是什么?了解深度學(xué)習(xí)難嗎?讓你快速了解深度學(xué)習(xí)的視頻講解本文檔視頻讓你4分鐘快速了解
    發(fā)表于 08-23 14:36 ?16次下載

    如何使用深度學(xué)習(xí)執(zhí)行文本實(shí)體提取

    隨著近期深度學(xué)習(xí)領(lǐng)域快速發(fā)展,我們可以將這些算法應(yīng)用到 NLP 任務(wù)中,并得到準(zhǔn)確率遠(yuǎn)超傳統(tǒng)方法的結(jié)果。我嘗試過分別使用深度學(xué)習(xí)和傳統(tǒng)方法來
    的頭像 發(fā)表于 12-25 19:15 ?575次閱讀

    汽車背后的故事 通過深度學(xué)習(xí)提高和發(fā)展車輛感知

    汽車背后的故事 通過深度學(xué)習(xí)提高和發(fā)展車輛感知
    發(fā)表于 11-01 08:24 ?2次下載
    汽車背后的故事 通過<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>提高</b>和發(fā)展車輛感知

    讀懂深度學(xué)習(xí),走進(jìn)“深度學(xué)習(xí)+”階段

    人工智能的概念在1956年就被提出,如今終于走入現(xiàn)實(shí),離不開一種名為“深度學(xué)習(xí)”的技術(shù)。深度學(xué)習(xí)的運(yùn)作模式,如同一場(chǎng)傳話游戲。給神經(jīng)網(wǎng)絡(luò)輸入
    的頭像 發(fā)表于 01-14 23:34 ?800次閱讀
    讀懂<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>,走進(jìn)“<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>+”階段

    什么是深度學(xué)習(xí)算法?深度學(xué)習(xí)算法的應(yīng)用

    什么是深度學(xué)習(xí)算法?深度學(xué)習(xí)算法的應(yīng)用 深度學(xué)習(xí)算法被認(rèn)為是人工智能的核心,它是一種模仿人類大腦
    的頭像 發(fā)表于 08-17 16:03 ?1863次閱讀

    深度學(xué)習(xí)框架是什么?深度學(xué)習(xí)框架有哪些?

    深度學(xué)習(xí)框架是什么?深度學(xué)習(xí)框架有哪些?? 深度學(xué)習(xí)框架是一種軟件工具,它可以幫助開發(fā)者輕松快速
    的頭像 發(fā)表于 08-17 16:03 ?2479次閱讀

    深度學(xué)習(xí)框架的作用是什么

    的任務(wù),需要使用深度學(xué)習(xí)框架。 深度學(xué)習(xí)框架是對(duì)深度學(xué)習(xí)算法和神經(jīng)網(wǎng)絡(luò)模型進(jìn)行構(gòu)建、調(diào)整和優(yōu)化的
    的頭像 發(fā)表于 08-17 16:10 ?1423次閱讀

    深度學(xué)習(xí)框架和深度學(xué)習(xí)算法教程

    深度學(xué)習(xí)框架和深度學(xué)習(xí)算法教程 深度學(xué)習(xí)是機(jī)器學(xué)習(xí)領(lǐng)
    的頭像 發(fā)表于 08-17 16:11 ?953次閱讀

    深度學(xué)習(xí)服務(wù)器怎么做 深度學(xué)習(xí)服務(wù)器diy 深度學(xué)習(xí)服務(wù)器主板什么

    深度學(xué)習(xí)服務(wù)器怎么做 深度學(xué)習(xí)服務(wù)器diy 深度學(xué)習(xí)服務(wù)器主板
    的頭像 發(fā)表于 08-17 16:11 ?756次閱讀

    深度學(xué)習(xí)在語音識(shí)別中的應(yīng)用及挑戰(zhàn)

    一、引言 隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,其在語音識(shí)別領(lǐng)域的應(yīng)用也日益廣泛。深度學(xué)習(xí)技術(shù)可以有效地提高語音識(shí)別的精度和效率,并且被廣泛應(yīng)用于各種
    的頭像 發(fā)表于 10-10 18:14 ?749次閱讀