AI强度相关的研究:MCTS 蒙特卡洛树搜索 Monte Carlo Tree Search

提供具有挑战性的人工智能对手是使视频游戏令人愉悦和身临其境的重要方面。 太简单或反之太难的游戏可能会让玩家感到沮丧或无聊。 动态难度调整是一种方法,旨在通过为对手提供量身定制的挑战来改进传统的难度选择方法,从而使挑战对玩家来说处于最佳水平。 这项研究使用蒙特卡洛树搜索(Monte Carlo Tree Search)方法对三种不同的动态难度调整方法进行了玩家评估,并评估了它们对玩家享受度,真实感和感知难度的影响,尤其是调查了采用不同赢/输比例的影响 通过动态难度调整,使得玩家能获得最大的欢乐。

背景

2017年,视频游戏行业的收入超过1000亿美元[24]。 为了打入这个竞争激烈的市场,开发人员需要确保他们的游戏向玩家提出正确的挑战水平,以便提供令人愉悦的游戏体验。

当前的视频游戏有很多不同的方式向玩家提出挑战。 一种做到这一点的方法是通过随着玩家的前进稳步增加游戏级别的难度。 游戏开发人员使用的另一种方法是允许玩家通过在游戏开始之前直接选择游戏难度来选择游戏难度,即“简单”,“中等”或“困难”。

尽管最初这仅允许进行一些选择,但是游戏开发者此后开发了允许更大难度设置的方法。但是,这两种方法都有许多局限性。 在游戏开始之前选择难度的情况下,玩家需要对他们在当前游戏中的当前技能水平有一些假设,以及对开发商如何将难度分配给游戏的假设。 如果这些假设不正确,则可能导致对游戏的不满意,并且取决于所讨论的游戏,一旦玩家取得了进步,切换此难度可能并不容易。 固定的难度系统也可能不包含玩家的技能水平进步,因为他们在游戏中会变得更好。

增加级别系统和固定难度的另一个局限性是两者之间的跳跃,即从一个级别转到另一个级别或从一个难度设置变为 另一个。 这个跳跃需要仔细地进行校准,因为太大的跳跃会给玩家带来太多的挑战,太大的跳跃会给玩家带来不可忽视的差异。 在这两种情况下,玩家都可能对游戏失去兴趣。 这又导致了另一个局限性,即游戏开发人员需要将所有玩家分为非常少量的不同技能水平,而这种小的分组很可能只能满足平均人数的玩家。

在早期尝试解决这些问题的过程中,动态难度调整[16]的介绍。 动态难度调整是一种方法,它使游戏对玩家的挑战级别对他们来说处于正确的水平,并随着他们的技能水平变化而进行调整。 这也允许玩家进入“沉浸”状态[11],玩家沉浸在其中。那么问题就变成了向挑战提出正确的挑战水平。

当前的动态难度调整系统趋向于将玩家的赢/输比定为50%[3],这是有充分理由的。此级别的挑战为玩家提供了一个公平的游戏。 公平游戏是来自排名系统(例如Elo [13])的概念,其中竞争游戏,公平游戏代表任一玩家同样有可能获胜。 Malone [21]在较早的著作中提出公平的游戏是有动机的,因为它在适当的难度下提供了挑战。 加上Yannakakis等人的发现[28]根据经验发现,当将游戏设置为对玩家的适当挑战级别时,游戏的娱乐因子最高。 对于普通视频游戏来说,将玩家的赢/输比定为50%是很有意义的。

在本文中,我们提出了三种采用MCTS的动态难度调整方法,并在2D格斗游戏中测试了这些算法,以了解游戏的乐趣,感知的难度和真实感 与anAI相比,不同方法的方面对玩家来说太困难了。 这项工作为了解如何使富有挑战性的AI对手提供了见解,尤其是Dy-Namic难度调整Agent所针对的不同赢/输比率对游戏乐趣的影响。

相关工作

游戏流程的概念对于确保玩家沉浸在游戏中至关重要。 考利等。 [10]将Csikszentmi-halyi的“流量理论” [11]应用于视频游戏。 Cowley指出,只要玩家沉浸在游戏中,他就会继续玩游戏并对游戏产生兴趣。 Sweetser等。 [26]也与Csikszentmihalyi的“流程理论”合作,开发了一种用于评估游戏的模型GameFlow。 它通过评估以下方面的属性来预测游戏的成功:集中度,挑战,玩家技能,控制力,明确目标,反馈,沉浸感和社交互动。 虽然由Sweetser等人进行的工作。 “沉浸”的概念主要是指沉浸而非挑战,沉浸的定义[8,18]包括挑战是使游戏沉浸式游戏的基本组成部分。 为使游戏变得有趣[1],需要为竞赛游戏提供具有挑战性的人工对手。

