当前位置: 首页 > 科技观察

西山居AI技术专家黄洪波:游戏内强化学习与行为树融合实践

时间:2023-03-21 00:20:00 科技观察

2022年8月6日-7日,AISummit全球人工智能技术大会如期举行。在7日下午举行的《人工智能前沿探索》分论坛上,西山居AI技术专家黄洪波带来了《游戏中强化学习与行为树融合实战》的主题分享,详细分享了强化学习在游戏领域的价值。黄洪波表示,强化学习技术的落地,不在于将算法改得更好,而在于将强化学习技术与深度学习、游戏策划结合起来,形成一套完整的解决方案并加以实现。强化学习让游戏更加智能。在游戏中实施强化学习可以让游戏更加智能和可玩。这就是在游戏中使用强化学习的主要目的。“强化学习是一种机器学习范式,可以训练代理人的策略,使其能够做出一系列决策。”黄洪波表示,智能体的目的是根据对环境的观察输出动作。这些行动将导致更多的观察和回报。当代理与环境交互时,培训涉及大量的反复试验,并且每次迭代都会改进策略。在游戏中,采取行动或执行行为的代理是游戏代理(Agents)。考虑游戏中的角色或机器人,它必须了解游戏的状态,玩家在哪里,然后根据这种观察,它应该根据游戏的情况做出决定。在强化学习中,决策是通过奖励做出的,奖励可以在游戏中作为高分给予,或者用于达到特定目标的新水平。黄洪波表示,游戏情境最酷的地方在于,代理人的策略是在游戏的压力下训练出来的。例如,它可以学习如何应对攻击,或者如何表现以实现特定目标。行为树在游戏中的作用行为树是一种包含逻辑节点和行为节点的树状结构。通常,每一种情况都可以抽象成一类节点,按照规范编写节点,然后将这些节点连接成一棵树。每次用户查找行为时,他们都会从树的根节点开始,从每个节点中查找与当前数据匹配的行为。简单来说,当AI模块耦合度高、粒度大时,一次变更往往涉及大量修改,容易出现大量重复代码。行为树的出现,为广大游戏开发者提供了一本“方块书”,让AI开发者更容易构建一套可重用、可扩展、可维护的AI框架。可以说,强化学习是通过训练得到的,行为树是几个else和if语句的组合。如上图所示,图中有一个根节点,下面有一个树节点,树节点包括逃跑、攻击、游荡。将上图想象成一个AI或机器人,让他在丛林中巡逻。当AI看到一个ORC半兽人,判断自己打不过ORC时,当这个条件被触发时,AI就会逃跑,逃跑后会执行Run动作。当判断比较容易打架时,就会执行打架操作。上图中,有两个节点,一个是Root,也就是根节点;另一个是Selector节点,也就是逻辑节点。所有的节点从左到右按照一定的顺序执行,就是一个行为树。因此,你只需要在每个节点中编写相应的逻辑,就可以让AI执行一些相关的动作。几棵行为树最终组成了一个游戏。强化学习与行为树的结合丰富了游戏如何利用强化学习与行为树的结合来丰富游戏呢?这在很多游戏中都是很难讨论的应用。在此之前,我们不妨讨论一下什么时候用强化学习比较好,什么情况下用行为树比较好。黄洪波表示,如果用行为树无法很好地达到目标,可以使用强化学习。比如在FPS(第一人称射击游戏)中,应该使用多少火力,应该向谁开火,应该使用什么样的武器等等,通过行为树来做决策就比较困难。一般来说,最好使用强化学习。什么时候使用行为树?例如,如果你需要在游戏中跳过障碍物,你可以选择使用强化学习或行为树来完成。但是如果用强化学习来做的话,训练起来会很麻烦。由于在这种情况下只有一个选项,即跳过,因此使用行为树更容易。不难发现,如果在游戏中使用强化学习和行为树的结合,是更好的解决方案。黄洪波表示,强化学习与行为树的结合实现比较大的途径有两种:一种是强化学习为主,行为树为辅;另一种是以行为树为基础,强化学习为辅。行为树端:行为树是AI的主要移动方式。行为树接收游戏客户端输入的obs,根据自己的目标,为obs写入相应的行为树行为。在行为树的每一个行为中,将一些需要强化学习来做决策的节点交给强化学习,所以这里需要强化学习针对一些特定的场景做相应的训练。强化学习端:整体策略变成训练几个模型,每个模型实现一个策略,然后嵌入到行为树中。黄洪波表示,这两种不同的实现方式哪种更好,需要根据不同的情况、不同的应用、不同的游戏进行不同的考虑,不能一概而论。在接下来的时间里,黄洪波详细介绍了西山居在强化学习和行为树方面采用的技术框架,并结合大量的游戏案例,详细介绍了行为树和强化学习在游戏中是如何结合的,让游戏变得更加丰富。对案例实践感兴趣的用户不妨关注AISummit全球人工智能技术大会精彩分享视频。(https://aisummit.51cto.com/)