1. 程式人生 > >遊戲人工智能 讀書筆記 (二) 遊戲人工智能簡史

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

2016年 玩遊戲 mas gre googl 小算法 cti count 意義

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. Deepblue

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

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