提供具有挑战性的对手的一种方法是使用一种称为“动态难度调整”的技术。 该系统的早期实现是称为Hamlet [16]的系统,该系统试图通过控制游戏中库存的供应,需求和强度来调整游戏过程中的游戏难度。 一旦发现玩家在游戏的某个区域中挣扎,该系统便可以通过多种不同方式修改游戏环境:更改游戏中物品的可用性,更改玩家武器的强度以及更改游戏玩法 的敌人。

Yannakakis等。 [29]通过实施自适应AI系统开发了一种动态难度调整Agent,该系统使用贝叶斯网络对单个玩家进行建模。 然后,该玩家模型被自适应系统用来修改人工对手。 Avery等。 [5],和Bakkes等。 [6]还开发了可将人造对手定制为单个玩家的自适应系统。 Avery等。 使用了协同进化技术,其中Bakkes等人。 采取一种监督学习的形式。 尽管两种方法都使用不同的指标来确定人工对立是否适合个人,但这两种方法均会产生合适的自适应系统。 尽管这不是对多年来在DDA上发布的所有不同方法和技术的详尽综述,但这些论文提供了出色的初步背景知识。

最近,已经出现了使用蒙特卡洛树搜索[15,20,23,30]的动态难度调整Agent的推论。由于蒙特卡洛树搜索多年来得到了改进,并成功用于复杂的游戏中,例如围棋[14]。 这些MCTS方法着重于通过硬件,扩展或仿真限制来限制MCTS的计算方面。尽管这些不同的方法可以成功地产生某些游戏类型的DDA Agent。 由于某些实时游戏的计算时间有限,因此这些方法的效果可能较差,尤其是在MCTS处理时间很少的情况下。 在第5节中,我们介绍了一种使用MCTS的DDA Agent的不同方法。 主要区别在于我们的Agent无论如何都不会限制MCTS,而是我们会更改MCTS构建搜索树的方式以及MCTS使用的动作选择策略。 这样可以始终利用MCTS的最大分配时间,从而找到最合适的操作。这种方法不仅限于实时游戏,还可以轻松地应用于任何基于MCTS的方法

背景

具有较大状态空间的游戏(如围墙)导致搜索空间过大。 为了处理这类游戏,使用了随机树搜索技术,称为“蒙特卡洛”方法[22]。 蒙特卡洛方法不能完全探索子树,这可能会花费无数时间。 取而代之的是,他们对这些子树的部分随机抽样感到满意,并使用此类样本的平均值作为整个子树值的估计。 请注意,只有在有游戏模拟器可用的情况下,这才可能实现,以便可以进行游戏模拟。

很少有使用这种技术的方法,例如:•

  1. 假设玩家也有每个对手玩家的模型,这将有助于产生准确的模拟,但不切实际;•
  2. 假设其他玩家执行随机动作,这是不现实的,因为优秀的玩家将选择比平均水平更好的动作;
  3. 假设其他玩家是完全理性的,因此要运行minimax(或其适当的变化),这具有需要进行完整树探索的缺点,从而抵消了蒙特卡洛技术的优势。

混合方法是使用最小极小值的相同原理,直到达到一定树深度为止,并且仅针对更深的节点使用随机模拟来估计值。 这具有不需要探索完整树的优点,并且提供了一种不需要领域专业知识的启发式方法,这使其成为一种通用技术。

基本的 MCTS 算法非常简单:根据模拟的输出结果,按照节点构造搜索树。其过程可以分为下面的若干步:

AI强度相关的研究:MCTS 蒙特卡洛树搜索 Monte Carlo Tree Search_第1张图片

AI强度相关的研究:MCTS 蒙特卡洛树搜索 Monte Carlo Tree Search_第2张图片

 

搜索树的构建过程

  1. 选择 Selection:从根节点 R 开始,递归选择最优的子节点(后面会解释)直到达到叶子节点 L。
  2. 扩展 Expansion:如果 L 不是一个终止节点(也就是,不会导致博弈游戏终止)那么就创建一个或者更多的字子节点,选择其中一个 C。
  3. 模拟 Simulation:从 C 开始运行一个模拟的输出,直到博弈游戏结束。
  4. 反向传播 Backpropagation:用模拟的结果输出更新当前行动序列。

 

