溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用GCP開發(fā)帶有強化學(xué)習(xí)功能的Roguelike游戲

發(fā)布時間:2021-12-24 10:28:22 來源:億速云 閱讀:141 作者:柒染 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(guān)如何使用GCP開發(fā)帶有強化學(xué)習(xí)功能的Roguelike游戲,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

強化學(xué)習(xí)(RL)的許多應(yīng)用都是專門針對將人工從訓(xùn)練循環(huán)中脫離而設(shè)計的。例如,OpenAI Gym 提供了一個訓(xùn)練RL模型以充當(dāng)Atari游戲中的玩家的框架,許多問扎根都描述了將RL用于機器人技術(shù)。但是,一個通常討論不足的領(lǐng)域是應(yīng)用RL方法來改善人們的主觀體驗。

為了演示這種類型應(yīng)用,我開發(fā)了一個簡單的游戲,叫做“Trials of the Forbidden Ice Palace”。該游戲使用強化學(xué)習(xí),通過為用戶量身定制游戲難度來改善用戶體驗。

游戲如何運作

該游戲是傳統(tǒng)的Roguelike游戲:具有RPG元素和大量程序生成的基于回合的地牢探索類游戲。玩家的目標(biāo)是逐層逃離冰宮,與怪物戰(zhàn)斗并沿途收集有用的物品。傳統(tǒng)上會隨機生成出現(xiàn)在每層樓上的敵人和物品,但該游戲允許RL模型根據(jù)收集到的數(shù)據(jù)生成這些實體。

眾所周知,強化學(xué)習(xí)算法需要大量數(shù)據(jù),因此在創(chuàng)建游戲時要遵循以下約束條件,以減少RL模型的復(fù)雜性:

1)游戲共有10層,之后玩家獲得了勝利

2)每層可以產(chǎn)生的敵人和物品的數(shù)量是固定的

強化學(xué)習(xí)和環(huán)境

強化學(xué)習(xí)的核心概念是自動代理(Agent)通過觀察和采取行動(Action)與環(huán)境(Env)相互作用,如圖1所示。通過與環(huán)境的互動,代理可以獲得獎勵(積極的或消極的),代理利用這些獎勵來學(xué)習(xí)和影響未來的決策。

如何使用GCP開發(fā)帶有強化學(xué)習(xí)功能的Roguelike游戲

對于這個應(yīng)用程序,代理是RL算法,它根據(jù)它選擇生成的實體來調(diào)整游戲的難度,游戲是RL算法可以觀察和控制的環(huán)境。

狀態(tài) State

狀態(tài)是指代理對環(huán)境所做的任何觀察,可以用來決定采取哪些行動。雖然有大量的不同的數(shù)據(jù)代理可能觀察(玩家血量,玩家所需的回合數(shù),等),游戲的第一個版本的變量只考慮地板已達(dá)到和玩家的水平的玩家的性格。

行動 Actions

由于游戲的程序生成特性,代理將決定隨機生成怪物/道具,而不是每次都有一個確定性的決定。由于游戲中存在大量的隨機性元素,代理并不會以典型的RL方式進(jìn)行探索,而是控制不同敵人/道具在游戲中生成的加權(quán)概率。

當(dāng)代理選擇行動時,基于迄今為止學(xué)習(xí)到的最佳模式,它將通過學(xué)習(xí)到的Q矩陣加權(quán)隨機抽樣來決定在游戲中產(chǎn)生哪個敵人/道具;反之,如果代理選擇探索,代理就會從游戲中所有實體中產(chǎn)生概率相等的敵人/物品。

獎勵 Reward

強化學(xué)習(xí)算法的獎勵模型對于開發(fā)學(xué)習(xí)的模型應(yīng)顯示的預(yù)期行為至關(guān)重要,因為機器學(xué)習(xí)都會采用走捷徑的方法來實現(xiàn)其目標(biāo)。由于預(yù)期的目標(biāo)是使玩家獲得最大的享受,因此做出了以下假設(shè),以根據(jù)RL算法的獎勵來量化樂趣:

-玩家在游戲中進(jìn)一步前進(jìn),而不是過早死亡會對玩家產(chǎn)生更多樂趣

-在沒有挑戰(zhàn)的情況下玩家每次獲勝的游戲都會很無聊

考慮到這些目標(biāo),當(dāng)玩家進(jìn)入表I所示的新樓層時,以及如表II所述的游戲完成時,RL模型都會獲得獎勵。

表一:玩家晉升獎勵模型

如何使用GCP開發(fā)帶有強化學(xué)習(xí)功能的Roguelike游戲

表二:完成游戲的獎勵模式

如何使用GCP開發(fā)帶有強化學(xué)習(xí)功能的Roguelike游戲

考慮到上面的進(jìn)程和完成分?jǐn)?shù)機制,RL算法將通過允許玩家前進(jìn)到第8層而最大化獎勵,在這一點上玩家將最終遭遇死亡。為了最小化意外行為的可能性,RL算法也會因為玩家過早死亡而受到懲罰。

更新模型

RL算法采用了Q-Learning,該算法經(jīng)過改進(jìn)以適應(yīng)Agent執(zhí)行的隨機行為。在傳統(tǒng)的Q-Learning中,一個代理在每個狀態(tài)之間采取1個行動,而在此基礎(chǔ)上,代理的行動將根據(jù)在地板上生成的所有敵人/物品的概率分布進(jìn)行更新,如下式所示。

如何使用GCP開發(fā)帶有強化學(xué)習(xí)功能的Roguelike游戲

其中Q'(s_t,a_t)是Q矩陣的更新值,Q(s_t,a_t)是狀態(tài)s的Q矩陣,并且在時間步長t上有一對動作,α是學(xué)習(xí)率,r_t是提供的獎勵 從過渡到狀態(tài)t + 1時,γ是折現(xiàn)因子,上劃線分量是基于時間步t + 1的平均回報對未來價值的估計。

通過GCP實現(xiàn)全局化RL訓(xùn)練

全局AI模型使用所有玩家收集的游戲數(shù)據(jù)進(jìn)行訓(xùn)練,當(dāng)玩家還沒有玩過游戲時,全局AI模型作為基礎(chǔ)RL模型。新玩家在第一次開始游戲時將獲得全局化RL模型的本地副本,這將在他們玩游戲時根據(jù)自己的游戲風(fēng)格進(jìn)行調(diào)整,而他們的游戲數(shù)據(jù)將用于進(jìn)一步增強全局AI模型,供未來的新玩家使用。

如何使用GCP開發(fā)帶有強化學(xué)習(xí)功能的Roguelike游戲

圖2所示的架構(gòu)概述了如何收集數(shù)據(jù)以及如何更新和分發(fā)全局模型。使用GCP是因為他們的免費使用產(chǎn)品最適合收集和存儲游戲數(shù)據(jù)的模型訓(xùn)練。在這方面,游戲會例行地調(diào)用GCP的云函數(shù)來存儲Firebase數(shù)據(jù)庫中的數(shù)據(jù)。

我們使用免費GCP架構(gòu)的組件收集所有玩家的游戲會話數(shù)據(jù),從而創(chuàng)建全局RL模型。雖然玩家開始游戲時使用的是全局RL模式,但他們的個人體驗會創(chuàng)造一個定制的局部RL模式,以更好地適應(yīng)自己的游戲風(fēng)格。

以上就是如何使用GCP開發(fā)帶有強化學(xué)習(xí)功能的Roguelike游戲,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI