人工智能(AI)在游戏中的应用(下)
再回來看異形AI
我們知道,異形AI是控制異形行為的系統。它永遠不會從管理者AI哪里得到有關玩家位置的信息。它會得到的信息包括大概在什么位置進行搜尋。剩下就只能靠自己來找到玩家了。它確實有一些工具可以幫助它找到玩家。第一個是傳感器系統,它允許異形接收環境中的音頻和視覺提示。諸如腳步聲、槍聲、門的開啟,甚至是運動追蹤器的嘟嘟聲等噪音,所有這些都有助于異形追蹤玩家。音頻范圍取決于創建的噪音類型。除了音頻傳感器之外,異形還可以接收視覺傳感器,例如瞥見Ripley(某人)跑過去,或看到一扇門在視野中打開等。
異形追捕玩家的另一個工具是搜索系統。(游戲)開發人員已確定有一些特定區域是異形預先編程會搜索的隱藏點。但是,它不會以任何特定順序去搜索它們,甚至會再次檢查已經索索過的區域。當然,如果異形聽到噪音或看到視覺提示,它也可能會搜索開發人員沒有特別指定的區域。
這個游戲被最常討論的話題是異形如何隨著游戲的進行更多地了解玩家。當它學習關于玩家游戲風格的某些特征時,它所做的動作似乎變得更加復雜。令人驚訝的是,開發人員實現這一目標的方式并不是通過將復雜的神經網絡構建到異形的AI系統。為了展示游戲如何實現這種異形學習感,我們需要回顧外星A.I.的行為決策樹。
?
在游戲開始時,這個行為樹的某些部分對于異形是屏蔽的。手機游戲出售被屏蔽的區域是異形無法訪問的,這意味著它無法實現某些行為和動作。比如說,在游戲開始時,對遠處有門打開的聲音做出相應的行為樹是沒有激活的。如果玩家在異形的視野中打開一扇門,它可以解鎖行為樹的那一部分,以便將來打開門的聲音會觸發響應。隨著玩家在游戲中的進展,越來越多的異形的行為樹被解鎖。這給人一種幻覺,即異形正在學習并適應玩家的游戲風格。
視頻游戲中的遺傳神經網絡(genetic neutral network)
如果沒有至少提及將神經網絡應用于視頻游戲,那么本文將不完整。最近有一些非常有名的例子,一個是AI擊敗了專業的Dota 2團隊。然而,涵蓋這一主題的最佳方式是從小規模開始建立基本的認知,關于神經網絡如何學習視頻游戲的目標和策略。
為了方便理解,我們選用貪吃蛇游戲作為例子。對于那些不熟悉的人來說,貪吃蛇是一款2D游戲,您可以控制一系列方塊(被稱為蛇)。你有三種運動選擇:左,右或直前。如果你碰到墻壁或撞到你的尾巴,你會立即死亡并重新開始。有一個點可以收集(稱為食物),使你的尾巴長出一個方格。所以你吃得越多,你就越長。
讓我們想象一下,我們想教我們的蛇如何獲得盡可能高的分數。為了讓我們的蛇在這個世界上生存,它需要學習一些東西。為了讓我們的蛇學習,需要提供有關環境的信息。我們將我們提供的這些信息稱為輸入。這些輸入可以是我們掌握的任何信息。例如,我們的輸入可能是以下6個是/否問題:前方是否通暢,左邊是否通暢,右邊是否通暢,食物是在前邊,食物是在左邊,食物是在右邊(Designing AI,2017)。根據每個問題的答案,這將提供6個輸入節點,每個階段包含兩個值1或0。然而,這些輸入也可以測量蛇的頭部和墻壁之間或它的尾巴或食物之間的距離。為簡單起見,讓我們僅保留6個輸入節點在示例中。
接下來我們需要告訴我們的蛇是我們想要它實現的目標。為了傳達我們期望的目標,我們實施獎勵制度。例如,我們可能每次向食物移動一步時給我們的蛇1分,并且每次它吃食物并且長度增長時可能會得到10分。然而,當Binggeser(設計AI,2017)為他的蛇實施這些獎勵時,他意識到他的蛇只會在一個非常小的圈子里移動。通過這種方式,他的蛇能夠在避開墻壁和長尾帶來的危險的同時提高積分。顯然,這不是預期的結果。在初始模型中需要進行某種類型的懲罰,當蛇離開食物時,它會移除點。這促使蛇主要向食物的方向移動。
所以現在我們有一條蛇,它擁有來自環境的信息和一個定義目標是什么的獎勵系統。我們從哪里去?我們的蛇如何真正學會如何玩游戲?在這一點上,快速了解神經網絡的實際工作方式將會很有幫助。
分代神經網絡(Generational Neural Network)
分代神經網絡的結構與標準神經網絡的結構相同。它從一定數量的輸入節點開始,然后注入到一個或多個隱藏層,最終提供輸出。這是一個很好的示例:
?
對于蛇示例,我們將有6個輸入節點,這是我們之前定義的6個是/否問題:前方是否通暢,左邊是否通暢,右邊是否通暢,食物是在前邊,食物是在左邊,食物是在右邊.每個輸入節點通過權重到每個第一隱藏層節點。在圖8中,我們看到連接到每個節點的所有線(權重)。這些權重是我們的模型將不斷調整的,隨著它學習到哪些輸入會加強或削弱,從而提供最準確的輸出。在我們的例子中,“最準確的輸出”被定義為“收集最高分數的蛇”。請記住,我們的蛇獲得了向食物移動的分數,它可以獲得更多吃食物的積分,并且它也會因為遠離食物得到負分。
分代神經網絡“學習”的方式是首先確定每一代的大小(假設我們希望每一代都包含200條蛇)。接下來,它為第一代200條蛇中的每條蛇的重量做小的調整,然后它運行第一代的200條蛇中的每條蛇并選擇最成功的蛇(獲得最多分的蛇)。假設我們選擇了在我們的第一代獲得最多積分的前10名蛇(前5%)。這10條蛇隨后成為第二代的“父母”。這10條蛇的權重會用于定義第二代的起點。第二代200條蛇的表現將再次對這些權重做小的調整,最佳表現者將被選為第三代的“父母”,依此類推。
回到貪吃蛇游戲中來:
所以,正如我們上面所看到的,我們可以反復運行我們的第一代蛇形模型(我們上面運行了200次),通過稍微改變每個權重,看到蛇出現的各種變化。然后,我們選擇將繼續影響第二代神經網絡權重的最佳表現者。我們會為每一代重復這個過程,直到蛇的學習速度開始趨于平穩(換句話說,直到分代進步減緩或停止)也許在第一代,第二代和第三代中,沒有一條蛇吃到過一塊食物,因此從未得到過食物獎勵的10分。然而,也許在第四代一條蛇就會吃到一塊食物。這條蛇可能擁有當代蛇中最高的分數,因此將被選中以影響后代。基于最成功的蛇祖先,將改變后代的權重。經過10代,100代甚至1000代之后,您可以想象會學到多少。
視頻游戲AI技術在現實世界中的應用
正在視頻游戲行業中使用的相同類型的強化學習也正成功應用于其他行業。例如,已經預先編程了“交通規則,道路和汽車物理”(Luzgin,2018)的俠盜獵車手(Grand Theft Auto)游戲已經被用來為測試自動駕駛汽車算法提供安全和現實的環境。它不僅安全而實際,而且與現實世界相比,在虛擬環境中收集數據的速度也快了1000倍(Luzgin,2018)。
“視頻游戲是訓練人工智能算法的一種很好的方式,因為它們旨在讓人類思維逐漸進入更難和更難的挑戰。”(Luzgin,2018)
A.I.的最新進展之一視頻游戲是由Open AI的研究人員制作的。Open AI創建了一個基于算法的游戲,其唯一目的就是以自然的好奇心探索。獎勵系統專注于獎勵進一步進入游戲的探索。研究人員將這種好奇心驅動的模型放入了超級馬里奧兄弟的游戲中,它成功地通過了11級,純粹是出于好奇心的驅動。顯然,這有一些缺點,因為它需要巨大的計算能力,機器很容易分心。然而,對于第一次玩游戲的人類玩家來說,這也是相同的。正如Luzgin在他的文章中所提到,“嬰兒似乎采用無目標探索來學習將來在生活中有用的技能。”這種無目標探索的感覺在整個生命中持續存在,但最明顯的例子還是探索視頻游戲的虛擬環境。
總結:
有許多形式的A.I.在今天的視頻游戲行業中使用。無論是簡單的FSM模型還是可以從環境中的反饋中學習的先進的神經網絡,都為AI的發展提供了無窮無盡的可能性,無論是游戲行業還是其他行業。(完)
總結
以上是生活随笔為你收集整理的人工智能(AI)在游戏中的应用(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 游戏光线追踪往事:十年技术轮回
- 下一篇: 在Unity实现游戏命令模式