与格斗游戏的关联:

2D格斗游戏是其中两个对立的玩家在二维竞技场中相互搏斗的游戏。 这一类型的著名游戏是《街头霸王》 [27]和《真人快打》 [7]。 在此游戏中,玩家尝试在对手的生命值降低为零或时间用完之前将对手的总生命值降低为零。 在后一种情况下,最健康的玩家获胜。 为了达到这个目的,玩家需要使用各种不同的攻击方式。 拳,脚踢和火球。 Playerscan也可以通过步行或跳跃在舞台上移动,并且还可以阻止传入的攻击。 通常,一场比赛由三轮淘汰赛形式组成。

AI强度相关的研究:MCTS 蒙特卡洛树搜索 Monte Carlo Tree Search_第3张图片

不同Action对应状态的Q表

动态难度调整

使用蒙特卡洛树搜索,我们为2D格斗游戏构建了三个动态难度调整Agent,我们将其称为自适应AI对手。 这些Agent都是基于一种“理想”挑战性游戏的思想,在这种游戏中,每个玩家都有50%的获胜机会,平均而言,玩家应该平局。 对于一个2D格斗游戏而言,当两个玩家同时将彼此的生命值降低到0或当时间到期时两个玩家的生命值总额相同时,就会出现平局。 基于此信息,本工作中的每个自适应AI对手都旨在确保玩家与自适应AI对手之间的健康差异尽可能接近0。 根据与玩家的距离,为每个Agent提供固定的搜索时间,搜索深度和模拟帧。 在近距离(<150像素)中,Agent获得2帧的搜索时间,搜索深度设置为2和40个模拟帧。 在距离(> 150像素)处,Agent获得6帧的搜索时间,搜索深度设置为8和60个模拟帧。

行为选择

我们在这项工作中测试的第一个自适应AI对手基于“挑战敏感动作选择” [3]。 这种动态难度调整的方法使用强化学习[25]来建立状态动作对的离线Q表。 对于每个状态,它都会根据操作的Q值对操作进行排名(请参见图3)。通过选择初始状态的平均排名操作来开始游戏,并继续对每个状态进行此操作,直到重新评估游戏为止 在固定的动作次数之后,根据玩家与自适应AI对手之间的健康差异,更改为下一个周期选择的动作等级,以使健康差异尽可能接近0。 在健康程度高于适应性AI对手的情况下,动作等级会增加一级,从而增加难度;如果玩家的健康状况低于适应性AI对手,则动作等级会降低一级,从而降低难度。 随机选择相同的等级,然后重复每个评估周期。

使用此方法选择操作策略,我们设计了一个新的DDA Agent,该Agent将MCTS-UCT替换为“强化学习”,以实时执行树的构建。 根据从MCTS进程分配的节点得分对操作进行排名。 以相似的方式选择动作,自适应AI对手再选择一次平均动作,并在每个评估周期后更改所选动作的等级。在我们的示例中,评估周期为每9秒一次。

AI强度相关的研究:MCTS 蒙特卡洛树搜索 Monte Carlo Tree Search_第4张图片

部分算法细节略

 

实验设置

