基于多目标强化学习的动态难度调节方法
2021-10-25薛永晖温伟航
薛永晖 温伟航
摘要:保持游戏难度与玩家能力水平的匹配对玩家获得最佳游戏体验至关重要。本文提出了一种基于多目标强化学习的动态难度调节方法,该方法在算法层面对多目标强化学习的单一策略方法进行了创新,在结构设计层面分为线下训练和在线学习2个层级。实验结果表明,该方法能够在胜任感、愉悦感和紧张感3个方面有效提升玩家的游戏体验。该方法简单直观便于实现,为游戏开发者带来了一种新颖有效的开发思路。
关键词:动态难度调节;强化学习;游戏体验
引言
电子游戏在当今世界的地位正变得愈发重要,玩家通过与游戏系统进行交互可以满足自身的许多心理需求。游戏设计者也把给玩家带来最佳的游戏体验作为一项重要任务。达到“心流”状态对玩家的游戏体验至关重要[1],这需要游戏难度与玩家的能力水平相匹配。一种解决方法是在游戏中设置不同的静态难度等级供玩家选择,但这种方法存在降低沉浸感、玩家无法准确评估难度等问题。动态难度调节方法改善了这一问题,它能够根据玩家当下的能力水平对游戏难度进行实时调整。
传统的动态难度调节方法需要开发者手动设计各种行为规则,比较依赖开发者的设计经验,而且随着游戏复杂程度的增加,该方法会变得难以维护。人工智能方法中的监督式学习方法直接利用数据进行建模,无需开发者手动设计,但是该方法需要获取大量用户数据并进行数据预处理,而且模型训练完成投入使用后无法对模型参数进行实时调整。强化学习方法通过 “观测—行动—奖励”这一过程对各种复杂的游戏环境进行学习,学习者在游戏环境中尝试各种行动并获得反馈,据此对自己的行动策略进行调整。该方法简单直观,无需收集大量数据,模型参数亦可以在使用时进行实时调整。本文即是利用了强化学习技术中的多目标强化学习方法提出了一种新型的动态难度调节方法。
1强化学习理论
1.1 强化学习原理
强化学习是一种机器学习方法,其灵感来源于人和动物通过与环境交互所获得的(正面或负面)奖励来学习做出决策的方式[2]。学习是一种传统的强化学习算法,可用于求解马尔可夫决策过程[3]。学习由表得名,用于存储一系列的值。是在状态中采取行动的预期奖励,表示在在状态中采取行动的价值。代理通过选择行动并获得奖励来进行学习,目标是在每个状态采取正确的行动来最大化其预期奖励。奖励是指未来奖励期望值的加权总和。学习以迭代方式对值进行更新。表的初值为设计者设定的任意值,代理每次从状态选择动作时,都会获得奖励,并访问状态,更新其值。如下所示:
其中,α∈[0,1]是学习率,γ∈[0,1]是折扣因子。学习率确定算法对Q的新估值将在多大程度上覆盖旧估值。折扣因子用于调整当下奖励和未来奖励所占的权重;γ越接近1,则未来奖励的权重越大。Q学习会根据其对下一状态 优劣程度的评估来维持其对当前状态Q(s,a)的评估。事实证明,通过使用上式的学习规则,Q(s,a)值能够收敛到预期的未来奖励[3],进而可以基于Q值得到最佳策略。代理在状态s下会选择具有最高Q(s,a)值的行动a。
1.2 多目标强化学习原理及其改良
多目标强化学习是传统强化学习的重要变体,与传统强化学习相比,他要求学习者可以对两个或多个目标的行动策略同时进行优化[4]。可以将多目标强化学习视为多目标优化和强化学习技术的组合,用来解决具有多个目标的顺序决策问题。
图 1展示了多目标强化学习的基本架构,其中一共有个目标,是与第个目标相对应的奖励信号。这种基本架构展示了单个学习代理所面对的情况,它需要针对一组不同的目标来优化自身的行动策略。
多目标强化学习方法可以分为两类:单一策略方法和多策略方法。本文使用单一策略方法,该方法较为简洁明了,使用频率较高,既能够满足动态难度调节的需求,也节省了计算资源。单一策略方法的目的是获得一种最佳策略,该策略能够同时满足用户分配或是系统定义的多个目标的偏好。解决方法是设计一个综合目标函数,它可以适当地代表多个目标的总体偏好。算法 1展示了多目标强化学习单一策略方法的解决方案。
最终的单一策略可以根据来确定,可以通过所有目标的值得出。各种单一策略方法之间的主要区别在于定义多个目标的总体偏好的方式。通过综合目标函数,每个目标的值都可以被合理利用于下一步行动的选择。本文的综合目标函数采用了加权求和的方法,为所有目标计算值的线性加权和。如下所示:
其中,Wi表示第i个目标所对应Q值的权重,设计者可以调整这些权重来改变每个目标在整体目标中的重要程度。
前文所述的多目標强化学习的单一策略方法虽然满足了基本需求,但可以明显看到,在每个训练步长中,该算法会分别对每个子目标的值进行更新,过程较为繁复,在子目标较多的情况下,容易变得难以维护。实际上,由于算法的基本需求是得到单一策略,所以我们最为关注的是综合目标函数,对每个子目标具体的值并不关注,在实现的过程中也完全无需计算出每个子目标的值,只需最终计算出综合目标函数即可。接下来我们试着对该算法进行优化。
将值的更新规则代入公式(2)可得:
与综合目标函数TQ(s,a)相似,我们定义综合奖励TR为所有子目标奖励的线性加权和:
于是我们得到综合目标函数的更新规则:
这样我们就得到了经过优化的改良方法:首先根据公式计算综合奖励,然后通过公式直接更新综合目标函数的值。算法 2展示了通过计算综合奖励直接更新综合目标函数的改良方法。
可以看到,经过优化后的算法无需对每个子目标的值逐个进行更新,而是通过综合奖励,直接对综合目标函数进行一次性的更新。这种经过改良的算法达到了与原始的多目标强化学习单一策略方法相同的效果,但在过程上更加简洁直观,需要的中间变量更少,节省了计算资源,而且容易实现,我们采用该算法作为动态难度调节方法的核心算法。
2 动态难度调节方法的具体实现
2.1 框架结构设计
本文提出了一种两级强化学习动态难度学习框架,并且被实现在一款第一人称生存射击游戏中。游戏规则较为简洁,玩家周围会不断生成AI智能体对手,玩家需要击杀这些AI智能体对手来获得尽可能长的生存时间。该框架的结构设计如图 2所示。游戏内的AI智能体对手分为简单、中等和困难3类,为了让这3类AI智能体对手的具体行动策略产生难度区分,我们使用强化学习技术对这3类游戏AI智能体的具体行动策略(路径策略和射击策略)进行线下训练。为了达到动态难度调节的目的,我们引入更高一级的难度控制器,运用强化学习技术,利用游戏内实时产生的数据对玩家的特点进行在线学习,根据玩家当下的技能水平实时调整各个难度AI智能体对手的生成概率,给玩家提供合适的挑战,使玩家进入心流状态并获得最佳游戏体验。
2.2 智能体行为策略的线下训练
我们根据智能体AI与玩家前方视场的相对位置来对智能体AI的路径策略进行训练。训练逻辑比较直观:若敌人所处的位置在玩家正前方的视场内,玩家就会比较容易地射击到该敌人。相反,若敌人的位置在玩家的视场之外,玩家射击到该敌人就会变得困难。基于该逻辑,我们得出AI智能体路径策略训练的具体方案:3种难度AI智能体初始的路径策略完全随机。对于简单难度的AI智能体,当它的位置到达了玩家视场之内,就会获得正奖励,当它离开了玩家的视场,则会获得负奖励。对应地,对于困难难度的AI智能体,当它的位置到达了玩家视场之内,就会获得负奖励,当他离开了玩家的视场,则会获得正奖励。中等难度AI智能体无论处在何种位置都不会获得奖励。
我们通过子弹的扩散角来模拟子弹在真实情况下的弹道偏移,扩散角的取值范围是0°-90°。当扩散角为0°时,子弹最终射出的方向即为初始方向,此时子弹总是能击中玩家;当扩散角逐渐增大,子弹射出的最终方向与初始方向的偏移量也逐渐增大,击中玩家躯体的概率逐渐变小。基于以上的概念,我们得到AI智能体射击策略训练的具体方案:3种AI智能体的初始扩散角完全随机。对于简单难度的AI智能体,当它击中玩家就会获得负奖励,未击中玩家则会获得正奖励。同理,对于困难难度的AI智能体,当它击中玩家会获得正奖励,未击中玩家则会获得负奖励。对于中等难度AI智能体,无论是否击中玩家都不会获得任何奖励。
2.3 通过在线学习实现动态难度调节
我们选取玩家射击的命中率、单位时间内击杀敌人的数量、单位时间内损失的生命值这3个游戏内参数作为动态难度调节的3个子目标。每个游戏内参数都存在一个最优的取值范围,若参数
落在此范围内,代表此时游戏提供的挑战与玩家的技能水平相匹配,若游戏内参数超出此范围(过高或过低),说明游戏在此维度上提供的挑战过易或过难。控制器通过改变3种难度AI智能体(简单、中等、困难)的生成比例来对当前游戏难度进行调节。于是我们得到具体的在线学习方案:当某个子目标对应的游戏内参数恰好落在最优范围内时,难度控制器会获得正奖励;若游戏参数超出此范围,难度控制器则会获得负奖励。根据多目标强化学习思想,各个子目标被融合成为单一的总体目标,子目标的奖励也被融合成为一个总体的奖励,代表系统对当前AI智能体生成策略的判断。若总体奖励为正,表示此时的AI智能体生成策略是合适的,应当继续保持;若总体奖励为负,表示此时的AI智能体生成策略已经不再与玩家技能水平相匹配,需要进行调整。系统通过学习,不断更新当前最佳的难度调节策略,并对游戏难度进行实时调节。
3 实验与结论
本文通过对比实验的方法,对基于多目标强化学习的动态难度调节方法在提升玩家游戏体验方面的有效性进行验证。玩家分别在部署了动态难度调节系统和未部署动态难度调节系统(3种静态难度)的情境下体验一款自定义射击游戏,并分别在每个游戏情境结束后填写PENS问卷[5]和IMI问卷[6],对各个情境下的游戏体验进行评估。通过对问卷结果的统计学分析可以得出,本文提出的基于多目标强化学习的动态难度调节方法相比静态难度方法能够显著提高玩家的胜任感和愉悦感,并且把玩家的紧张感控制在较为适中的范围。
由此我们可以判断,本文提出的基于多目标强化学习的动态难度调节方法可以有效提升玩家的游戏体验。该方法能够对游戏难度进行精准调节,使之与玩家当下的能力水平迅速匹配,让玩家快速进入心流状态,体验到强烈的胜任感和愉悦感,同时使玩家保持适度的压力和紧张感,增强玩家游玩游戏的兴趣与动力。此外,该方法较为简单直观,便于部署,为游戏开发者带来了一种新颖有效的开发思路。
参考文献
[1]Csikszentmihalyi M,Csikzentmihaly M.Flow:The psychology of optimal experience[M].New York:Harper & Row,1990.
[2]Sutton R S,Barto A G.Reinforcement learning:An introduction[M].MIT press,1998.
[3]Watkins C J C H,Dayan P.Q-learning[J].Machine learning,1992,8(3-4):279-292.
[4]Vamplew P,Dazeley R,Berry A,et al.Empirical evaluation methods for multiobjective reinforcement learning algorithms[J].Machine learning,2011,84(1-2):51-80.
[5]Ryan R M,Rigby C S,Przybylski A.The motivational pull of video games:A self-determination theory approach[J].Motivation and emotion,2006,30(4):344-360.
[6]Ryan R M.Control and information in the intrapersonal sphere:An extension of cognitive evaluation theory[J].Journal of personality and social psychology,1982,43(3):450.
作者簡介:
薛永晖(1995—),男,中国传媒大学动画与数字艺术学院,硕士研究生,研究方向为动态难度调节。
温伟航(1988—),男,中国传媒大学动画与数字艺术学院,硕士研究生,研究方向为游戏用户体验。