遊戲人工智能 讀書筆記 (二) 遊戲人工智能簡史

WeTest 導讀算法

從歷史來看,在很長的時間裏,創造一個能夠代替人類玩遊戲的機器人是惟一的在遊戲中應用人工智能的方式。而在人工智能發展的早期,絕大部分遊戲AI的研究者都在努力作出一個很牛的AI在棋類遊戲中打敗人類。這裏面一部分的緣由是,棋類遊戲蘊含着一些人類智能的基本因素。編程

 


 

大部分的棋類遊戲的規則都很簡單,可是在方寸的棋盤以內,七百年來無數的人類天才都指望找到最優的解法。所以一個能夠打敗頂尖的棋手的AI足以成爲人工智能的聖盃。人工智能專家尋找棋類AI的歷史能夠上溯到阿蘭-圖靈(Alan Turing)和克勞德-香農(Claude Shannon)的時代。在最先的時候,圖靈和香農就嘗試使用Minimax 算法來讓AI下棋,強化學習+自我對弈也很快被Arthur Samuel應用到跳棋(Checker)中(1959年)。設計模式

 

克勞德-香農網絡

 

棋類AI的發展中的一些里程碑(Milestone)以下:工具

1952年,A.S. Douglas 開發了第一個 井字棋(Tic-Tac-Toe)遊戲學習

1992年,基於神經網絡和temporal difference來進行自我對弈訓練的西洋雙陸棋(又稱 十五子棋)的AI "TD-Gammon" 就達到了人類的頂尖水平。這個AI對於領域外的人來講可能意義不大,可是對於人工智能技術來講,是很重要的一步,其中用到的不少技術也在後續的AI,如Alphago中獲得應用。測試

1994年,Chinook跳棋AI在跳棋世界錦標賽上打敗了世界冠軍;到了2007年,跳棋遊戲的最優解也被找到了。人工智能

 

Kasparov V.S. Deepbluespa

 

1997年,IBM的深藍在一個使人矚目的比賽中打敗了當時的國際象棋特級大師 Garry Kasparov。深藍是基於一個通過大量的國際象棋規則修正和棋盤評估修正後的極大極小算法來下棋的,而且是運行在一臺定製的超級計算機上。從人工智能研究的角度來講,可能在圈內沒有其在世界上對普通人的衝擊來的大。最主要的緣由是,在當時的人們看來,國際象棋在某種程度上象徵着人類智慧的最高等級。固然,人們不久就將這一榮譽放到圍棋上面了。設計

 

Alphago 和 李世石 註定載入史冊的5番棋

 

而後到了2016年,Google的DeepMind開發的Alphago在5番棋中打敗了韓國的李世石,這也標記着,圍棋也從表明着人類獨有的智慧的榮光的神壇上走了下來。而歷史的車輪在此刻也在逐漸的加快,第二年,中國的柯潔也在3番棋上輸給了升級版的AlphaGo, 然後面DeepMind也迅速的發佈了AlphaGo Zero 和 AlphaZero, 基於深度強化學習+MCTS+自我對弈的方式,徹底拋棄人類知識,只從棋類的規則出發,不單在圍棋上,在國際象棋和將棋上也一樣達到了世界最強的水平。所以,一時之間,各類機器狗橫行天下。而這一狀況,隨着Facebook開源了ELF的基於AlphaZero的圍棋算法以後會更加的嚴重。

 

 

打敗職業棋手,只需一塊GPU

 

除了棋類遊戲以外,牌類遊戲也是遊戲AI關注的一個焦點。相比於棋類這樣的徹底信息博弈遊戲,牌類這樣的非徹底信息博弈遊戲在本書中的關注很少。一方面來講,牌類遊戲有必定的運氣因素,同時還牽扯到和對手的博弈,不徹底是計算智能所關注的方向,更多的可能要和博弈論相結合。可是最近學術界在兩人無限注的德州撲克上取得的突破性進展,仍是值得關注的。目前德州AI Libratus是一套徹底和圍棋不同的算法,它是基於反事實遺憾最小化(Counter Factual Regret Minimization)的算法來尋找兩人博弈的一個納什均衡點。可是在多人博弈的問題上,例如麻將,多人德州,並無這樣的一個納什均衡,所以目前尚未比較好的算法。去年的時候,Libratus之父Prof. Sandholm來騰訊演講的時候就曾表示,目前不會投入精力來作多人的德州AI。

 

