前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用GCP开发带有强化学习功能的Roguelike游戏

使用GCP开发带有强化学习功能的Roguelike游戏

作者头像
deephub
发布于 2021-02-12 08:23:52
发布于 2021-02-12 08:23:52
1.2K0
举报
文章被收录于专栏:DeepHub IMBADeepHub IMBA

强化学习(RL)的许多应用都是专门针对将人工从训练循环中脱离而设计的。例如,OpenAI Gym [1]提供了一个训练RL模型以充当Atari游戏中的玩家的框架,许多问扎根都描述了将RL用于机器人技术。但是,一个通常讨论不足的领域是应用RL方法来改善人们的主观体验。

为了演示这种类型应用,我开发了一个简单的游戏,叫做“Trials of the Forbidden Ice Palace” [2]。该游戏使用强化学习,通过为用户量身定制游戏难度来改善用户体验。

游戏如何运作

该游戏是传统的Roguelike游戏:具有RPG元素和大量程序生成的基于回合的地牢探索类游戏。玩家的目标是逐层逃离冰宫,与怪物战斗并沿途收集有用的物品。传统上会随机生成出现在每层楼上的敌人和物品,但该游戏允许RL模型根据收集到的数据生成这些实体。

众所周知,强化学习算法需要大量数据,因此在创建游戏时要遵循以下约束条件,以减少RL模型的复杂性:

1)游戏共有10层,之后玩家获得了胜利

2)每层可以产生的敌人和物品的数量是固定的

强化学习和环境

强化学习的核心概念是自动代理(Agent)通过观察和采取行动(Action)与环境(Env)相互作用,如图1所示。通过与环境的互动,代理可以获得奖励(积极的或消极的),代理利用这些奖励来学习和影响未来的决策。

对于这个应用程序,代理是RL算法,它根据它选择生成的实体来调整游戏的难度,游戏是RL算法可以观察和控制的环境。

状态 State

状态是指代理对环境所做的任何观察,可以用来决定采取哪些行动。虽然有大量的不同的数据代理可能观察(玩家血量,玩家所需的回合数,等),游戏的第一个版本的变量只考虑地板已达到和玩家的水平的玩家的性格。

行动 Actions

由于游戏的程序生成特性,代理将决定随机生成怪物/道具,而不是每次都有一个确定性的决定。由于游戏中存在大量的随机性元素,代理并不会以典型的RL方式进行探索,而是控制不同敌人/道具在游戏中生成的加权概率。

当代理选择行动时,基于迄今为止学习到的最佳模式,它将通过学习到的Q矩阵加权随机抽样来决定在游戏中产生哪个敌人/道具;反之,如果代理选择探索,代理就会从游戏中所有实体中产生概率相等的敌人/物品。

奖励 Reward

强化学习算法的奖励模型对于开发学习的模型应显示的预期行为至关重要,因为机器学习都会采用走捷径的方法来实现其目标。由于预期的目标是使玩家获得最大的享受,因此做出了以下假设,以根据RL算法的奖励来量化乐趣:

-玩家在游戏中进一步前进,而不是过早死亡会对玩家产生更多乐趣

-在没有挑战的情况下玩家每次获胜的游戏都会很无聊

考虑到这些目标,当玩家进入表I所示的新楼层时,以及如表II所述的游戏完成时,RL模型都会获得奖励。

表一:玩家晋升奖励模型

表二:完成游戏的奖励模式

考虑到上面的进程和完成分数机制,RL算法将通过允许玩家前进到第8层而最大化奖励,在这一点上玩家将最终遭遇死亡。为了最小化意外行为的可能性,RL算法也会因为玩家过早死亡而受到惩罚。

更新模型

RL算法采用了Q-Learning,该算法经过改进以适应Agent执行的随机行为。在传统的Q-Learning[3]中,一个代理在每个状态之间采取1个行动,而在此基础上,代理的行动将根据在地板上生成的所有敌人/物品的概率分布进行更新,如下式所示。

其中Q'(s_t,a_t)是Q矩阵的更新值,Q(s_t,a_t)是状态s的Q矩阵,并且在时间步长t上有一对动作,α是学习率,r_t是提供的奖励 从过渡到状态t + 1时,γ是折现因子,上划线分量是基于时间步t + 1的平均回报对未来价值的估计。

