畅 鑫,李艳斌,田 淼,陈苏逸,杜宇峰,赵 研
(1.中国电子科技集团公司 第五十四研究所,石家庄 050081;2.河北省电磁频谱认知与管控重点实验室,石家庄 050081;3.电子科技大学 信息与通信工程学院,成都 611731)
用数学方法寻找最优策略的研究既古老又新颖,最早可以追溯到20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。然后随着时代发展,这个领域逐渐出现了蒙特卡罗法、时序差分法等优秀的算法,解决了许多动态规划所不能解决的问题。在传统强化学习时代,最为杰出和经典的就是Q学习(Q-learning)算法。Q-learning采用表格记录状态-动作对价值,即Q值的方法探索最优策略,这也成为了后续深度强化学习算法中基于价值(value-based)分支的基石[1]。然而,在现实中的许多情况下,问题所包含的状态空间和动作空间都非常大,比如将一些连续状态离散化后形成的状态空间,这就使得借助表格存储Q值的方法难以为继。
幸运的是,随着计算机算力的飞速发展,在强化学习中引入深度学习来解决连续状态空间问题成为了可能。但人们很快就发现,使用神经网络这样的非线性函数逼近动作价值函数的强化学习算法都是不稳定甚至不收敛的。这就是所谓的“离线学习-函数逼近-自举检验”不可能三角(deadly triad issue),意思是强化学习无法同时使用这3种数学方法,否则将导致算法的不稳定甚至不收敛。造成这种情况的原因主要有3点:1)连续的状态之间的相关性;2)动作价值函数的微小变化可能导致策略的突变并显著地改变数据分布;3)动作价值函数与收敛目标之间的相关性。
2015年,Mnih及其同事提出的DQN通过采用经验回放(experience replay)和目标网络(target networks)技术解决了不稳定的问题,在2 600多个雅达利游戏上达到了人类玩家的水平,带来了深度强化学习的浪潮[2]。此后,对DQN的各种改进技术不断涌现。文献[3]提出了优先经验回放(prioritized experience replay),能让重要的经验被更频繁地利用,从而提升强化学习的效率。文献[4]于2016年提出的深度双Q网络(DDQN,double deep Q network),解决了过度估计的问题。同年,文献[5]向DQN加入了竞争结构(dueling architecture),提升了DQN的学习效率。这种带有竞争结构的DQN叫做竞争深度Q网络(Dueling DQN,dueling deep Q network)。除了上述提到的基于DQN的改进,深度强化学习领域还产生了更多的不同的技术路径[6-15]。
DQN及其衍生的强化学习算法已经能算得上是非常强大的算法了,在许多领域,如简单的2D游戏的表现都超出常人。然而,这种优秀表现往往只停留在人为指定规则的环境中,如大多数棋牌和游戏等领域。DQN在现实问题中仍然有着难以落地的问题。这是因为在过去的强化学习算法研究中,我们通常默认环境的状态我们是可以完全获取的。但是在现实世界中,我们显然没有棋牌和游戏中那样的上帝视角,我们对环境的状态的获取是通过观测(observation)得来的。而观测,或者说测量,必然会有信息误差甚至损失,从而使得无法通过观测获得完全的状态。这时,以马尔可夫决策过程为基本假设的DQN的性能自然就会受到较大的影响。
为了解决上述问题,文献[16]提出了DRQN,在DQN的基础上将其第一个全连接层改为了相同大小的LSTM层,解决了现实环境部分观测的问题。为了解决强化学习与反馈神经网络参数更新之间的矛盾,Matthew Hausknecht和Peter Stone又提出了序列自举更新和随机自举更新2种与之配套的参数更新方式。在部分观测的马尔科夫环境,DRQN相比DQN有着明显的提升。
然而,深度强化学习在状态空间维度大的环境中仍然面临着难以收敛的问题。考虑到大多数环境中的状态在时间上都具有一定的相关性,若能让神经网络学会提取时间维度上的特征,则有可能改善强化学习在时间相关场景的学习效率。区别于以上研究,本文在DRQN的基础上展开研究,探究在时间维度上引入一维卷积对强化学习性能的影响,并设计了仿真实验与DQN的性能进行对比。
现实中许多决策问题都可以通过建模成由5个参数(S,A,P,R,γ)描述的马尔可夫决策过程(MDP,markov decision process)来进行研究[1,17]。这5个参数分别为状态空间S、动作空间A、状态转移概率函数P、奖赏函数R和衰减因子γ,在马尔可夫决策过程中的每一个时刻t,智能体都会观察一个状态st∈S然后选择一个动作at∈A,这个过程将决定下一个时刻的状态st~P(st,at)并收到一个奖赏rt~R。
1992年由Watkins和Dayan提出的Q-learning通过在给定状态s下对动作a的长期回报进行预测来解决马尔可夫决策问题[1]。这样的长期动作回报叫做Q值。某个动作a的Q值越高,意味着在当前状态下选择该动作所获得的长期收益的期望越大。在Q-learning中,Q值通过下式迭代更新:
(1)
Q-learning伪代码。
输出:动作价值函数Q
对所有状态s∈S,a∈A(s),随机初始化Q,其中终止状态的动作价值为0
对每个回合:
初始化状态s
对回合中的每个时间步长:
使用基于Q的策略,如ε-贪心算法,选择状态s对应的动作a
执行动作a,观察到r,s
s←s′
直到状态s是终止状态
直到所有回合结束
许多现实问题的状态空间显然都是连续的,为了让强化学习在这些问题上得以运用,需要借助一种强大的函数拟合器代替Q-learning中的表格。而神经网络显然就是这样的强大函数拟合器。
(2)
输出:关于动作价值函数Q的神经网络初始化经验池D
初始化在线动作价值网络Q的参数θ为随机数
对每个回合:
初始化状态s1
对回合中的每个时间步长t:
根据ε-贪心算法选择动作
执行动作at,观测奖赏rt和下一个状态st+1
将经验(st,at,rt,st+1)存入经验池D
//经验回放
D随机采样一批次的经验(sj,aj,rj,sj+1)
反向传播[yj-Q(sj,aj;θ)]2,并用梯度下降法更新θ
//周期性更新目标网络
直到状态st是终止状态
直到所有回合结束
在现实的环境中,智能体往往很难获得完整的状态。换句话说,现实世界的环境通常不严格符合马尔可夫性[16]。部分可观测马尔可夫决策过程(POMDP,partially observable markov decision process)对观测与真实状态之间的联系进行了数学建模,因而能更好地描述现实环境的动态性[18]。POMDP在MDP的基础上引入了观测空间Ω与条件观测概率函数O,并将智能体对环境的一次感知定义为观测o∈Ω。观测与真实状态之间有着某种联系,这种联系通过概率描述,即o~O(s)。如此,POMDP就可以被6个参数(S,A,P,R,Ω,O)描述,分别表示状态空间、动作空间、状态转移概率函数、奖赏函数,以及相对于MDP新增加的观测空间Ω与条件观测概率函数O。显然,当观测o与状态s一一对应时,POMDP就变为了MDP。2017年Matthew Hausknecht和Peter Stone提出的DRQN对DQN的网络结构进行了修改,将其第一个全连接层改为了相同大小的LSTM层。
因为引入了记忆能力,使得神经网络能更好地对抗由于观测带来的信息不完整。DRQN的神经网络结构如图1所示。
图1 DRQN结构示意图[16]
本文在DQN的基础上构建了一个深度强化学习系统,如图2所示。
图2 深度强化学习系统示意图
与大多数强化学习系统一样,从宏观层面上看,本文所构建的系统同样为环境与智能体进行交互的闭环系统。在每个步长里,智能体需要从环境获取当前步长的状态和奖赏,并选择一个动作反作用到环境中。
具体到内部结构,智能体主要由4个部分组成,分别为经验池、在线动作价值网络、目标动作价值网络和神经网络优化器。在每个步长里,经验池会将这一步长的状态、动作、奖赏以及下一步长的状态组合成一条经验储存起来,并随机选择一个批次的经验供神经网络训练使用;在线动作价值网络会根据当前步长的状态选择一个动作;神经网络优化器会计算代价函数,并将其计算结果反向传播给在线动作价值网络,优化神经网络的参数。在设定好的参数复制周期到来之时,目标动作价值网络会复制在线动作价值网络的参数并更新自身的参数。
一维卷积循环网络的伪代码与DQN的伪代码形式基本一致,但因为包含了LSTM层,需要对经验回放部分进行修改,使其变为随机自举更新(bootstrapped random updates)[16]。下面为一维卷积循环网络的伪代码。
一维卷积循环网络伪代码。
输出:关于动作价值函数Q的神经网络初始化经验池D
初始化在线动作价值网络Q的参数θ为随机数
对每个回合:
初始化状态s1
对回合中的每个时间步长t:
根据ε-贪心算法选择动作
执行动作at,观测奖赏rt和下一状态st+1
将经验(st,at,rt,st+1)存入经验池D中本回合的位置
//经验回放
随机选取一个序列长度seq_len
从经验池D随机选取若干个回合的数据
从选取的回合数据中随机选取若干个时间点,并取出长度为seq_len的经验序列
反向传播[yj-Q(sj,aj;θ)]2,并用梯度下降法更新θ
//周期性更新目标网络
直到状态st是终止状态
直到所有回合结束
为了在图像作为输入的Atari游戏环境上进行测试,DQN与DRQN的神经网络都包含了二维卷积层。通常情况下,如果输入不为图像,而仅仅是特征向量,DQN与DRQN所使用的神经网络将不会包含卷积层。然而,卷积层的特征提取能力不仅可以应用于提取图像特征,也可以应用于提取时间维度上的特征[19]。因此,本文探究了将卷积层的时间维度特征提取能力应用于深度强化学习的可能性。
图2系统中的在线动作价值网络与目标动作价值网络结构如图3所示,在DRQN所用神经网络的基础上加入了一维卷积层,称为一维卷积循环神经网络。一维卷积层将在时间维度上对输入的数据进行卷积,并提取其在时间维度上的特征。实验表明这样做能提高神经网络的特征提取能力和拟合能力,从而提高智能体的决策水平,使得智能体在与时序相关的环境中有更好的表现。
图3 一维卷积循环神经网络示意图
为了解决深度强化学习在状态空间维度大的环境中的快速收敛问题,本文用到了一维卷积层来提取状态在时间维度上的特征。设输入为X∈RN×Cin×Lin,输出为Y∈RN×Cout×Lout,则一维卷积层的数学表达式为:
(3)
式(3)中,符号★为互相关运算,N为一个批次训练数据的大小,Cin和Cout分别为输入和输出数据的通道数,Lin和Lout分别为输入和输出数据的长度,kernel_size表示一维卷积核大小。α∈RCout×Cin×kernel_size为该层的一维卷积核,β∈RCout为该层的偏置项。
LSTM层是一种循环神经网络,能给神经网络带来记忆能力。一般地,LSTM层的输入为某一特征向量的时间序列x∈RN×Lin×Hin。为简单起见,假设一个批次只包含1条数据且该特征向量只包含1个特征,即x∈RLin。由此可知x=[x1,x2,…,xt,…,xLin]T,则对于x中的任意一个时刻的元素xt,LSTM层的数学表达式为:
(4)
式(4)中,符号⊙表示哈达玛积,N为一个批次训练数据的大小,Lin为时间序列在时间维度上的长度,Hin为时间数列包含的特征数。it、ft、gt和ot分别被称为t时刻的输入门(input gates)、遗忘门(forget gates)、元胞门(cell gates)和输出门(output gates)。ct和ht分别被称为t时刻的元胞状态(cell states)和隐藏状态(hidden states)。
全连接层是神经网络最经典的组成部件。按照经典的形式,设全连接层的输入为特征向量X∈RN×Hin,输出为Y∈RN×Hout,则全连接层的数学表达式为:
Y[i,:]=σ(X[i,:]A+b)
(5)
其中:σ为某一非线性激活函数,常用的有sigmoid函数和ReLU函数等。N为一个批次训练数据的大小,Hin和Hout分别为输入和输出数据的特征数。A∈RHin×Hout为该层的权重,b∈R1×Hout为该层的偏置项。
具体地,以在MountainCar-v0环境中时为例。在训练阶段,深度强化学习训练器会在每个训练步长从经验池提取一个批次的经验用于训练神经网络,一个批次包含512条训练数据;每条训练数据皆为时间序列,序列长度在每个训练步长开始前随机选择;序列中每个时刻都包含小车当时的位置和速度信息。训练数据首先会被视为通道数为2的一维向量输入进一维卷积层,用于提取时间维度上的特征;然后被视为特征数为2的时间序列输入进LSTM层,增强对数据时间相关性的利用;最后将训练数据展开为一维向量输入到全连接层得到最终对每个动作价值的估计。为了加快收敛速度,在每一层后还加入了批归一化处理(batch normalization)。神经网络的详细结构如图4所示。
图4 神经网络详细结构
在测试阶段,神经网络的输入为由当前时刻小车的位置和速度组成的状态信息,为特征数为2的一维向量,输出每个动作价值的估计。
为了验证本文所提出的在时间维度上引入一维卷积层的有效性,设计仿真实验在Open AI Gym提供的MountainCar-v0环境下测试其性能,并在使用相同超参数的情况下与DQN的性能进行对比。
在MountainCar-v0环境中,一辆小车处于两个山峰之间的一条一维轨道上,如图5所示。小车的目标是到达右边的山峰上,可是由于马力不足,小车必须学会积攒能量才能完成这一目标。
图5 MountainCar-v0环境示意图[20]
具体地,在MountainCar-v0环境中,神经网络输入的状态信息为小车的位置和速度,组成特征数为2的一维向量,输出的动作为小车的前进方向,共有向左、向右和空挡3种选择。
在测试中,学习率为0.01,衰减因子为0.9,探索度为0.1;目标网络更新周期为100,经验池大小为4 096,一个批次包含512条训练数据,即batch size=512,训练数据序列长度在1~32中随机选择。深度强化学习超参数总结如表1所示。
表1 深度强化学习超参数表
下面首先给出一维卷积循环神经网络获取的总奖赏随训练轮次的变化曲线。在MountainCar-v0环境中,奖赏设定为当前时刻小车所具有的能量,即小车动能与势能之和。在具体代码实现中,设pt和vt为当前时刻小车的位置和速度,则奖赏rt的定义如下:
rt=abs(pt+0.6)+10×abs(vt)
(6)
DQN与一维卷积循环神经网络在MountainCar-v0环境中获取总奖赏的表现如图6与图7所示。
图6 DQN的总奖赏随训练轮次的变化
图7 一维卷积循环神经网络的总奖赏随训练轮次的变化
图6与图7分别为DQN和一维卷积循环神经网络的总奖赏变化曲线。其中浅色部分表示原始数据,深色部分是平滑滤波后的结果。对比两者的总奖赏变化曲线,可以看出一维卷积循环神经网络相比DQN有着明显的提升。首先,在收敛过程中,一维卷积循环神经网络的总奖赏曲线斜率更大,上升速度更快,这说明一维卷积循环神经网络相比DQN有着更高的收敛效率;其次,更为突出的是,从最终达到的总奖赏来看,一维卷积循环神经网络学习到的策略所获取的总奖赏比DQN明显高出一部分,大约为10分。
图8与图9分别为DQN和一维卷积循环神经网络所作出动作选择的平均动作价值的变化曲线。其中浅色部分表示原始数据,深色部分是平滑滤波后的结果。
图9 一维卷积循环神经网络的平均动作价值随着训练轮次的变化
图8 DQN的平均动作价值随着训练轮次的变化
可以看出在平均动作价值收敛的稳定性上,一维卷积循环神经网络相比DQN有着明显的提升。通过观察图8和图9中浅色部分的原始数据可以发现,DQN的平均动作价值曲线波动较大,说明收敛过程不稳定;一维卷积循环神经网络的平均动作价值曲线波动较小,说明收敛过程相对稳定。
结合DQN和一维卷积循环神经网络的训练历史进行对比分析,不难发现一维卷积循环神经网络在最终结果还是收敛速度上都要优于DQN。这是因为LSTM层赋予了一维卷积循环神经网络记忆性,使其可以利用更多的历史信息来辅助决策,并削弱POMDP的影响,从而让一维卷积循环神经网络在时间相关的环境中最终获得的总奖赏超过DQN。同时,LSTM层之前的一维卷积层在训练的过程中在时间维度上进行特征提取,使得整个一维卷积循环神经网络相比DQN有着更快的收敛速度以及稳定性。故相比于DQN简单的全连接结构,一维卷积循环神经网络在状态空间维度大且状态之间在时间上相关的环境中有着更好的表现。
在使用深度强化学习解决现实问题时,许多问题所构造的环境都存在着状态空间维度大且状态之间在时间上相关的特征。如果能够利用好状态在时间上的相关性就可以有效提升神经网络在大维度状态空间中的收敛效率。就本文所提出的一维卷积循环神经网络来说,LSTM层的引入使得其拥有了一定的记忆能力,而一维卷积层的加入则让其在具备记忆能力的基础上有了更强的特征提取能力,进而可以更高效地处理时间维度上的信息。这使得改进后的算法能在MountainCar-v0这样与时序相关的环境中能够得到得到更高的总回报。同时,一维卷积层还增加了神经网络的拟合能力以及稳定性,使得深度强化学习的训练过程更加平稳。