为了测试各种动态难度调整Agent,我们进行了一次人工试验。 在此试验中,人类玩家与动态难度调整Agent,CSAS,ROSAS和ATROSAS以及具有标准节点评估和动作选择策略的MCTS-UCT对抗游戏1次(三轮) 。 每回合持续90秒,玩家开始获得500点生命值。 我们共有31位参与者。 每个参与者都获得了一份初始问卷,以了解他们在2D格斗游戏类型中的年龄,性别,家族身份和技能水平(请参阅表1。参与者不知道他们在每个游戏中都在对抗哪个Agent。

每场比赛中,参与者被问到以下问题:

对手的难度等级为1-5分(1个难度最低,5个难度最大):该问题用于衡量每个对手的感觉难度 理想的挑战水平是让玩家在此类别中将Agent打出3分,这意味着该Agent并不困难也不太容易,我们希望纯MCTS-UCT是最困难的Agent。

1-5这个对手有多愉快?(1是最不愉快,5是最愉快):这个问题的目的是加深对Agent的享受程度的理解。我们希望DynamicDifficulty Adjustment Agent是最愉快的,

在1-5的级别上,您发现此Agent的性能如何现实? (1个是最不现实的,5个是最现实的):有了这个问题,我们想找出Agent的真实程度。 与许多类型的AI对手是否适应有关的问题是,他们会感到非常虚假,与不切实际的对手进行比赛会破坏游戏流程和沉浸感。

结果与讨论

试用后,我们整理了每场比赛的数据以及问卷的相应答案。 我们计算了每种代理的获胜率,如表2所示,以查看代理是否能够达到所需的50%获胜率。正如预期的那样,我们观察到MCTS-UCT的获胜率极高,这不足为奇 因为它不是在试图适应玩家,而是以最大的难度设置玩游戏。

AI强度相关的研究:MCTS 蒙特卡洛树搜索 Monte Carlo Tree Search_第5张图片

AI强度相关的研究:MCTS 蒙特卡洛树搜索 Monte Carlo Tree Search_第6张图片

AI强度相关的研究:MCTS 蒙特卡洛树搜索 Monte Carlo Tree Search_第7张图片

 

ATROSAS的获胜百分比最接近目标50%,超过了CSAS和ROSAS。 如前所述,这是因为ATROSAS利用了MCTS构建搜索树的方式,并且最相关的操作获得了最多的搜索时间。 与其他两个代理程序相比,这使得选择的操作结果可以更准确地达到目标。图5、6和7是每个游戏后问卷调查问卷答复的小提琴图。 图中的蓝色区域是答案的实际分布,其中平均答案以红色显示,主题曲线以绿色显示。

MCTS-UCT也是最不令人高兴的因素(图6),平均响应约为2.4(其中1为最不愉快)。 这就增强了这样的论点,即如果游戏太难了,玩家会发现游戏不那么有趣。就现实性而言,答案的分布更加统一,这表明很难评估代理的真实性,这可能是由于 Agent非常好斗且节奏快,对于新手来说很难解释。问卷调查对Agent的反应令人惊讶。 参与者发现,ROSAS(平均≈3.3)和CSAS(平均≈3.2)Agent平均处于适当的难度级别,请参见图5。在这方面,ROSAS在这方面是更好的代理,这是有争议的,因为 它的分布更集中于平均值,而CSAS分布在响应范围内更均匀。 虽然ATROSAS是一种更强大的算法(目标胜率接近50%),但令人感到奇怪的是,人们发现它比CSAS和ROSAS更难。 这可能是由于这样的事实,即它更好地匹配了健康点差异,因此玩家再也无法获得任何真正的优势来对抗它,这使比赛变得更加困难。这令人质疑是否胜率高达50%, DDA系统的目标确实是非竞争性游戏的理想挑战水平。当我们研究娱乐性时(图6),我们发现ROSAS是最值得与之对抗的代理(平均3.9,其中5为最娱乐性)。 响应的分布再次紧密地封装在该数字附近,表明这是比CSAS和ATROSAS的方法更为准确的结果。 尽管该特工没有追踪目标获胜百分比,但ATROSASit是一个更有趣的Agent。 我们推测,这可能是由于代理商没有很好地追踪健康点差异而引起的,这可能会给玩家带来领先感,使其更加愉悦。 就现实性而言,ROSAS是最现实的代理(平均值约为3.7,其中最现实的代理,请参见图7)。 与其他特工不同的是,它的分布更集中于平均值,从中可以更有信心。从这些结果中我们可以看出,获得50%的获胜率并不是理想的挑战水平。 尽管有50%的获胜率会在竞争性环境中进行非竞争性比赛时产生公平的游戏,但如果更关注娱乐性,这可能不是最好的。 但是,如果获胜百分比太低(对于CSAS来说就是这种情况),这也可能导致Agent不愉快,因为它太容易被击败。 寻找理想的赢/输比也可能因流派而异

结论

有趣的是,就胜率目标而言,最令人愉悦和最现实的动态难度调整代理并不是表现最佳的代理。 ROSAS代理被认为对玩家来说是正确的挑战水平,我们推测这是由于获胜率略低于50%造成的。 这项工作试图研究以下问题:在非竞争性环境中,视频游戏的最佳挑战水平是什么? 这不是一个简单的问题,尽管我们发现赢/输比率50%并不理想,但是在“确定性”之前,首先需要了解动机和玩家玩游戏的原因。 可以发现获胜/失败。

了解玩家的动机以及他们玩游戏的原因是动态难度调整领域中许多研究通常忽略的一个步骤。

你可能感兴趣的:(强化学习,笔记)