Tuomas Sandholm: 德州AI Libratus的創造者

 

另外一方面,和人工智能發展早期學術界的研究者一門心思的來搞棋類AI相比,遊戲業界一般要更現實一些,幹活的時候,無論怎麼樣先搞上線再說。和學術界關注理論上的突破相比,業界會更注重工程方面,無論是多low的算法,好用就行。這也讓早期人工智能技術和遊戲的結合主要是由業界引領。而他們也關注的領域也會窄一些,大部分的精力都投入到:遊戲中的NPC要怎麼用算法控制中去,但也有一些使用程序生成內容的嘗試。

 

 Halo 2

 

在最先的時候,受限於硬件設備和AI的能力,大部分的NPC行爲都是基於簡單的規則來進行控制的。直到微軟在2001年推出光暈(Halo), 才讓行爲樹成爲大部分遊戲控制NPC行爲的標配。但遊戲開發者一直致力於提升NPC行爲的合理性,從而提高玩家在遊戲中沉浸感。而在遊戲設計的時候,遊戲的開發者須要考慮到人工智能技術的限制,用某種方式避免人工智能算法產生」災難性」的後果,這裏面一個經典的例子就是 文明(Civilization)中扔核彈的甘地。

 

瘋狂的甘地

 

文明2有一個有趣的bug:瘋狂的甘地。

早期玩家都知道,印度文明一出如今視野裏,必須馬上絕不遲疑地臥薪嚐膽跟其餘文明媾合、集中所有力量不管多麼遙遠,也要把印度早早摁死。不管怎樣誘人的和平條約,都不要和印度簽署,必定要跟甘地(印度的領袖)死磕到底。

不然,一旦印度發展出核武器,就會瘋狂地四處亂炸,把全地球完全搞當。相比之下,鑫十五天簡直是個乖寶寶。

緣由很簡單。遊戲設定裏甘地是很是和平的,其野蠻度極低。文明發展,野蠻度愈來愈低,等到原子彈出現的時代,就差很少降到零。降到零是小事,一旦降爲負數,程序沒法處理負號,因而變成255,極大值。這是比希特勒還瘋狂好多倍的數值。因而一個極端和平的甘地,眨眼成了核彈狂魔。

 

回答來源自知乎用戶:齊遨

 

事實上,大部分的遊戲大做都某種程度上結合了必定的人工智能技術,以期讓遊戲內NPC的行爲能夠自適應於不一樣的玩家(V社(Valve)的半條命,世嘉的異形),或者能夠自動化的生成遊戲中的某些場景(模擬人生系列,文明系列,暗黑破壞神系列)。

另外一個遊戲業界比較關注的方面是瞭解遊戲中的玩家。這個在最初的時候是更偏重於數據挖掘的,09年的時候Zynga就經過一些數據挖掘技術來分析遊戲中不間斷收集來的數據,從而能夠半自動的更新其在Facebook 上的農場遊戲(FarmVille)遊戲以適應玩家需求。到了18年的今天,相信各個遊戲公司內都會有或大或小的數據分析團隊。如今業界大部分都仍是基於玩家在遊戲外部的一些數據來作數據分析和數據挖掘。不過如今也有一些公司但願經過AI技術來分析玩家在遊戲內的行爲來更好的對玩家建模。不過這上面也會有一些爭議,好比EA提交的「動態難度調整」論文就經過記錄玩家在線遊戲的方式,包括你的遊戲技巧,進攻性,以及遊戲瓶頸期(也就是難度時間)來自動爲你匹配合適的對手,讓你的遊戲體驗更爲平滑,但一方面也是在鼓勵你氪金。

 

EA發佈的引發爭議論文

 

