技术领域
[0001] 本发明涉及深度强化学习领域,尤其涉及一种基于状态特征和后继特征的特征与策略的联合学习方法。
相关背景技术
[0002] 深度强化学习(Deep Reinforcement Learning)是一种基于深度网络的序列决策学习方法,它融合了深度学习和强化学习,实现了从状态到动作的端对端学习,并在不断的与环境交互的过程中实现策略增强。在高维复杂问题中,基于深度神经网络从感知信息中自动提取有效特征,并基于此进行策略学习并直接输出动作,即在策略学习中没有硬编码的过程。深度强化学习能够有效求解智能体(Agent)在高维复杂问题下的感知决策问题,是通用人工智能领域的前沿研究方向,具有广阔的应用前景。
[0003] 深度强化学习是Agent在不断的与环境的交互中获得样本,并通过样本进行有效信息的提取,从而训练深度策略网络的过程。显然的,算法的核心是如何从样本中有效的进行特征提取,然而在构建Agent网络时并未对特征的提取进行专门设计,提取效果仅仅依赖于网络的训练效果。由于强化学习是一个高动态非平稳的过程,通常需要海量的训练数据来进行网络训练。一方面低质的样本会影响网络的训练和收敛,另一方面网络的训练过程对样本的利用率不高;这些问题导致网络的训练成本大大增加。
具体实施方式
[0015] 下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0016] 本发明实施例提供一种,基于状态特征和后继特征的特征与策略的联合学习方法旨在解决传统深度强化学习中特征学习样本利用效率低的问题。
[0017] 本方案对强化学习公式展开分析,并结合深度网络设计策略学习方案。对于强化学习问题,Agent在与环境交互的过程中,实时接收状态s,产生动作a,并接收环境产生的即时奖励r,策略学习的目标是学习得到一个鲁棒的策略π,使得累积折扣奖励最大化。其中,γ为折扣因子,s0是初始状态,从当前时刻t=0开始计算在策略π下的期望累积折扣奖励。特别的,Q学习的学习目标是
[0018] v(s)=maxa Q(s,a)=maxa{r(s,a)+maxa'Q(δ(s,a),a')}
[0019] =maxa{r+maxa'Q(s',a')}
[0020] 其中,可以看到Q值是自举的,可以利用函数估计的方法进行迭代式的学习。
[0021] 本方案利用深度网络得到即时奖励函数r(s)=φT(s)w,其中φs=φ(s)是从当前状态提取的状态特征,w是预测权重;将即时奖励函数公式代入vπ(s)的计算公式,定义后继特征 分析得到价值函数
[0022] 本发明实施例主要进行特征与策略的联合学习,如图1所示,其主要包括:
[0023] 步骤1、通过学习从输入状态(输入是原始的游戏画面简单组合生成的状态,是rawpixel层次的输入,维度高)到即时奖励的映射,获得表征输入状态的状态特征。
[0024] 上述过程由卷积神经网络学习得到,网络的输入是高维输入,输出是即时奖励,网络学习到的是从高维输入到即时奖励的映射。网络主要由卷积层和最后一层全连层组成,由卷积层得到高维状态输入的状态特征,全连层的参数w即为预测权重。可以看到,状态特征是由网络自动抽取的,不是人工设计的。
[0025] 本步骤中,由状态特征到即时奖励的预测权重w代表了即时奖励函数在空间上的分布。一方面对状态有效信息的提取是整个网络架构的基础,另一方面对奖励在空间上的分布的学习有助于对环境的建模。是否学习到有效的状态特征对策略学习至关重要。
[0026] 另外,为提高样本利用效率,在学习过得状态特征的过程中加入辅助任务,即状态重构任务;状态重构对应于状态特征提取网络的全卷积结构,由反卷积网络构成。状态重构任务和即时奖励学习任务(即,从输入状态到即时奖励的映射。也就是说一个输入状态被用于两个网络分支)两者共享了底层卷积网络,即两个任务的训练都会同时改变底层卷积网络的参数,进而影响状态特征φs的学习。
[0027] 步骤2、通过学习从状态特征到价值评估函数的映射,获得后继特征。
[0028] 本发明实施例中,后继特征由前面的公式 确定,这里采用网络学习的方式得到,也是网络自动抽取,不是人工设计提取。
[0029] 本发明实施例中,后继特征至价值评估函数的预测权重w,和状态特征到即时奖励的预测权重w是一致的,将在训练时直接实现权重共享,一方面在公式分析层面保证了学到的后继特征的有效性,即r(s)=φT(s)w, 另一方面实现了状态特征和后继特征的联合训练。
[0030] 步骤3、获得的状态特征与后继特征处于不同的时间分辨率上,将状态特征与后继特征融合后,再采用多种多样方式的策略学习网络对融合结果进行学习。
[0031] 通过步骤1与步骤2学习得到状态特征和后继特征以后,学习两种特征的融合方法。根据前面的分析,可见两种特征是处在不同的时间分辨率但又有潜在联系的,这里主要通过对比两种不同的联合方法用于策略学习的效果,来探讨合适的特征利用方法。相应的,特征学习和策略学习是同步进行的,使得特征的提取与策略的学习能够相互加强。
[0032] 本发明实施例中,可以将状态特征和后继特征通过两种方式结合在一起测试两种不同的特征组合方式并比较其性能(选择性能较好的方法来结合状态特征和后继特征:一种是作为两类特征进行简单的拼接,一种是将后继特征看作是目标指向的,利用后继特征对状态特征进行调制或加权,融合之后再进行策略学习。此处主要是测试两种特征的结合方式,以确定实际使用时哪种结合方式更有效,后续的两种策略学习方案也是如此。实际上,本发明提出的方法区别与传统网络,将特征学习,策略学习模块化,既能实现联合学习,也能分模块测试性能。
[0033] 策略学习网络可以采用多种多样的方式,例如,可以为基于线性回归的策略学习或者基于LSTM的策略学习。即将融合后的特征放入特定的策略学习网络中,直接输出动作。Agent执行对应的动作后,获取新的状态等信息,进行新一轮的训练。
[0034] 本发明实施例上述方案中,状态特征和后继特征与Agent的学习相关,是针对奖励函数和价值评估函数设计的。这种做法一方面保证了在特征提取过程中没有传统的人工设计,能实现端对端的学习,另一方面特征提取更有针对性,提高了样本的利用效率。因而能够对样本进行快速准确的学习,有效的策略又激励了Agent对空间进行探索,学习效率进一步增强。
[0035] 本发明实施例上述方案的整体框架如图2所示,主要包括特征学习,策略学习和辅助任务学习三个步骤,主要的创新部分在特征学习及其利用。图2中,st是网络的高维感知输入;φs是提取的状态特征; 是提取的后继特征;R是即时奖励;v(s)是状态的价值评估。
[0036] 如图2所示,学习到状态特征和后继特征之后,将两个特征结合起来,进行策略学习。可选用任意策略学习方法,例如线性回归,基于LSTM的策略学习等。而策略学习和特征学习是基于相同的输入同时进行的,故称作基于状态特征和后继特征的特征与策略的联合学习。其中特征学习是利用端对端的网络学习(状态特征:状态到即时奖励,后继特征:状态到价值函数)自动抽取特征,通过共享预测权重w保证特征学习的有效性并实现两种特征的联合训练。
[0037] 对于训练来说,即时奖励是一个外部奖励,可能是稀疏的,不易学习的。状态特征φs会输入到辅助任务网络中,输出 那么,输出的 与实际的输入状态st之间的差距为Agent提供了一个内部的奖励,大大提升了特征的学习效率和一般性。
[0038] 网络的基本训练算法是基于随机梯度下降完成网络参数的更新,而算法的更新策略是基于A2C的强化学习框架进行算法增强。这都是由完整全面的规范的标准算法。
[0039] 为了便于理解,下面结合一示例来进行说明。
[0040] 本示例以OpenAI开源的A2C深度强化学习算法为基准算法,交互环境平台为OpenAI开源的Gym,使用的计算资源为1块GPU配合8个CPU线程。训练时在不同的游戏环境对不同的Agent,网络的初始化和算法的初始化参数都是一致的。
[0041] 首先搭建A2C算法在Gym平台的交互接口,设置样本的采集与网络的训练流程,这一部分属于通用设置。设置完成后,应能够同时实例化8不同个游戏环境,每个环境中有一个Agent与环境交互,获取状态,奖励等信息,A2C算法能够按照算法流程获取数据,完成训练,同步Agent。
[0042] A2C算法从接口处抓取信息,依照算法构造相应的高维感知输入st,提取对应的即时奖励R。注意到状态的价值信息本身就是一个估计值,将其作为监督信息进行训练,其值的获取是在训练过程中得到。
[0043] 设置对应的训练步长k,截取长度为k的训练片段进行一次训练。对于深度网络而言,需要设计对应的损失函数,指导网络的训练。结合本发明的网络架构,设计的损失函数如下:
[0044]
[0045] 即整体的损失函数由各个分支的损失函数加权得到,其中α、β、λ1、λ2、λ3为各项损失函数的加权系数,为人工设定的超参数。
[0046] 其中,(r)-rt2项代表了预测即时奖励和实际即时奖励之间的误差, 代表了重构状态与真实输入状态之间的误差,|W|p是防止网络拟合而加的正则项,是网络参数的范数。
[0047] Loss(critic)指的是价值估计分支的损失函数,定义vπ为该策略下真实的价值函数,为对其的估计值,
[0048] Loss(actor)指的是策略学习分支的损失函数,该分支的输出是动作空间上的概率分布P,定义 由预测动作概率分布的熵和其与实际选择执行动作的交叉式组成。这是策略学习的标准损失函数。
[0049] 首先,在这个长度为k的训练片段,我们可以获取每个时刻的输入,采取的动作,以及得到的即时奖励,缺少的是每个状态的价值。依据k-step回报来构造这k步中每一步对应的预测价值,具体的:
[0050] vπ(st)=r(st)+γvπ(st+1)
[0051] 预测时,首先预测最后一步的价值,然后按照这个公式逐步向前更新,得到每一步的预测价值。注意到,对于在某一时刻固定的策略π,其下一时刻的状态是可以确定的。
[0052] 具体的,
[0053] vπ(sk)=r(sk)+γvπ(sk+1)
[0054] vπ(sk-1)=r(sk-1)+γvπ(sk)
[0055] vπ(sk-2)=r(sk-2)+γvπ(sk-1)
[0056] 对于辅助的状态重构任务,将输入的高维感知st直接作为该分支的监督信息,即可进行训练。需要注意的是,从接口抓取的信息是经过处理后作为输入的。
[0057] 至此,得到了输入,即时奖励,预测价值,重构状态等信息,依据深度网络的训练规则和A2C的训练流程即可展开网络的训练,这里说的网络训练指的是标准的深度网络训练和强化学习算法训练流程,本发明实施例要保护的是所设计的网络架构,包括“状态特征学习、后继特征学习以及联合策略学习”这些部分。
[0058] 在即时奖励比较稀疏的环境中,训练过程中为保证网络结构不退化,后继特征的学习梯度在状态特征处不回传,即保证后继特征仅仅是基于状态特征学到的,而不是直接从输入中学到了一个特征。而辅助任务也帮助了状态特征的学习。
[0059] 得到的状态特征和后继特征处于不同的时间分辨率上,可以通过两种方式结合在一起:一种是作为两类特征进行简单的拼接,一种是将后继特征看作是目标指向的,利用后继特征对状态特征进行调制或加权,融合之后在进行策略学习。
[0060] 策略学习可以采用多种多样的方式,本示例中测试了基于线性回归的策略学习或者基于LSTM的策略学习。即将组合的特征放入特定的策略学习网络中,直接输出动作。Agent执行对应的动作后,获取新的状态等信息,进行新一轮的训练。网络训练是每次一段抓取一段信息,进行一次训练,得到新的信息后,在进行一次训练。这些信息由输入状态,执行动作,新的状态,获取的奖励等组成,是该架构训练时不可或缺的。状态特征学习、后继特征学习与联合策略学习的过程是在不断进行的,直至最终获取良好的策略(在实际任务中取得较高的成绩,较好的性能)为止。
[0061] 另一方面,为了说明本发明实施例上述方案的性能还进行了对比试验。如图3(a)~图3(b)所示,A2C和A2C/LSTM是使用基准的A2C算法实现的网络,在Breakout游戏上的训练效果。横轴时训练样本数量,纵轴是每个回合获得的分数。图3a~图3b中,/LR、/LSTM是指策略学习时基于逻辑斯特回归的策略学习、基于LSTM的策略学习。A2C是标准算法,DSSF是本发明提出的算法架构。如前文所述,本发明尝试了两种特征的结合方法,一种是简单拼接,一种是加权融合(用/F标注)。
[0062] 从图3(a)~图3(b)中可以明显看到改进的算法(即应用本发明框架设计的agent算法)比基准算法的收敛速度快,开始进行性能提升需要的训练时间也更短。最终,算法能达到一个较高的稳定性能。
[0063] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0064] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。