欢迎光临小豌豆知识网!
当前位置:首页 > 物理技术 > 调节控制> 基于深度强化学习中Actor-Critic框架的策略选择方法独创技术13199字

基于深度强化学习中Actor-Critic框架的策略选择方法

2020-11-30 19:04:44

基于深度强化学习中Actor-Critic框架的策略选择方法

  技术领域

  本发明属于强化学习技术领域,具体涉及一种基于深度强化学习中Actor-Critic框架的策略选择方法。

  背景技术

  强化学习代理通过接收表征环境的当前状态的观察结果,并且作为响应,执行预定动作集合中的动作来与该环境交互;一些强化学习代理使用神经网络来选择响应于接收到任何给定观察结果要执行的动作。

  在强化学习中Actor-Critic是一个常用的框架,其中Actor负责输出当前的执行动作,Critic负责估计当前动作的价值或当前状态的价值;通常会存在一个Actor和一个Critic,根据使用的强化学习算法同时更新两者的参数来训练出优秀的强化学习代理。

  同时训练多个策略的方法一般常见于集成学习和分层强化学习,集成学习是一类通过先学习出多个弱分类器,然后对弱分类器的结果进行集成的一种技术手段。目前集成学习在强化学习中的应用通常都是通过使用不同的模型和算法训练出不同的策略,然后再对这些策略做集成或选择的操作。如文献《Jiang,Ju,and M.S.Kamel."AggregationofReinforcement Learning Algorithms."IEEE International Joint Conference onNeural Network IEEE,2006.》与《Ju Jiang.A Framework for Aggregation of MultipleReinforcement Learning Algorithms[J].2007.》提出的多强化学习合成系统(AMRLS)就是通过各种不同算法训练多个策略,之后依据一定规则合成这些策略产生最终结果,但使用这种方式合成的策略只是不同策略的普通集成,并不能使得各种策略产生互补的作用。

  基于技能的分层强化学习,如公开号为CN111142522A的中国专利提出了一种分层强化学习的智能体控制方法,其特征在于使用两层或者多层控制方法,通常这几层方法的在不同时间尺度上控制强化学习代理的行为,通过与环境交互的经验,分别更新上下两层控制器,其中上层策略函数会选择一定时间内的下层策略,而下层策略则代表不同的技能。但在这种方式下,通常会先使用不同的简单任务训练不同的下层策略,这就需要定义额外的任务,增加了完整的训练过程的复杂程度。

  发明内容

  鉴于上述,本发明提出了一种基于深度强化学习中Actor-Critic框架的策略选择方法,该方法通过在Actor中同时保持多个策略,在强化学习训练过程中使用Critic中的动作状态价值函数估计策略的价值期望,根据期望实时地选择或集成其中的优势策略进行输出或更新,其目的在于提升训练速度,并使得在训练中生成有效的局部策略。

  一种基于深度强化学习中Actor-Critic框架的策略选择方法,包括如下步骤:

  (1)在Actor-Critic框架基础上,设定Critic来输出Agent(代理)对当前状态或者状态动作的行为价值函数,设定Actor来输出当前Agent的策略,并在Actor中设定多个策略;

  (2)在Actor输出策略时,使用Critic的行为价值函数对Actor中的不同策略进行评估,基于评估结果选择Actor中的某个策略作为输出或者某些策略合成为一个作为输出;

  (3)使Agent与环境交互以采集数据,利用数据采用基于Actor-Critic框架的强化学习算法对Actor与Critic的参数进行更新,在更新Actor的参数时,优先对优势策略进行更新。

  进一步地,所述步骤(1)中的策略和行为价值函数采用PID控制或深度神经网络表示;在使用深度神经网络表示不同的策略时,可使用相同结构的神经网络且使用不同参数初始化的神经网络,或使用不同结构的神经网络表示不同的策略;当系统的输入状态中包含图像时,如果Actor和Critic都使用神经网络表示,则Actor与Critic共享部分网络作为提取特征层,用来提取输入状态的特征,同时Actor中的不同策略也可共享部分网络作为抽象的特征提取器。

  进一步地,所述步骤(2)中根据Critic的行为价值函数定义一定的规则选择输出策略,具体可采用硬选择方式作为策略选择方案即使用行为价值函数对Actor中的不同策略进行评估后,令期望收益值最大的策略作为最终的策略输出,或采用软选择方式作为策略选择方案即使用Softmax函数对Actor中的不同策略进行评估后,使期望收益值的大小作为计算选择当前策略的概率,进而按该概率集成后的策略作为最终的策略输出。

  进一步地,所述步骤(3)中在更新Critic的参数时,根据每一次状态转移,使用Bootstrap的方式根据将t+1时刻的行为价值函数与t时刻的奖励相加,计算出t时刻的行为价值函数期望,进而使用t时刻的行为价值函数与其期望的平方误差作为损失函数更新Critic的参数,t为自然数。

  进一步地,所述步骤(3)中在更新Actor的参数时使用策略梯度的方式更新参数,具体可采用硬选择方式作为参数更新方案即只更新当前硬选择方式选中的策略参数,或采用软选择方式作为参数更新方案即以不同的学习率更新不同策略的参数,使用较大的学习率更新价值期望较高的策略,使用较小的学习率更新价值期望较低的策略。

  进一步地,在使用软选择软方式作为策略选择方案和参数更新方案时,可使用相同的参数作为策略选择的概率和策略参数的学习率;具体地,当以概率P选择某一策略时,在更新该策略参数时使用P作为学习率。

  进一步地,在使用神经网络作为策略的参数化表示方式时,则通过反向传播梯度更新包括所有策略参数在内的整个网络参数;具体地,当最终输出的策略为以概率Pi所选择的策略i时,可直接使用反向传播计算最终输出策略的策略梯度对于任一策略p中参数的梯度数值,其相当于直接使用策略i所计算得出的策略梯度的Pi倍。

  进一步地,使用近端策略优化(Proximal Policy Optimization,PPO)算法更新含有策略选择方案的Actor-Critic框架。

  基于上述技术方案,本发明策略选择方法具有以下有益技术效果:

  1.本发明可以更加容易地拟合策略函数;

  2.本发明可以更加有效地重用之前采集的样本;

  3.本发明可以有效限制策略更新前后KL散度;

  4.本发明可以增加策略函数在参数空间搜索的能力;

  5.本发明可以做一次有效的策略迭代。

  附图说明

  图1为本发明策略选择方法的流程示意图。

  图2为本发明方法中Actor策略参数更新示意图。

  具体实施方式

  为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。

  本实施例以针对LunarLander-v2任务的具体方案进行说明,LunarLander-v2的目标是模拟控制一个月球登陆器完成登陆任务,使其以接近0的速度着陆在规定的位置区域,输入状态s是8个连续变量代表登陆器的位置、速度、角度、角速度和触地状态,输出动作a为取值范围为集合A={1,2,3,4},A中的数字分别表示四种动作行为:1→什么都不做,2→点燃左转向引擎,3→点燃主引擎,4→点燃右转向引擎。如图1所示,整体技术方案可通过如下具体步骤实现:

  步骤1:使用参数为w神经网络表示Critic行为价值函数Qw(s,a),使用参数为(θ1,θ2,…θn)表示的神经网络表示n个策略,πi(a|s)表示在环境状态s时选择动作a的概率定义的Critic网络为[64,64,1]三层的全连接网络,定义的Actor网络为[64,16,4]三层全连接网络,其最后一层为动作层,输出的是采取四个不同动作的概率;其中Critic与Actor不共享网络层,Actor中保持四个不同策略,这些策略共享第一层网络,每个策略拥有属于自己的后两层网络。

  步骤2:在Actor网络的最后一个抽象层(即上述提到的有16个节点的这层)与动作层之间增加一层门结构,门结构通过评估在当前状态下不同策略的优劣来选择性激活四个策略的最佳策略,选择的方式是通过函数:

  

  计算出每个策略的价值期望Vi(s),其中Qw(s,a)为当前Critic中行为价值函数对当前状态s和动作a的价值估计,即Critic网络的输出,πi(a|s)为不同策略在当前状态s下选动作a的概率,即待选择的不同策略网络的输出。

  步骤3:通过硬选择策略选择当前价值期望值最高的策略i=argmaxVi(s),使得门结构激活当前评估的价值期望最大的策略网络,输出它的动作层,那么输出的行为策略就是

  步骤4:如图2所示,使用基于Actor-Critic框架的强化学习算法更新学习参数。

  步骤4-1:随机初始化Critic神经网络的参数w和Actor网络的参数(θshare,θ1,θ2,θ3,θ4),将之前建立的神经网络Q记为当前神经网络,令初始训练次数c=0,设置经验回放池M容量D=10000。

  步骤4-2:随机初始化神经网络Q的参数θ,将步骤4-1建立的神经网络Q记为当前神经网络,令初始训练次数c=0,设置经验回放池M容量D=10000,取样数量B=32。

  步骤4-3:在进入训练状态前,使得机器人在环境中以任意动作进行运动2000次,采集过程中{动作前的系统状态s、当前采取的动作a、当前获得的回报r、是否完结d、当前的系统状态s'},将这些动作经验存放至经验回放池。

  步骤4-4:在[0,1]范围内产生一个随机数α并进行判定:若α小于动作选取阈值ε,则机器人在设定动作集合A中随机选取一动作执行;否则,将机器人当前时刻状态s输入到当前神经网络中,Critic网络将输出当状态s下不同行为动作a对应的行为价值函数Qw(s,a)。门结构会根据步骤4-2和步骤4-3定义的网络结构自动选择当前价值期望Vi(s)最高的策略,而最终的网络会输出当前选择策略下选取不同动作的概率按照这个概率在动作中做出选择,作为当前机器人的动作a,并同样将这个过程中采集到的样本{s,a,r,d,s'}存放进经验回放池。

  步骤4-5:在经验回放池中随机选取B=32个经验样本。

  步骤4-6:通过以下关系式分别计算这些样本对应的训练目标值。

  

  步骤4-7:利用样本的行为价值函数估计与训练目标值的平方误差作为优化目标JC(w):

  

  计算其关于Critic参数w的梯度,直接使用梯度下降法对w的值进行更新。

  步骤4-8:利用样本的行为价值函数估计与输出策略的不同动作概率,计算策略梯度

  

  其中:αθ为学习率,这里同样使用梯度下降更新这些参数,因为在计算梯度时使用的是反向传播算法,因此在计算梯度时只有被选择激活的策略参数和共享参数会出现在求导路径上,所以上式中的θ只包括不同策略共享的网络层参数θshare和硬选择所选择的策略i的参数θi;当然也可以根据其他方式对所有参数做不同程度的更新,可以将上式中的替换成然后就可以对非选中策略更新。

  步骤5:训练完成,在使用阶段可以直接使用Critic估计的行为价值函数选择动作a=argmax(Q(s,a)),也可以使用Critic估计的行为价值函数先选择策略,其后根据选择的策略πi(a|s)再选择动作。

  除了本实施方式外还可以使用诸如Adam等优化器处理参数更新,这些解决方案符合本发明申请说明书的说明内容,在此不一一列举实现方式。

  在另一种情况下,如果原Actor是确定性策略a=μθ(s),即通过输入当前状态s,输出的是当前策略选择的动作a,那么策略也可以是使用参数(θ1,θ2,…θn)表示的确定性策略通过函数计算价值期望,其后通过使用softmax函数根据估计不同行为的价值期望按照软选择的方案计算出选择不同策略的概率:从而根据这个概率输出当前选择的策略;在更新的时候,同样可以使用这个概率有选择地更新不同的行为策略函数。

  上述的对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

《基于深度强化学习中Actor-Critic框架的策略选择方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)