近些年來,學術界也開始投入愈來愈多的精力在視頻遊戲上面。不過學術界仍是更但願可以開發出一個AI能夠在視頻遊戲中也超過人類最高的水平。在視頻遊戲AI人工智能中一個重要的里程碑是由谷歌的Deepmind在2014年達成的。Deepmind開發的程序以遊戲的原始圖像做爲輸入,學會了經典的雅達利(Atari) 2600遊戲主機中的一些遊戲,並超過人類的最高得分。目前Deepmind和其餘的一些團隊應該投入了不少精力在研究星際爭霸AI,而OpenAI也在研究Dota中的AI。不過目前尚未像圍棋同樣的突破出現, 只是有一些API提供出來供研究人員去使用。

 

Deepmind 提供的星際2的建模方式

 

因此,能夠明顯看到,學術界和工業界對於遊戲人工智能的研究方向是有必定的區別的。對於人工智能的學院派來講,人工智能是在遊戲前面的,他們的目標是儘量的應用人工智能和計算智能的技術來加強NPC的行爲能力。但一般他們會關注在一些廣泛意義上比較簡單,面向研究,很難擴展的項目下,這些項目同時在商業上價值比較低。而遊戲業界一般抱怨學術界缺少領域知識和實踐的經驗,所以無法解決遊戲製做過程當中的真實問題和挑戰。NPC的實時的自適應和學習就是一個很好的例子。對於學術界的研究者來講,創造一個能夠經過和玩家以及其餘NPC們進行交互來學習的NPC是使人興奮的。可是,遊戲開發者會擔憂這樣會讓這些NPC不按設計那樣工做,因而極可能會」破壞整個遊戲」。這個其實在聊天機器人上面就出現過教訓。幾乎全部的沒有強規則約束的聊天機器人都被網友們玩壞了。

 

另外,書中其實提了一個頗有意思的觀點:

當咱們思考怎麼在如今的視頻遊戲中應用人工智能的時候,很重要的是,咱們要明白大多數的遊戲類型都是從早期的遊戲設計中慢慢發展而來的。舉例說來,第一個平臺遊戲是80年代中期發行的,第一個第一人稱射擊遊戲和實時戰略遊戲都是90年代早期發行的。在那個時代,在遊戲中使用先進的人工智能技術的能力是遠遠不如如今的。因此遊戲設計師只能在缺少人工智能能力的狀況下設計遊戲。這些基本的設計模式大部分都被如今的遊戲繼承了。所以能夠說,大部分的遊戲其實在設計的時候都是不須要人工智能的。對於但願創造一個有趣的人工智能遊戲角色的學術界研究者來講,最好的方式多是設計一種新的從源頭上就須要人工智能的遊戲。

 

不過雖然有分歧,樂觀的看,其實學術界和工業界不必用一樣的一套方法去解決一樣的問題。雙方作的事情雖然有區別,仍是其實仍是能夠互相之間帶來新的方法和思路。一方面來講,NPC的擬人化仍是有更多的提升空間的,好比說情感的捕捉和表達。這個也是學術界和工業界都關注的問題。固然還有一方面的觀點是,其實如今NPC已經基本上在工程上被解決了,對於遊戲來講,創造一個AI並非一件困難的事情,可能雙方須要更關注一些玩家建模和程序化生成內容的研究。總體上來看,學術界和工業界都是爲了共同的目標互相共享實踐經驗和理論知識:最大程度的推動人工智能技術和改進遊戲。

 

最後,這本書不是關於遊戲人工智能在工業界的實踐。相反,它本質上是一本學院的教科書,所以要了解更多人工智能在遊戲業界的應用狀況,能夠參考書中的介紹的《遊戲人工智能編程智慧》系列。

 

本文內容包含如下章節

Chapter 1.2  A Brief History of Artificial Intelligence and Games

本書英文版: Artificial Intelligence and Games - A Springer Textbook


 

目前,騰訊WeTest重磅發佈「深度兼容測試」服務,首次將AI能力落地測試行業。該服務整合了騰訊多年來在AI模擬自動化探索、AI結果檢測與分析上累積的經驗,將AI與自動化能力植入編寫腳本的兼容測試流程中,大幅提高測試效率,下降70%的測試成本,爲從業者良好解決「人員,設備,流程,工具,環境」五大適配兼容測試難題。

 

點擊:http://wetest.qq.com/activities/welfare2018,即刻領取禮包。

 

若是使用當中有任何疑問,歡迎聯繫騰訊WeTest企業QQ:2852350015

相關文章
相關標籤/搜索