天津火星時代教育
室內(nèi)設(shè)計/UI設(shè)計/ue設(shè)計/平面設(shè)計/網(wǎng)頁設(shè)計/電商美工/游戲開發(fā)
可能有人會問,AI在游戲中不是很早就應(yīng)用了嗎?
是的,其實(shí)有電子游戲就有AI。
在遠(yuǎn)古的年代的游戲Pong,你的對手就是AI;
紅白機(jī)年代的中國象棋游戲,你的對手就是AI;
瑪麗那只怪物也是AI。
這里的AI指的是游戲中對手使用的智能,所以AI很早就應(yīng)用在游戲中了。
但在本篇中討論的,是近幾年來逐漸發(fā)展起來的,基于深度學(xué)習(xí)(也有基于運(yùn)籌學(xué)和博弈論等學(xué)科)的AI技術(shù)。
應(yīng)該說,本文討論的AI會范圍會更大一點(diǎn),并不止步于怪物、NPC的智能。
我希望通過這篇文章,看一下現(xiàn)在AI到底能為游戲行業(yè)帶來什么。
我會列出一些當(dāng)前的技術(shù)引用,也會有一部分我自己的想法。
較后恐嚇一下我的同事們,你們會被AI替代嗎?
AI為啥這么火?
AI近幾年有多火,我就不作論述了。但為什么AI這么火呢?不同的人可能有不一樣的看法,這里只講一下我自己的看法。
現(xiàn)在我們說的AI技術(shù),大部分跟深度神經(jīng)網(wǎng)絡(luò)有關(guān)。我認(rèn)為AI之所以火了,就是因為深度神經(jīng)網(wǎng)絡(luò)的加持。
深度神經(jīng)網(wǎng)絡(luò)獨(dú)有的解決問題的方式,使得人類解決問題的能力了一個新檔次。
所以,我希望用比較簡單的語言來描述一下,深度神經(jīng)網(wǎng)絡(luò)是什么,好讓大家了解,為什么AI技術(shù)會突然獲得高速的發(fā)展。
其實(shí)要明白深度神經(jīng)網(wǎng)絡(luò)并不難,大家可以把神經(jīng)網(wǎng)絡(luò)看作是一個函數(shù)。函數(shù)的一個重要功能,就是把兩個東西對應(yīng)起來。
在以前,我們要電腦識別一個手寫數(shù)字“8”,那么程序員就需要寫一個函數(shù)。
函數(shù)里面需要寫一堆規(guī)則,例如:
圖片有兩個圈
圓?有多圓?
上面那個大下面小
有多大?有多???半徑是多少?
有時候上面那個圈可以不完全閉合也算...
天,那算什么圓?
我們?nèi)绻プR別一個手寫數(shù)字的圖片8,需要寫很多很多規(guī)則,有時候幾乎寫不完。
也就是說,在我們現(xiàn)實(shí)里,有些人類明明能模糊地了解,但說不上具體規(guī)則,不可描述東西。
不可描述就意味著,這個函數(shù)沒法寫,也意味著無法通過編程實(shí)現(xiàn)。
深度神經(jīng)網(wǎng)絡(luò)改變這一點(diǎn)。
神經(jīng)網(wǎng)絡(luò)會先隨機(jī)初始化網(wǎng)絡(luò)的權(quán)重,就是先隨便弄一個魔法函數(shù)Magic'(x)。
一開始,Magic'(x)和我們要的Magic(x)并不相同。所以輸出不一定是對的,也就是說Magic'(x)=y',y'不等于我們要的y。
也就是說,把圖片8放到這個Magic'(x)里,網(wǎng)絡(luò)可能識別的出8的概率可能只有40,而并不是。
這和我們想要網(wǎng)絡(luò)識別出8有很大的差距呀,因為我們想f能識別出這些圖片是8的概率是。
我們稱:y'和y之間的差距叫l(wèi)oss。
但這沒關(guān)系,通過反向傳播,調(diào)整f(x)的參數(shù)權(quán)重,讓loss較小化,也就是讓y'和y之間的差距減少。
這個過程我們稱為學(xué)習(xí)或者訓(xùn)練。
當(dāng)loss足夠小的時候,y'和y的差異就不大了。也就是說,f(x)的功能和我們要的F(x)相當(dāng)!
如果以上的話沒明白,那不要緊。你只要明白兩點(diǎn):
深度神經(jīng)網(wǎng)絡(luò)本質(zhì)上說是個函數(shù)。
有了深度神經(jīng)網(wǎng)絡(luò),我們可以把以前不能描述規(guī)則的函數(shù)造出來。
這就是人類科技樹拓寬的一大原因。
游戲性
回到游戲中,我們以前為游戲角色做AI,會用腳本,行為樹,狀態(tài)機(jī)等方式。
這些本質(zhì)上就是在描述怪物的行為,例如看到某個角色,就做什么動作;到了某個時間,釋放某個技能。
但這些行為可以足夠豐富而完整地描述嗎?
越復(fù)雜的行為,我們就需要復(fù)雜的行為樹;越多的狀態(tài),我們就需要越多的狀態(tài)機(jī)。
但當(dāng)復(fù)雜度到了一定程度,人類可能很難理解了自己創(chuàng)造的行為樹了。
但神經(jīng)網(wǎng)絡(luò)可以,他們制作出的AI不但戰(zhàn)勝了游戲,還戰(zhàn)勝了人類。
目前,AI在這方面較重要的技術(shù)叫學(xué)習(xí)
較有名的可以算是以下幾個:
征服Atari游戲——Deep Mind
較前沿:當(dāng)我們以為Rainbow就是Atari游戲的時,Ape-X出來把Rainbow秒成了渣!
征服圍棋——Alpha GO
AlphaGo
征服德州撲克——Pluribus
機(jī)器之心:AI攻陷多人德?lián)湓俚荢cience,訓(xùn)練成本150美元,每小時1000刀
https://zhuanlan.zhihu.com/p/73268685
(Pluribus沒有用上深度神經(jīng)網(wǎng)絡(luò),用的更多是博弈論CRF為基礎(chǔ)的剪枝)
征服麻將——微軟Suphx
真雀神,微軟亞研推出麻將AI,還上了專業(yè)十段
征服星際爭霸——Alpha Star
陳雄輝:淺談AlphaStar
征服榮耀——絕悟
騰訊:騰訊AI「絕悟」打,把職業(yè)選手干掉了
現(xiàn)在的AI已經(jīng)能把人類花式吊打了!甚至到了有人已經(jīng)發(fā)表AI威脅論的程度了!
但請容我先潑潑冷水,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練可不是套套公式就能實(shí)現(xiàn)的。神經(jīng)網(wǎng)絡(luò)訓(xùn)練的要求都非常高。
首先,AI訓(xùn)練消耗大量資源,包括時間和算力。
跟李世石對戰(zhàn)的版本稱為AlphaGo Lee,是一個分布式系統(tǒng),運(yùn)行在Google云上,使用了48個TPU,總耗能約。
而圍棋雖然看上去比較復(fù)雜,但和其他游戲來說還算是簡單的了。畢竟圍棋是個回合制游戲。如果像星際這樣的復(fù)雜游戲,則需要更多。
另外,AI在開發(fā)過程中有不確定性。
我認(rèn)為算力和時間并不是一個主要因素,至少在游戲制作下不是。
畢竟當(dāng)前的算力下,很多算法已經(jīng)能擊敗人類。而且算力必然會不斷。
但深度學(xué)習(xí)還有一個不能忽略的因素:深度學(xué)習(xí)算法帶有不確定性。
AI的學(xué)習(xí)能力除了與算法有關(guān),也與環(huán)境有關(guān),也和參數(shù)有關(guān),不同參數(shù)之間可能是天差地別。
調(diào)整參數(shù),然后等待AI的訓(xùn)練,根據(jù)結(jié)果再調(diào)整參數(shù)??赡芙?jīng)過漫長的等待才能獲得大成。
所以很多搞深度學(xué)習(xí)的人會把自己比喻成煉丹師。
但這種不確定性正在逐步減少,因為算法是不斷更新改進(jìn)的。從DQN到SAC,就是一個不斷解決實(shí)際問題,讓算法更強(qiáng),更快,更穩(wěn)定的過程。
以上,我們對學(xué)習(xí)(Reinforcement Learning)進(jìn)行了一些介紹。那么學(xué)習(xí)能夠帶給游戲什么呢?
我認(rèn)為學(xué)習(xí)在游戲中應(yīng)用應(yīng)該有一個前提:這項技術(shù)并不是為了擊敗玩家,而是為了增強(qiáng)玩家在游戲中的體驗。
經(jīng)過學(xué)習(xí)的AI作為玩家的對手或者敵人,上限是很高的。
我們可以通過弱化,把AI調(diào)整成適合當(dāng)前玩家技術(shù)水平的難度。
有趣的事情就發(fā)生了。
以前我們?yōu)榱苏{(diào)整難度,通常會從數(shù)值入手。
但如果用學(xué)習(xí)的方法,我們還能開辟另外一個維度的難度,讓游戲更豐富。
提醒:AI不可預(yù)知性會更強(qiáng)。
不像已經(jīng)設(shè)定好的行為樹,AI的不可預(yù)測性將會增強(qiáng)。這讓AI更像“人”,當(dāng)然是件好事。但設(shè)計師對AI的掌控也會降低,意味著對玩家體驗的控制的性也會相應(yīng)降低。
但數(shù)值會消失嗎?我想并不會的。
因為數(shù)值是很直觀,大部分玩家都需要數(shù)值,數(shù)值在很多游戲中決定了難度。
我不會告訴你:游戲公司需要賺錢,數(shù)值是核心。
學(xué)習(xí)并不會完全替代數(shù)值和技能設(shè)計,但會給設(shè)計師多一項控制難度的工具。
在學(xué)習(xí)方面國外的deepmind和openAI等公司處于地位,但更多是從事基礎(chǔ)算法研究。
微信選課
享更多優(yōu)質(zhì)好課!