通过GCP实现全局化RL训练

全局AI模型使用所有玩家收集的游戏数据进行训练,当玩家还没有玩过游戏时,全局AI模型作为基础RL模型。新玩家在第一次开始游戏时将获得全局化RL模型的本地副本,这将在他们玩游戏时根据自己的游戏风格进行调整,而他们的游戏数据将用于进一步增强全局AI模型,供未来的新玩家使用。

图2所示的架构概述了如何收集数据以及如何更新和分发全局模型。使用GCP是因为他们的免费使用产品最适合收集和存储游戏数据的模型训练[4]。在这方面,游戏会例行地调用GCP的云函数来存储Firebase数据库中的数据。

结论

本文介绍的工作描述了如何使用强化学习来增强玩家玩游戏的体验,而不是更常见的用于自动化人类动作的RL应用程序。我们使用免费GCP架构的组件收集所有玩家的游戏会话数据,从而创建全局RL模型。虽然玩家开始游戏时使用的是全局RL模式,但他们的个人体验会创造一个定制的局部RL模式,以更好地适应自己的游戏风格。

参考

[1] OpenAI Gym, https://gym.openai.com

[2] RoguelikeRL — Trials of the Forbidden Ice Palace, https://drmkgray.itch.io/roguelikerl-tfip

[3] Kaelbling L. P., Littman M. L., & Moore A. W. (1996). Reinforcement Learning: A Survey. Journal of Artificial Intelligence Research, 4, 237–285. https://arxiv.org/pdf/cs/9605103.pdf

[4] GCP Free Tier, https://cloud.google.com/free

作者:Matt Gray

原文地址:https://towardsdatascience.com/developing-a-roguelike-game-with-reinforcement-learning-using-gcp-46a9b2f5ca3

deephub翻译组

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DeepHub IMBA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深度强化学习(DRL)专栏(一)
【磐创AI导读】:本篇文章是深度强化学习专栏的第一篇,讲了引言和强化学习基础知识,希望对大家有所帮助。查看上篇关于本专栏的介绍:深度强化学习(DRL)专栏开篇。想要获取更多的机器学习、深度学习资源,欢迎大家点击上方蓝字关注我们的公众号:磐创AI。
磐创AI
2019/09/03
1.4K0
深度强化学习(DRL)专栏(一)
强化学习如何入门?看这篇文章就够了
对于大脑的工作原理,我们知之甚少,但是我们知道大脑能通过反复尝试来学习知识。我们做出合适选择时会得到奖励,做出不切当选择时会受到惩罚,这也是我们来适应环境的方式。如今,我们可以利用强大的计算能力,在软件中对这个具体过程进行建模,这就是强化学习。
量子位
2018/07/20
1.1K0
原创 | 一文读懂强化学习
作者:贾恩东 本文约2700字,建议阅读10+分钟强化学习并不是某一种特定的算法,而是一类算法的统称,本文会着重讲清楚这类算法最常规的设计思路和大致框架,使用非常容易理解的语言带你入门强化学习。
数据派THU
2022/12/16
4850
原创 | 一文读懂强化学习
强化学习如何让游戏角色“活”起来?
作为一名开发者,我对游戏中那些“智慧”的角色总是充满好奇和追求。无论是一个能够快速躲避玩家攻击的敌人,还是一个能和玩家互动的NPC,这背后的技术支持越来越倾向于人工智能,特别是强化学习(Reinforcement Learning,RL)。接下来,我将和大家聊聊强化学习在游戏开发中的实际应用,深入探讨如何借助这项技术赋予游戏更多的可能性,并用实战项目带你感受它的魅力。
Echo_Wish
2025/04/02
1080
强化学习如何让游戏角色“活”起来?
强化学习(十七) 基于模型的强化学习与Dyna算法框架
    在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Policy Based RL),本篇我们讨论最后一种强化学习流派,基于模型的强化学习(Model Based RL),以及基于模型的强化学习算法框架Dyna。
