本发明涉及人工智能领域,特别是指一种基于课程强化学习的游戏跟随方法和系统。
背景技术:
寻路跟随一直在各种游戏中有着十分广泛的应用,比如在mmrpg中宠物跟随玩家移动,队员跟随队长移动,怪物追踪玩家进行攻击。
传统技术中的跟随实现方案一般有以下几种:
一、复制轨迹。即按照跟随对象的移动序列或动作序列重复执行。这种方式实现简单,但是ai表现过于呆板。并且在存在陷阱等移动障碍时,与被跟随对象的跳跃等移动能力不一致时可能会出现无法通过的情况。
二、重新规划路径,再根据路径控制角色移动。该方法需要根据游戏场景和角色的行动能力对地图各处的转移概率进行建模,因此对于复杂地形需要大量工程确定各处的可通过性,且该方法无法处理变化地形(如可动陷阱等)。
技术实现要素:
本发明提出一种基于课程强化学习的游戏跟随方法和系统,解决了现有技术中跟随灵活性差,对复杂地形适应性差的问题。
本发明的技术方案是这样实现的:
一种基于课程强化学习的游戏跟随方法,包括以下步骤:
s1,获取游戏接口,建立训练环境并定义课程导航任务;
s2,采用策略梯度的强化学习算法训练策略;
s3,将地图上所有可到达的点分别作为起点和目标点对策略进行测试。
作为本发明的一个优选实施例,所述步骤s1具体包括以下步骤:
s11,在训练端与游戏客户端间建立通讯,训练端通过通讯接口获取游戏内容并控制角色动作;
s12,在获取的游戏信息基础上建立环境,所述环境用于提供游戏内容的抽象,为算法提供状态和奖励并执行算法得到的动作,所述状态包括游戏角色的位置,周围状况和跟随目标的位置,所述奖励为算法训练提供反馈;
s13,定义课程导航任务,在环境中按照一定难度等级从低到高随机生成目标位置,直至到达数量上限,而角色需要地图上的某点出发采取适当行动依次到达指定的目标点,每次到达可获得相应奖励。
作为本发明的一个优选实施例,所述导航任务的定义包含以下步骤:
s131)在地图上求得所有的可到达点,构成可到达点集合;
s132)将可到达点的难度划分为多个级别;
s133)每个回合从第1级难度的点开始随机取点作为目标点,角色每到达一个点则在下一个难度生成新的随机点,并给与1点奖励;
s134)当到达最后一个难度的终点或到达时间限制结束一个训练回合。
作为本发明的一个优选实施例,当每回合的平均奖励到达一定阈值时,将目标点的难度由递进改为随机选择。
作为本发明的一个优选实施例,所述步骤s2中强化学习算法需要学习的部分包括:策略网络πθ和价值估计网络
作为本发明的一个优选实施例,训练策略包含以下步骤:
s21,策略网络与环境交互,产生序列数据并存入缓存中,序列数据
s22,从缓存中获取序列数据,计算策略梯度,以及价值loss的梯度,
s23,对策略和价值估计网络的参数进行更新,并清除缓存,
s24,重复以上步骤直至收敛,即每个回合的平均奖励达到目标数量上限。
作为本发明的一个优选实施例,所述策略和价值估计网络为共享特征表示层的深度神经网络,输入包括周围环境情况和坐标,特征表示层包括处理角色周围状态表示的三层卷积层和一个处理坐标的全连接层;第一卷积层的卷积核尺寸为8x8,通道数为16,步长为4,第二卷积层的卷积核尺寸为4x4,通道数为32,步长为2,第三卷积层的卷积核尺寸为3x3,通道数为32,步长为1;第一全连接层通道数为128,第二全连接层通道数为256,策略网络的策略全连接层通道数为256,价值估计网络的价值估计全连接层通道数为256。
作为本发明的一个优选实施例,步骤s3中生成可到达点包括以下步骤:
s31,根据地图元素的属性求出所有可站立点集合以及可通过点集合;
s32,对站立点集合向上方膨胀固定距离得到膨胀点集合;
s33,将膨胀点集合与可通过点集合取交集再减去可站立集合得到可到达点集合;
s34,从可到达点集合任意取出一点即为可到达点。
一种基于课程强化学习的游戏跟随系统,基于所述方法实现,其特征在于,包括
建立单元,用于获取游戏接口,建立训练环境;
定义单元,用于定义课程导航任务;
策略单元,用于采用策略梯度的强化学习算法训练策略;
测试单元,用于将地图上所有可到达的点分别作为起点和目标点对策略进行测试。
本发明的有益效果在于:通过对课程导航任务的训练,建立一种根据环境状态直接给出动作指令的跟随策略,解决了现有技术中跟随灵活性差,对复杂地形适应性差的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种基于课程强化学习的游戏跟随方法一个实施例的流程图;
图2为训练端智能体与环境交互的示意图;
图3为策略网络与环境交互过程的示意图;
图4为策略及价值估计网络结构示意图;
图5为本发明一种基于课程强化学习的游戏跟随系统一个实施例的原理框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提出了一种基于课程强化学习的游戏跟随方法,包括以下步骤:
s1,获取游戏接口,建立训练环境并定义课程导航任务;
所述步骤s1具体包括以下步骤:
s11,采用socket在训练端与游戏客户端间建立通讯,训练端通过该通讯接口获取游戏内容并控制角色动作;图2是训练端智能体与环境交互的示意图。
s12,在获取的游戏信息基础上建立环境,所述环境用于提供游戏内容的抽象,为算法提供状态和奖励并执行算法得到的动作,所述状态包括游戏角色的位置,周围状况(包括周围的陷阱状态等)和跟随目标的位置,所述奖励为算法训练提供反馈;
s13,定义课程导航任务,在环境中按照一定难度等级从低到高随机生成目标位置,直至到达数量上限,而角色需要地图上的某点出发采取适当行动依次到达指定的目标点,每次到达可获得相应奖励。
所述导航任务的定义包含以下步骤:
s131)在地图上求得所有的可到达点,构成可到达点集合;
s132)将可到达点的难度划分为多个级别;
s133)每个回合从第1级难度的点开始随机取点作为目标点,角色每到达一个点则在下一个难度生成新的随机点,并给与1点奖励;
s134)当到达最后一个难度的终点或到达时间限制结束一个训练回合。
为了增强策略的鲁棒性,当每回合的平均奖励到达一定阈值时,将目标点的难度由递进改为随机选择。
s2,采用策略梯度的强化学习算法训练策略;
所述步骤s2中强化学习算法需要学习的部分包括:策略网络πθ和价值估计网络
作为本发明的一个优选实施例,训练策略包含以下步骤:
s21,策略网络与环境交互,交互过程如图3所示,产生序列数据并存入缓存中,序列数据
s22,从缓存中获取序列数据,计算策略梯度,以及价值loss的梯度,
策略梯度的计算公式如下:
其中,
s23,对策略和价值估计网络的参数进行更新,并清除缓存,
策略网络参数的更新公式如下:
价值估计网络参数的更新公式如下:
s24,重复以上步骤直至收敛,即每个回合的平均奖励达到目标数量上限。所述平均奖励的计算方法为取最近100回合的奖励结果求平均值。
所述策略和价值估计网络为共享特征表示层的深度神经网络,输入包括周围环境情况和坐标,如图4所示。特征表示层包括处理角色周围状态表示的三层卷积层和一个处理坐标的全连接层;第一卷积层的卷积核尺寸为8x8,通道数为16,步长为4,第二卷积层的卷积核尺寸为4x4,通道数为32,步长为2,第三卷积层的卷积核尺寸为3x3,通道数为32,步长为1;第一全连接层通道数为128,第二全连接层通道数为256,策略网络的策略全连接层通道数为256,价值估计网络的价值估计全连接层通道数为256。
s3,将地图上所有可到达的点分别作为起点和目标点对策略进行测试。
步骤s3中生成可到达点包括以下步骤:
s31,根据地图元素的属性求出所有可站立点集合以及可通过点集合;
s32,对站立点集合向上方膨胀固定距离得到膨胀点集合;
s33,将膨胀点集合与可通过点集合取交集再减去可站立集合得到可到达点集合;
s34,从可到达点集合任意取出一点即为可到达点。
如图5所示,本发明还提出了一种基于课程强化学习的游戏跟随系统,基于所述方法实现,其特征在于,包括
建立单元,用于获取游戏接口,建立训练环境;
定义单元,用于定义课程导航任务;
策略单元,用于采用策略梯度的强化学习算法训练策略;
测试单元,用于将地图上所有可到达的点分别作为起点和目标点对策略进行测试。
随着深度学习技术的爆发,基于深度学习的强化学习(reinforcementlearning)技术也得到了飞速发展。深度强化学习技术可以利用程序的自我探索以及对人类行为的模仿,自发地产生对环境的响应行为,避免了人工设计规则的问题。课程强化学习(curriculumreinforcementlearning),通过在强化学习中通过定义由易到难的多阶段任务,来实现泛化能力的提高和收敛速度的加快。
本发明通过对课程导航任务的训练,建立一种根据环境状态直接给出动作指令的跟随策略,解决了现有技术中跟随灵活性差,对复杂地形适应性差的问题。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。