Ubisoft La Forge 是個開放的研究和開發計畫,旨在將學者和 Ubisoft 專家匯集在一起,設法在學術研究和電玩遊戲創新的鴻溝上架起橋樑。他們站在學術界的最前線,實驗各種製作電玩遊戲的最新技術與工藝,並有專門團隊研究最新技術的用途,例如人工智慧,讓遊戲更加真實、有趣且開發起來更有效率。
深度強化學習是這些潛在用途之一:那是一種機器學習方式,利用人工智慧來尋找各種問題的最有效解決方案。為了揭開其神秘面紗,瞭解其能如何協助創建更真實的非玩家角色,幫助非玩家角色在複雜的遊戲世界中移動,並創造出更像人類的反應,我們特別專訪了 Ubisoft La Forge 的資料科學家 Joshua Romoff。Joshua 是加拿大蒙特婁人,他憑著對電玩遊戲的熱愛拿到了資料科學博士。現在,他正在研究機器學習在遊戲中的各種不同應用,最近他在人工智慧和互動數位娛樂(AIIDE)2021 研討會上發表了演講,介紹了他和他的團隊一直在研究如何利用機器學習改善非玩家角色的尋路和導航上獲得的突破。
什麼是深度強化學習,這是如何運作的?
Joshua Romoff:先解釋幾個術語:「代理人」和「行動」。我們所說的人工智慧的代理人基本上是與世界互動的主角,我們在研究中使用機器人來扮演這個角色。至於「行動」,就是所進行的互動。我喜歡把玩家看作是遊戲手把的一種延伸,玩家透過遊戲手把輸入的每個指令都會產生一個動作。
讓我們把重點擺在強化學習的部分:這個概念在於你試圖強化某種行為,類似於經典的「巴夫洛夫的狗」實驗,研究人員在狗的餵食時間搖鈴,讓狗學會將搖鈴與獎勵聯繫起來。你試圖用獎勵和懲罰來鼓勵或阻止某些類型的結果。我們對人工智慧代理人做同樣的事情,當它做我們喜歡的事情會加分,當它做我們不喜歡的事情會扣分。我的工作是設計測試並定義何時給予或取消獎勵,而人工智慧的目標是用現有的行動獲得最高分。
就深度的部分來說,那是代理人感知它所處世界的方式;本質上是個深度神經網路。一個畫面是個複雜的東西,可能同時顯示幾十萬個像素。那麼,你如何處理這個畫面和所有的輸入?深度神經網路會將畫面處理成一個更小的維度,並分析資料,然後將這些資訊輸入到強化學習部分,接著根據輸入的資料做出行動。這就是我們所說的端到端系統,因為一切都包含在其中,資料在這些系統之間循環往復,從一端到另一端,然後再返回。我們對每幀畫面都這樣做,根據行動和所產生的環境狀態來分配點數,並進行多次反覆運算,以訓練代理人執行我們希望它執行的行動。
在你研究深度強化學習的過程中,有沒有什麼遊戲帶給你特別大的啟發?
JR:當然有。我一直很喜歡開放世界遊戲,在這樣的遊戲中你可以到處亂跑並與非玩家角色互動,比如說像《極地戰嚎》這樣的遊戲。在這類遊戲中,有件事總讓我印象深刻,那就是玩家如何與非玩家角色的人工智慧互動,這對我來說是體驗的核心要素。你在與世界互動,而非玩家角色是這種互動的重要部分。我總是喜歡和非玩家角色打交道,並試圖把人工智慧看作一種挑戰,看看我如何能夠操縱它們。因此,如果我在與敵人的戰鬥中,決定爬上附近的一座山,那麼我會看著敵人因為無法攀登而撞上我面前的山,或者看看它對不同事件有什麼反應。這一直是激勵我繼續工作的動力,想著我們如何做改進,訓練人工智慧,使其行為更像人類。
身為一名研發科學家,你的日常工作是怎樣的?
JR:每天,我可能會進行實驗,親自訓練我們所謂的「人工智慧代理人」在遊戲中執行某項任務。一旦實驗完成,還要進行大量的觀察:觀察圖譜和圖表,並進行調整以完善結果。我的另一個重要職責是與正在攻讀學位的碩士和博士生一起工作。我們所有的學生都有領薪水,但我與他們和他們的教授合作,為他們制訂專案,我們通常會有一堆學生專案同時進行,這對學生很有幫助,但也有助於推動我們正在做的事情。我的意思是,我不可能自己一個人把所有東西都搞定,你說是吧?一旦我們有了一個可運作的原型,我們會把該技術放進沙箱環境中,沙箱環境基本上是個實際遊戲引擎的簡化版本,讓我們可以看到我們工作的結果。如果一個專案成功了,就是個讓學生作品出現在我們開發遊戲中的機會,這能讓他們獲得一些遊戲工作的經驗,所以我們總是試圖確保我們所進行的專案能產生一些遊戲團隊能在他們的作品中使用的東西。
在你的AIIDE演講中,你談到了你如何在《超能競地》這類遊戲中做一些測試來創造更多「類似玩家 」的機器人。你能和我們聊聊這部分嗎?
JR:我們在《超能競地》中做了一些測試 - 雖然沒有在正式伺服器上進行測試,但這個遊戲恰好為我們想要回答的問題提供了一個有趣的沙箱。《超能競地》非常酷的一點是,在 3D 環境中移動相當複雜,而且有很多垂直的地方。玩家也有很多可用的工具,比如可以將你直接彈到空中的跳板,也可以做雙重跳,你可以用這些工具來抵達建築物的頂部。你也可以把這些東西結合起來使用,所以對遊戲開發者或測試人員來說,知道他們所創建的地圖可以讓玩家在其中隨心所欲地移動,真的很有趣。
傳統上,遊戲使用所謂「navmesh」的 2D 地圖,這種地圖涵蓋了世界中所有可通行區域,而這些資料允許機器人定義他它們可以去哪裡以及如何到達那裡。但用這種方法做測試真的很困難,因為當你可以使用所有這些瘋狂的動作,如跳板和雙重跳,加上垂直的樓層,這些樓層並不總是由樓梯或斜坡連接,這些組合使得可能性爆炸性地增加。這時就可以使用深度強化學習,因為我們可以把代理人扔進一個訓練迴圈中,它將學習如何採取行動,設法自己從 A 點移動到 B 點,而不使用「navmesh」。這能讓我們教會代理人這些動作,並使用它來測試地圖,確保所有地方都可以到達。
我們知道你在其他遊戲裡所做的一些測試中看到了一些有趣的結果。能和我們聊一聊嗎?
JR:其中一個例子是我們在《榮耀戰魂》裡訓練的一個機器人。我們希望代理人能多多進行防禦,所以我們給它獎勵讓它這樣做。最後發生的情況是,這個代理人決定永不結束戰鬥,一直防守,直到永遠。這真的很有趣,因為用這個過程訓練代理人的主要挑戰之一是,無論你給它什麼設置和你試圖激勵的行動,它在理論上都會盡可能地學習如何去做。如果你給它獎勵讓它活下來或進行防禦,它就會繼續這樣做,因為你在獎勵它。你不一定希望機器人每次都能打敗所有的玩家,你說是吧?那樣就不好玩了,所以你會想激勵其他類型的行為,例如防守,讓它的行動增加一些變化。
你給這些小獎勵的另一個原因是,可以加速訓練過程,這讓你會因為代理人做出的防守和攻擊給點小獎勵 - 但所有這些獎勵的綜合結果會如何並非顯而易見,你最後可能會看到非常有趣的行為。另一個例子是在《超能競地》中所進行的導航測試。我們當時在訓練代理人儘快地在兩點之間移動,但我們還沒有給它衝刺的能力,而它實際上發現,如果它透過跳躍和扭動視野來移動,它實際上能夠比步行快一點。所以,看著它實際上學會了兔子跳,真的很有趣。這兩個例子在我的 AIIDE 演講中都有提到。
在過程中,這類結果還有價值嗎?
JR:這取決於應用是什麼。如果是為了測試遊戲,就像我們的實驗一樣,這些結果是非常有用的,因為你會看到基於你所給予的獎勵的最佳行為是什麼。你可能會注意到它正在學習的這些東西,並發現這個行為實際上是在幫助代理人實現它的目標,這可能指向你沒有注意到的東西,讓你可以除錯並知道你的程式碼是否按照期望運行。
最新一代的遊戲主機以及像雲端和串流服務這樣的平台,是否為遊戲中的人工智慧開闢了新的可能性?
JR:百分之百是的。從歷史上看,深度學習的研究始於 80 年代和 90 年代,研究人員肯定會受到當時電腦運算資源的瓶頸限制。如果你想在老一代的遊戲主機上運行一個深度學習模型,從運算的角度來說,在本地端運行是不可能的 - 這會讓畫面幀率大幅滑落。隨著人們在家中擁有的電腦運算能力大幅增加,以及實際的硬體性能大幅提升,把這些加起來,在加上有大量的人投入這個領域進行各式各樣的研究,我們已經到了可以解決這些問題的地步,並且創造出能在 3D 世界中穿梭非常複雜的地圖、擁有各種瘋狂能力的機器人。現在,機器人可以相當有效地運轉,其表現比我們用程式碼編寫出來的任何東西更像人類。在一款遊戲中放入多個代理人,做所有這些複雜的運算現在一點也不瘋狂。我們已經不用再等十年:研究和硬體都已經到位,讓我們得以成就如今的水準。
你認為還有哪些應用可以使用這些技術?
JR:最自然的應用是機器人,這也是我們重視它的原因。我的小組實際上被稱為智慧型機器人小組,所以我們對機器人非常重視。我們正在研究用於測試遊戲的機器人,但你可以很容易地想到,如果你教會一個機器人在一個環境中移動,它很有機會被進一步升級,以人工智慧敵人的身份出現玩家面前。
除了機器人,強化學習是個非常通用的框架,有很多應用方式。所以我可以想得到的是,舉例來說,將其用於伺服器管理。當你為一款遊戲架設服器時,如果你在不需要的時候有太多的伺服器在運行,或者情況相反,當你有很多玩家卻沒有部署足夠的伺服器,這都會造成問題。理論上,我們可以訓練一個代理人來最佳化順序決策,讓它在一天中的特定時刻查看一下玩家的數量,然後根據需要增加或減少當前線上的伺服器數量。
你對這項技術的未來有什麼目標?
JR:我們的目標是繼續研究如何在遊戲中注入更多的真實感,使非玩家角色和機器人等玩意兒更有人情味,並解決到目前為止還無法解決的問題。我們還想讓遊戲設計師掌握這項技術,用它來創造玩家面向的工具。它可以成為開發人員可用的另一種工具,所以,下一大步是讓開發人員有選項去自訂這些機器人並做他們想做的事,因為到目前為止我提到的所有測試還沒有在實際遊戲環境或在玩家面前進行過。我認為更直接的作法是把它交給遊戲測試人員,用它來測試各種不同的情況,例如效能問題、遊戲機制,諸如此類。
在遊戲中使用人工智慧和深度強化學習帶來了哪些影響?
JR:如果我們只是用這種技術來測試遊戲,那麼這些東西就不會出現在玩家面前,也就沒有理由擔心人們對人工智慧會有一些更負面的猜測。有些人可能會擔心這意味著實際測試遊戲的人將會減少,但事實並非如此,因為我們將使用這些機器人進行的測試類型與我們希望真正的人類做的測試類型有根本上的不同。實際的人類互動是不會消失的,人們仍然會測試遊戲中更有趣的要素,例如任務和遊戲中其他實際有趣的部分。
如果要實際將人工智慧機器人放入遊戲中,我認為,讓我們正在做的事情保持公開透明真的很重要。我想,有些人擔心他們會開始在遊戲中看到機器人,他們不知道那是人類還是機器人?這有可能引起相當大的爭議,這就是為什麼我認為我們需要完全公開透明,不要試圖欺騙玩家。我認為,在遊戲中納入人工智慧的另一個原因是,它本身就是一個完美的小沙箱;它是一個嘗試某些想法的好地方,讓我們看看會發生什麼事,但任何不可預見的結果都會留在遊戲中,不會真正影響遊戲之外的生活。因此,人們不必擔心我的《榮耀戰魂》防禦機器人會接管世界或幹些其他大事;它只能存在於遊戲中,而且還有點搞笑。
*你可以透過 AIIDE 2021 觀看 Joshua 的完整演講,瞧瞧他的實際工作情況,並獲得更多關於深度強化學習和人工智慧的資訊。如欲取得 Ubisoft 團隊的所有最新消息和更新資訊,請密切關注 Ubisoft 新聞中心。