刘建平Pinard
2019/03/04
2.2K0
强化学习(十七) 基于模型的强化学习与Dyna算法框架
关于强化学习你不得不知道的5件事
翻译 | 廉洁 出品 | 人工智能头条(公众号ID:AI_Thinker) 强化学习在当今世界可谓是日渐流行,让我们来看一看关于强化学习你不得不知道的5件事。 强化学习是当今社会最热门的研究课题之一,而且其热度正与日俱增。让我们一起来学习下关于强化学习的5个有用知识点。 ▌1.强化学习究竟是什么?它与机器学习技术有什么联系? 强化学习(Reinforcement Learning)是机器学习的一个分支,它的原理是:在交互环境中,智能体利用自身的经验和反馈,通过试验和错误经验来进行学习。 有监督学习和强化
用户1737318
2018/06/05
8860
性能提升、成本降低,这是分布式强化学习算法最新研究进展
深度强化学习(Deep Reinforcement Learning,DRL)是一种公认的解决连续决策问题的有效技术。为了应对 DRL 的数据低效(data inefficiency)问题,受到分布式机器学习技术的启发,分布式深度强化学习 (distributed deep reinforcement learning,DDRL) 已提出并成功应用于计算机视觉和自然语言处理领域。有观点认为,分布式强化学习是深度强化学习走向大规模应用、解决复杂决策空间和长期规划问题的必经之路。
机器之心
2024/02/26
4080
性能提升、成本降低,这是分布式强化学习算法最新研究进展
深度强化学习专栏(三)
【磐创AI导读】:本篇文章是深度强化学习专栏的第三篇,讲了第四节无模型的强化学习方法,希望对大家有所帮助。查看上篇关于本专栏的介绍:深度强化学习(DRL)专栏开篇。
磐创AI
2019/09/17
7600
深度强化学习专栏(三)
强化学习解释:概述、比较和商业应用
想象你正在电脑游戏中完成一项任务,例如,穿过一个军事仓库去寻找一件秘密武器。正确的行动(杀死敌人)会得到额外的分数,而错误的行动(掉进坑里或被击中)会失去额外的分数。
用户7623498
2020/08/04
8680
强化学习从未如此方便!Facebook发布沙盒MiniHack,内置史上最难游戏
---- 新智元报道   来源:Facebook 编辑:LRS 【新智元导读】你是不是经常感觉目前的强化学习游戏都太过简单,没有挑战性?Facebook最近发布了一个超好用的强化学习沙盒MiniHack,不仅高度可定制化,还内置了一个超难的游戏NetHack,快来挑战吧! 强化学习(Reinforcement learning, RL)能够帮助人类进行有效地决策,研究成果也遍布游戏、机器人等各个领域。 强化学习的研究进展通常是由模拟基准推动的,研究人员通过在各种各样的模拟器基准上训练模型,并且一些基准
新智元
2023/05/22
3210
强化学习从未如此方便!Facebook发布沙盒MiniHack,内置史上最难游戏
强化学习从基础到进阶–案例与实践[11]:AlphaStar论文解读、监督学习、强化学习、模仿学习、多智能体学习、消融实验
相比于之前的深蓝和AlphaGo,对于《星际争霸Ⅱ》等策略对战型游戏,使用AI与人类对战的难度更大。比如在《星际争霸Ⅱ》中,要想在玩家对战玩家的模式中击败对方,就要学会各种战术,各种微操和掌握时机。在游戏中玩家还需要对对方阵容的更新实时地做出正确判断以及行动,甚至要欺骗对方以达到战术目的。总而言之,想要让AI上手这款游戏是非常困难的。但是DeepMind做到了。
汀丶人工智能
2023/10/11
1.5K0
强化学习从基础到进阶–案例与实践[11]:AlphaStar论文解读、监督学习、强化学习、模仿学习、多智能体学习、消融实验
用强化学习玩《超级马里奥》
Pytorch的一个强化的学习教程( Train a Mario-playing RL Agent)使用超级玛丽游戏来学习双Q网络(强化学习的一种类型),官网的文章只有代码, 所以本文将配合官网网站的教程详细介绍它是如何工作的,以及如何将它们应用到这个例子中。
deephub
2023/02/01
1.1K0
强化学习(Reinforcement Learning)中的Q-Learning、DQN,面试看这篇就够了!
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
mantch
2019/08/29
2.9K0
强化学习(Reinforcement Learning)中的Q-Learning、DQN,面试看这篇就够了!
东北大学研究生:用强化学习玩Chrome里的恐龙小游戏
【人工智能头条导读】Chrome 浏览器里面有一个小彩蛋,当你没有网络时,打开任意的 URL 都会出现一个恐龙小游戏(Dino Run),按空格键就可以跳跃。当然,直接打开 chrome://dino 也可以玩这个小游戏。近期,一名来自东北大学(美国)的研究生 Ravi Munde 利用强化学习,实现了对 Dino Run 的控制。 以下内容来自 Ravi Munde 博客,人工智能头条编译: 本文将从强化学习的基础开始,并详细介绍以下几个步骤: 在浏览器(JavaScript)和模型(Python)之间
用户1737318
2018/06/05
8300
强化学习从基础到进阶--案例与实践含面试必知必答[9]:稀疏奖励、reward shaping、curiosity、分层强化学习HRL
实际上用强化学习训练智能体的时候,多数时候智能体都不能得到奖励。在不能得到奖励的情况下,训练智能体是非常困难的。例如,假设我们要训练一个机器臂,桌上有一个螺丝钉与一个螺丝起子,要训练它用螺丝起子把螺丝钉栓进去很难,因为一开始智能体是什么都不知道,它唯一能够做不同的动作的原因是探索。例如,我们在做 Q学习 的时候会有一些随机性,让它去采取一些过去没有采取过的动作,要随机到,它把螺丝起子捡起来,再把螺丝栓进去,就会得到奖励1,这件事情是永远不可能发生的。所以,不管演员做了什么事情,它得到的奖励永远都是 0,对它来说不管采取什么样的动作都是一样糟或者是一样好。所以,它最后什么都不会学到。
汀丶人工智能
2023/10/11
7610
强化学习从基础到进阶--案例与实践含面试必知必答[9]:稀疏奖励、reward shaping、curiosity、分层强化学习HRL
强化学习在游戏开发中的应用:打造智能化游戏体验
强化学习(Reinforcement Learning,RL)是一种重要的机器学习方法,通过与环境的交互,智能体(Agent)能够学会在不同状态下采取最佳行动,从而最大化累积回报。近年来,强化学习在游戏开发中展现出了巨大的潜力,不仅提升了游戏的智能化和趣味性,还推动了游戏AI的研究与创新。本文将详细介绍强化学习的基本原理,并展示其在游戏开发中的应用。
Echo_Wish
2024/12/27
2520
强化学习在游戏开发中的应用:打造智能化游戏体验
强化学习(十五) A3C
    在强化学习(十四) Actor-Critic中,我们讨论了Actor-Critic的算法流程,但是由于普通的Actor-Critic算法难以收敛,需要一些其他的优化。而Asynchronous Advantage Actor-critic(以下简称A3C)就是其中比较好的优化算法。本文我们讨论A3C的算法原理和算法流程。
刘建平Pinard
2019/03/05
1.2K0
OpenAI 发布完整版游戏强化学习研究平台 Gym Retro
我们发布了用于游戏研究的强化学习平台完整版 Gym Retro,支持的游戏从大约 70 多个雅达利和 30 多个世嘉游戏扩展到各种仿真器支持的 1000 多个游戏。同时我们还发布了用于增加新游戏的工具。
AI研习社
2018/07/26
6480
OpenAI 发布完整版游戏强化学习研究平台 Gym Retro
理解强化学习
强化学习指的是专注于学习如何与环境交互的算法的机器学习。这种算法的一个例子叫做Q-learning。尽管它更接近于蛮力方法,Q-learning可能是最流行的强化学习方法。在我们开始学习Q-learning之前,让我们先讨论一下为什么我们不使用非监督或监督学习方法。
deephub
2020/11/02
5500
理解强化学习
算法集锦(34) | 强化学习| 出租车载客问题
强化学习(Reinforcement Learning)是一种重要的机器学习方法,在智能机器人及分析预测等领域有许多应用。强化学习是智能体(Agent)以"试错"的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使智能体获得最大的奖赏。
用户7623498
2020/08/04
9570
推荐阅读
相关推荐
深度强化学习(DRL)专栏(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文