用于仿真足球机器人控球的控制方法与流程

文档序号:15491396发布日期:2018-09-21 20:38阅读:220来源:国知局
本发明涉及仿真机器人控制方法,尤其涉及一种仿真足球机器人的控制方法,属于机器学习、智能体控制
技术领域

背景技术
:强化学习可以看作是一个试探评价过程,智能体在与环境交互的过程中,选择一个动作作用于环境,环境执行动作之后状态发生变化,同时产生一个强化信号(奖励或惩罚)反馈给智能体。智能体则根据强化信号和环境当前的状态再选择下一个动作,选择的原则是使受到正强化的概率(程序中通常用q值表示)增大,基本原理如图1所示。如图1所示,每一个强化学习中智能体在与环境交互时,每一时刻的事件序列表示如下。1)智能体感知当前的环境状态;2)针对当前的状态和强化信息,智能体选择一个动作执行;3)当智能体所选择的动作作用于环境时,环境发生对应的改变,即环境状态转移至一新状态并给一定的奖赏(强化信号r);4)奖赏信号r反馈给智能体。在这里强化学习主要包含以下四个要素:策略(policy)、回报值(reward)、值函数(valuefunction)与环境模型(modelofenvironment)。策略——即决策函数,是强化学习最重要的部分,并定义了智能体在某一个固定状态时所需要采取的具体动作。回报值——是强化学习的目标,是指智能体在与环境交互过程的,从环境中获取的奖励信号。即环境中的每一个状态(状态-动作对)均对应一个单独的数字-奖赏。是对产生的动作好坏作的一种评价。此标量为正数时代表奖赏,为负数时为惩罚。回报值给智能体下一动作选择提供了参照,其设计间接影响智能体效率,在学习中要不断进行修正来达到奖赏值最大化。值函数——是强化学习研究的关键,对奖惩的一种预测,某一状态下的值函数指的是一个智能体所期望的总的奖赏和。环境模型——表示模拟环境的行为方式,对于某一个状态和在该状态下执行的具体的动作,模型可以预测下一时刻的状态和下一个奖赏值。在众多强化学习算法中,一般分为两类,在策略与离策略。q学习是一种典型的离策略,而sarsa(λ)学习是在策略。离策略有一个缺点就是学习最优策略时,会对任意的状态,执行任何动作且不限次数,这就会导致有些时候并不是很好的动作也会被执行。技术实现要素:本发明所要解决的技术问题是:针对
背景技术
的不足,选择在策略中sarsa(λ)算法进行智能体学习探索,提出一种仿真足球机器人的控制方法。本发明为解决上述技术问题采用以下技术方案:一种用于仿真足球机器人控球的控制方法,利用tilecoding线性函数近似方法降低状态空间维度,智能体在强化学习中选择sarsa(λ)算法,对策略进行在线打分,以高分优先选择的原则训练选择一个最优策略,具体包括步骤如下:步骤(1)、对于起始状态,随机选择一个智能体模块作为优先选择模块进行初始化实值数组q(s,a),观察当前状态s,基于q值的策略选择一个行为a;步骤(2)、对每个智能体模块内部进行q(s,a)值更新,得到下一个状态s',并观察奖赏值r;根据动作选择概率函数选择状态s'与基于q值的策略选择一个行为动作a';步骤(3)、在每个智能体模块内部更新资格迹e(s,a):δ←r+γq(s',a')-q(s,a)e(s,a)←e(s,a)+1;其中,e(s,a)为资格迹,规定在每一个时间步中对于一个状态动作对(s,a)对应该更新的量,γ是折扣率,α是步长,λ是衰减率;步骤(4)、每个智能体模块内部更新所有状态动作对(s,a)的q值:q(s",a")←q(s",a")+αδe(s",a")e(s",a")←γλe(s",a");步骤(5)、更新下一个状态与行为:s←s′a←a′步骤(6)、重复步骤(2)-(5);对于每一个状态s和行为a,每当接收到一个新的奖赏就更新q(s,a)。进一步,本发明所提出的一种用于仿真足球机器人控球的控制方法,所述tilecoding线性函数近似方法使用一维tiling,即在每个状态变量单独的使用一个间隔;对每个状态变量有32个tiling,则每个tiling偏移另一个tiling的1/32个片宽度,所有活动的片组成了特征集合fa,对于3v2情况,有13个状态变量,32个tiling,则每个特征向量有13*32=416个片。进一步,本发明所提出的一种用于仿真足球机器人控球的控制方法,其中θ为主要的存储矢量。进一步,本发明所提出的一种用于仿真足球机器人控球的控制方法,作为控球球员的智能体模块的奖赏值,即其回报值具体如下:r=currenttime-lastactiontime式中,currenttime表示当前周期,lastactiontime表示上次执行学习动作的周期。进一步,本发明所提出的一种用于仿真足球机器人控球的控制方法,所述回报值是在等待若干个周期后,直到从手工策略转到执行强化学习策略时,才得到上次强化学习选择的动作的回报值。本发明采用以上技术方案与现有技术相比,具有以下技术效果:本发明基于sarsa(λ)算法来应用强化学习,在keepaway上实验,在一个小的任务中保持球员可长时间控球,达到高持球率,使用sarsa(λ)算法来学习最优策略,以此来加大多智能体之间传球协作策略或可找到合适的机会射门策略,加大得分胜率。附图说明图1是强化学习基本原理图。图2是3v2的状态变量球员示意图。图3是两个状态变量重叠的tiling图。具体实施方式下面结合附图对本发明的技术方案做进一步的详细说明:本
技术领域
技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。在策略学习智能体即将执行策略的值,包括探索步数,以便可以迭代提升性能。因此在本发明中,智能体学习探索采用sarsa(λ)算法来学习,首先sarsa算法名字来源于运用“状态→行为→回报→状态→行为(state→action→reward→state→action)”经验来更新q值,是一个在策略增强学习算法,它估计的是即将执行策略的值。sarsa经验的形式为(s,a,s',a'),意思是:agent在状态s,执行行为a,接受回报值r,结束于状态s',并由此决定执行行为a',该经验提供了一个用以更新q(s,a)的新值,即r+γq(s',a')。而sarsa(λ)是sarsa的一种变形方法,该算法规定对于每一个状态s和行为a,每当接收到一个新的奖赏就更新q(s,a),但仅仅更新那些资格大于某个阈值的不仅更高效,而且准确率的损失也很小。具体描述如下:sarsa(λ,s,a,γ,α)输入:s是状态的集合,a是行为的集合,γ是折扣率,α是步长,λ是衰减率。内部状态:实值数组q(s,a)与e(s,a),前一状态s,前一行为a。begin:随机初始化q(s,a)对于所有的s、a,初始化e(s,a)=0观察目前的状态s利用一个基于q的策略选择arepeatforever:执行行为a观察奖赏r和状态s'利用一个基于q的策略选择a'δ←r+γq(s',a')-q(s,a)e(s,a)←e(s,a)+1fallalls",a"q(s",a")←q(s",a")+αδe(s",a")e(s",a")←γλe(s",a")s←s′a←a′end-repeatend在这里,e(s,a)也叫做资格迹,其中s和a分别是所有状态的集合和所有行为的集合。在执行每一个行为之后,更新每个“状态-行为”对的q值。以下针对本发明的应用介绍具体实施例:sarsa(λ)算法在仿真足球机器人控球的应用。在仿真足球机器人中选择keepaway子任务来测试强化学习效果。把sarsa(λ)应用到控球球员,试图让球员自己找出一个策略来保持控球率增加及控球时间长等。而由于其任务状态空间较大,状态空间必须离散化,用函数近似的方法来学习q(s,a)函数,q(s,a)函数可以表示为一个参数向量的函数,这就是说q(s,a)函数依赖于随着每一步的变化q(s,a)也随着变化。可以有不同的方法来表示近似的q(s,a),在这里,本发明采用了tilecoding线性函数近似方法降低状态空间的维数,从而达到降低问题的复杂性。1.状态变量防守球员根据到持球球员的距离来排列,如图2所示是一个3v2的状态变量球员示意图。其中圆圈为球,k1表示正在强化学习的持球球员,k2是距离k1最近的持球者,k3是下一个离k1最近的球员。依次类推直到kn,n表示防守球员总数。t1-tm(m是进攻球员总数),以到k1最近的距离来排列。c表示比赛区域的中心。dist(a,b)表示a和b的距离,ang(a,b,c)表示ab和bc的角度,顶点是b。对于3个防守球员对2个进攻球员,使用下面的13个状态变量:dist(k1,c);dist(k2,c);dist(k3,c);dist(t1,c);dist(t2,c);dist(k1,k2);dist(k1,k3);dist(k1,t1);dist(k1,t2);min(dist(k2,t1),dist(k2,t2));min(dist(k3,t1),dist(k3,t2));min(ang(k2,k1,t1),ang(k2,k1,t2));min(ang(k3,k1,t1),ang(k3,k1,t2));上面的状态变量可以一般化,可以推出多于3个防守球员和2个进攻球员时状态变量的表示。可以看出状态变量总数与球员数线性增长。2.tilecoding线性函数近似方法由于需要大大减少状态空间,也就是降低空间维度。本发明利用tilecoding线性函数近似方法将状态空间离散化为几个自由变量。考虑任意组状态变量,这些变量分布在无限的轴平行的tiling中。tilecoding特征集fa由多个状态变量重叠部分组成,如图3所示为两个状态变量组成特征集。图3中所示两个正方形即为两个状态变量重叠处区域内的点即为一个状态。使用一维tiling,即在每个状态变量单独的使用一个间隔。对每个状态变量有32个tiling,则每个tiling偏移另一个tiling的1/32个片宽度。所有活动的片组成了特征集合fa,对于3v2情况,有13个状态变量,32个tiling,则每个特征向量有13*32=416个片。基于此可以得到其中θ为主要的存储矢量。3.回报值设计keepaway可以看作分布式的有多个agent组成的以“情节”(episode)为单位的任务。早一段情节中,一个控球球员根据当前状态,选择一个执行动作,使球能够保持在一段较长时间不被对方球员抢中。控球球员其回报值设计如下:r=currenttime-lastactiontime式中,currenttime表示当前周期,lastactiontime表示上次执行学习动作的周期。控球球员对应动作的回报值不是立即得到的,而是在等待若干个周期后,直到从手工策略转到执行强化学习策略时,得到上次强化学习选择的动作的回报值。实验结果分析:在本发明中,为了分析强化学习sarsa(λ)算法在不同规模下的规模效果,类比对象是sarsa算法,实验对象采用标准3v2球员数量下不同场地大小与标准的20*20场地下不同球员数量的keepaway任务。首先,先在keepaway任务中选择3v2来测试sarsa算法与sarsa(λ)算法的性能,分别设置场地大小为15*15,20*20,25*25,编写程序记录下每次持球的起始周期数tstart,tend,起始周期数相减即可得到每次控球时长ti=tend-tstart,i=1,2,…,从而可以计算出平均控球时长,结果记录如表1所示。表1:3v2不同场地大小下keepaway平均控球时长实验结果15v1520v2025v25sarsa114127131sarsa(λ)145152178通过表1可得出,sarsa(λ)算法在球员控球上时间大大延长,这就可以增加智能体球员传球决策或射门动作的协作合作机会;并且场地变大,持球时间略微变长。然后,我们更换球员数量,来对比测试sarsa(λ)算法与sarsa算法的效果,场地大小都是20*20,其他参数不变。同样平均控球时长如表2所示。表2:20*20不同球员数量下keepaway平均控球时长实验结果3v24v35v4sarsa131135128sarsa(λ)156161159通过表2可得出,球员数量增加时,平均控球时长没有明显变化。但sarsa(λ)算法还是优于sarsa算法的。本方法主要介绍了仿真足球队的基于sarsa(λ)算法的控球策略应用,该算法也被实际应用于球队代码中,取得不错的防守效率。由于在比赛场上环境复杂不可控,所以在未来,选取状态变量需要更加细致的划分,希望智能体可以花更少的时间更快的学习。并且在截球球员上也应采用强化学习方法来学习,提高截球效率,从进攻防守上整体提高球队。以上所述仅是本发明的部分实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1