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