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

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

强化学习(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所示。通过与环境的互动,代理可以获得奖励(积极的或消极的),代理利用这些奖励来学习和影响未来的决策。

640.png

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

状态 State

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

行动 Actions

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

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

奖励 Reward

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

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

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

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

表一:玩家晋升奖励模型

640.png

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

640.png

考虑到上面的进程和完成分数机制,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模型,供未来的新玩家使用。

640.png

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

结论

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

目录
相关文章
|
10月前
|
分布式计算 测试技术 API
为集成LLM到测试平台提供更便捷的方式:为讯飞的LLM星火创建接入LangChain类(全部源代码)
为集成LLM到测试平台提供更便捷的方式:为讯飞的LLM星火创建接入LangChain类(全部源代码)
632 0
|
人工智能 Linux API
LangChain开发环境准备-AI大模型私有部署的技术指南
今天开始小智将开启系列AI应用开发课程,主要基于LangChain框架基于实战项目手把手教大家如何将AI这一新时代的基础设施应用到自己开发应用中来。欢迎大家持续关注
777 0
|
20天前
|
机器学习/深度学习 人工智能 搜索推荐
如何让你的Uno Platform应用秒变AI大神?从零开始,轻松集成机器学习功能,让应用智能起来,用户惊呼太神奇!
【9月更文挑战第8天】随着技术的发展,人工智能与机器学习已融入日常生活,特别是在移动应用开发中。Uno Platform 是一个强大的框架,支持使用 C# 和 XAML 开发跨平台应用(涵盖 Windows、macOS、iOS、Android 和 Web)。本文探讨如何在 Uno Platform 中集成机器学习功能,通过示例代码展示从模型选择、训练到应用集成的全过程,并介绍如何利用 Onnx Runtime 等库实现在 Uno 平台上的模型运行,最终提升应用智能化水平和用户体验。
33 1
|
28天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
TensorFlow Serving 部署指南超赞!让机器学习模型上线不再困难,轻松开启高效服务之旅!
【8月更文挑战第31天】TensorFlow Serving是一款高性能开源服务系统,专为部署机器学习模型设计。本文通过代码示例详细介绍其部署流程:从安装TensorFlow Serving、训练模型到配置模型服务器与使用gRPC客户端调用模型,展示了一站式模型上线解决方案,使过程变得简单高效。借助该工具,你可以轻松实现模型的实际应用。
24 0
|
1月前
|
人工智能 机器人 数据库
字节推出「Coze扣子」AI Bot 开发平台,无需编程,让 Chatbot 搭建更快捷、低门槛!
字节推出「Coze扣子」AI Bot 开发平台,无需编程,让 Chatbot 搭建更快捷、低门槛!
84 0
|
4月前
|
编解码 人工智能
OpenAI官方: Sora不止是模型,更是世界模拟器!
OpenAI官方: Sora不止是模型,更是世界模拟器!
36 0
|
4月前
|
机器学习/深度学习 人工智能 算法
构建未来:基于AI的移动应用界面优化策略
【4月更文挑战第6天】随着人工智能技术的飞速发展,其在移动应用界面设计中的应用越来越广泛。本文将探讨如何利用AI技术优化移动应用的用户界面,提高用户体验。我们将详细介绍AI在理解用户需求、预测用户行为、自动调整界面元素等方面的应用,并讨论这种技术的挑战和未来发展趋势。
|
4月前
|
人工智能 Linux API
【AI大模型应用开发】【AutoGPT系列】1. 快速上手 - 运行原生AutoGPT or 利用AutoGPT框架开发自己的Agent
【AI大模型应用开发】【AutoGPT系列】1. 快速上手 - 运行原生AutoGPT or 利用AutoGPT框架开发自己的Agent
222 0
|
4月前
|
API 文件存储 决策智能
抢鲜评测AgentScope:Agent+游戏制作+视频生成的新范式
LLM-Powered Agent凭借长期记忆+自主规划+自动执行等特性,是探索人工通用智能(AGI)的可能途径之一;而Multi-Agent让多个agent通讯来实现协作,也模拟了人类社交及工作协同场景,旨在探索更高质高效的人机协作模式。
|
4月前
|
人工智能 编解码 文字识别