基于动态延迟策略更新的TD3算法

2020-09-01 01:55:48康朝海荣垂霆刘鹏云
吉林大学学报(信息科学版) 2020年4期
关键词:步长梯度神经网络

康朝海, 孙 超, 荣垂霆, 刘鹏云

(东北石油大学 电气信息工程学院, 黑龙江 大庆 163318)

0 引 言

强化学习(RL: Reinforcement Learning)通过最大化智能体(Agent)与环境(Environment)交互获得的奖励值(Reward)学习最优控制策略(Policy)[1-2]。深度神经网络(DNN: Deep Neural Network)利用其强大的非线性拟合能力可对复杂信号进行特征提取[3]。将强化学习的控制决策功能与深度神经网络的感知功能相结合产生的深度强化学习算法(DRL: Deep Reinforcement Learning)能在不事先了解被控制系统的情况下学习复杂的非线性控制策略, 其已经成功应用到竞技游戏[4]、 自动驾驶[5-6]和机器人控制[7]等人工智能领域。

深度强化学习不仅应用深度神经网络做复杂环境的特征提取工作, 而且由于神经网络可解决强化学习状态维度和动作维度过高的问题, 所以在实际任务中, 也将其应用到强化学习的值函数及策略函数的拟合任务中[8]。深度强化学习中的经典算法----深度Q学习算法(DQN: Deep Q-Network)[9-10]及行动者-评论家算法(AC: Actor-Critic)[11-12]即是应用神经网络拟合值函数及策略函数的典型例子。但是, 由于Q-learning的值估计中存在不可避免的噪声, 因此神经网络在拟合值函数的过程中, 会出现价值过高估计的现象, 从而导致算法获得较差的策略[13]。针对这一现象, Fox等[14]通过减小早期高方差估计的过度拟合降低Q值过估计。Hasselt等[15]提出Double Q-learning方法, 通过对动作的选择和评价进行解耦以达到降低过估计的效果。但上述解决过估计的方法都是针对离散动作空间任务的。针对连续动作空间任务中的价值过估计现象, Fujimoto等[16]提出的TD3算法通过双Q值网络机构及延迟更新Actor目标网络减小由于价值过估计而导致的策略恶化, 并且在TD3中其采用固定延迟步长的更新机制, 没有考虑价值估计的动态性, 从而导致策略学习效率降低。

针对连续动作空间中出现的价值过估计而导致策略恶化的问题, 结合TD3中的延迟更新方法, 笔者提出一种动态步长的延迟更新机制, 通过累计价值网络Loss的指数加权移动平均值(EWMA: Exponentially Weighted Moving Average), 并将其设置为动态延迟步长的更新标准, 指导Actor网络延迟更新。经实验验证, 笔者提出的基于动态步长延迟更新的TD3算法具有更好的学习性能。

1 双延迟深度确定性梯度策略

1.1 强化学习基础

状态-动作值函数Qπ是智能体在状态s下采取由策略π生成动作a后获得的奖励值的期望

Qπ(s,a)=Eπ[Rt|s,a]

(1)

将式(1)表示成递归的贝尔曼方程形式

Qπ(s,a)=Eπ[Rt+γQπ(s′,a′)|s,a]

(2)

针对规模比较小的任务, 传统的强化学习算法如Q-learning[17], Sarsa[18], 可通过迭代贝尔曼方程最大化值函数以获取最优策略

(3)

为解决状态数量多或连续状态的强化学习问题, 需采用比较复杂的函数逼近器拟合值函数。深度Q学习算法(DQN)是深度强化学习中的经典算法, 它采用神经网络拟合状态-动作值函数, 并通过梯度下降法寻找最优价值函数网络。基于求解值函数的强化学习算法不能有效解决连续高维动作空间的强化学习任务, 而策略梯度算法提供了解决方法。

1.2 深度确定性策略梯度算法

策略梯度方法重新定义了期望收益最大化的目标, 通过直接最小化策略目标函数获取最优策略

(4)

其中pπ为依据策略π(a|s), 智能体在状态S时输出动作a的概率,θ为利用逼近器(如神经网络)拟合策略π时的参数。

深度确定性策略梯度算法(DDPG: Deep Deterministic Policy Gradient)[19]利用确定性策略大幅减少了算法训练所需的采样数据, 显著提高了算法的收敛效率。确定性策略表示为

a=μθ(s)

(5)

其中μθ(s)表示参数为θ的神经网络, 输入为状态信息s, 输出为确定动作a, 相当于策略更新网络(Actor网络)。对应的策略梯度为

J(μθ)=Es~pπ[θμθ(s)·aQμθ(s,a)|a=μθ(s)]

(6)

其中Qμθ(s,a)表示依据确定性策略μθ(s), 在状态s下采取动作a的状态-动作值函数。它评价了在该状态下做出动作的价值, 用参数为θ的神经网络拟合。由于它控制了策略梯度更新的方向和幅度, 相当于价值估计网络(Critic网络)。

1.3 双延迟深度确定性梯度策略算法

双延迟深度确定新策略梯度算法(TD3: Twin Delayed Deep Deterministic Policy Gradients)是DDPG算法的升级版本。为降低Critic网络的过估计, TD3由两个独立的评论家网络(Critic-1和Critic-2)拟合智能体的行为价值函数Q:S×A→i, 并选择值最小的Critic网络。

智能体在训练过程中, 每行动一步就会产生经验信息(st,at,rt,st+1), 即当前状态、 动作、 奖励值和下一步状态。并且以元组形式保存到经验回放体Replay Buffer中。Actor网络和Critic网络通过从Buffer中随机抽取的Mini-Batch的数据进行参数更新。Critic网络通过最小化损失函数Li训练网络

(7)

在Actor网络的Bellman更新中, 使用目标策略平滑化的正则化技术减小确定性策略方法在更新Actor时产生高方差目标值的现象。Actor网络更新梯度

(8)

在AC架构的TD3算法中, 目标网络机制存在不可避免的问题, 即Actor网络和Critic网络的相互作用会导致算法不收敛。针对该问题, 在网络更新过程中, 为降低算法中Critic网络的过估计而导致的策略恶化问题, 设置Actor网络采用延迟更新机制: 其中Critic网络是在每个时间步之后更新一次, Actor网络每两个时间步更新一次。图1为Actor网络和Critic网络从环境中获取状态信息, 并且相互之间网络更新存在延迟的示意图。

图1 延迟更新Fig.1 Delayed policy update

2 基于动态延迟策略更新的双延迟深度确定性梯度策略

虽然在TD3算法中利用延迟更新Actor网络改善策略更新效果, 但延迟步长是固定的, 这并不能根据Critic网络估计效果的动态情况合理设置延迟。笔者提出的动态延迟更新将累计的价值网络Loss的指数加权移动平均值(EWMA)作为动态延迟步长的更新标准, 从而指导Actor网络延迟更新的机制。

2.1 指数移动加权平均值

指数加权移动平均法(EWMA)[22]是当前众多领域, 如金融时间序列、 信号处理及神经网络等采用的重要算法之一。实际上, 深度学习中的Adam优化算法就应用了EWMA。此算法的主要作用是减少嘈杂数据中的噪声, 平滑数据。EWMA相对于传统的平均值, 不需保存过去所有的数值, 计算量显著减小。EWMA的表达式为

vt=βvt-1+(1-β)ρt

(9)

其中ρt为时刻t的实际值; 系数β为加权下降速率, 其值越小则下降越快;vt为t时刻的EWMA值。

2.2 DD-TD3算法

在TD3中, 由于时间差异更新机制, 值函数的估计是根据后续状态的估计建立的, 并且Bellman方程决定了TD误差会逐步累加, 从而导致可能存在大量高估偏差和次优策略更新[16]。在利用函数逼近器表示值函数时会加剧这种现象, 并且每次函数更新都会留下一定量的残余TD错误δ(s,a)

Qθ(s,a)=r+γE[Qθ(s′,a′)]-δ(s,a)

(10)

则通过

Fujimoto等[16]深入研究了目标网络机制与函数逼近误差之间的关系, 并验证了使用稳定目标可减少误差的增长。如果没有固定目标, 每次价值估计更新都可能留下残余误差, 并逐步累积。设定类似目标网络机制的延迟更新机制, 减小价值网络更新的方差, 通过减缓Critic网络的更新频率, 以获得准确的价值估计, 从而提高优质策略的更新次数, 提升策略收敛速度。

在DD-TD3中, 采用网络Loss的移动平均值与网络当前Loss值的差异评价Critic网络的预计更新幅度, 一旦Critic网络下次大幅度更新, 则说明这时的网络价值估计是次优的, 则设置Actor网络更多步数的策略延迟更新以等待更优的价值估计。但如果过多延迟更新Actor网络, 则会有更高概率错过优质的价值估计, 无法及时更新网络参数。

根据式(7)中Li与式(9)计算得到在T时刻Critic网络Loss的移动平均值(EWMA-Loss,ET)

(12)

并通过

(13)

估算Critic网络的计划更新幅度。

延迟更新公式表示为

(14)

其中ω为线性系数, 调整f主要分布在区间(1,5)。实验证明ω=30时算法效果达到最佳。

算法结构如图2所示。

图2 DD-TD3算法Fig.2 DD-TD3algorithm

由图2可见, DD-TD3共有5个神经网络, 分为两类: 策略更新网络(Actor)和价值评价网络(Critic), 并且这两类网络皆适用目标网络机制稳定其更新。其中在计算目标价值网络(Target-Critic)时, 使用两个独立的神经网络计算并取最小值。Actor网络在与环境交互时通过加入噪声提高其探索性能。网络更新所需数据是在经验回放体中用随机小批量采样得到的。

DD-TD3算法步骤如下。

fort=1 toTdo

选择动作a~πφ(s)+, 其中~N(0,σ);

执行动作a, 获得立即奖励r和下一状态s′;

将经验样本(s,a,r,s′)存入经验缓冲体B中;

在经验缓冲体B中随机小批量采样经验样本;

iftmodd==0 then

通过确定性策略梯度更新Actor网络参数

φJ(φ)=N-1∑aQθ1(s,a)|a=πφ(s)φπφ(s)

更新目标网络

end if

end for

此算法中, 第1步为初始化各参数的过程, 第2~第5步为产生经验样本的过程, 第6~第9步为更新Critic网络的过程, 第10~第11步为延迟更新Actor网络的过程, 第12步为更新目标网络的过程。

3 实 验

3.1 环境配置

笔者采用OpenAI开发的Gym作为实践环境, Gym是一个用于研究和比较强化学习算法的开源工具包, 包含了各种训练和研究新的强化学习算法的模拟环境。笔者在Windows10系统下, 使用Pycharm2019 IDE搭载Anaconda3的Python 3.7编译环境, 并且使用效果优异的Pytorch 1.3.0深度学习框架搭建神经网络。

3.2 实验任务

为验证DD-TD3的有效性, 在OpenAI Gym工具包中的Pendulum-v0(钟摆)环境下进行实验测试。Pendulum-v0是经典的连续动作域的强化学习任务, 钟摆以随机位置开始, 然后利用电机的控制力矩将其向上摆动, 通过旋转摆动使其保持垂直并指向上方。观测值分别为摆钟角度的正弦及余弦值和钟摆的角速度; 动作值为(-2,2)的连续值, 表示对钟摆施加的左右力的大小。

图3为Pendulum-v0任务的示意图。

图3 钟摆示意图Fig.3 Pendulum-v0 diagrammatic sketch

观测结果如表1和表2所示。由表1可见, 智能体的观测值(Observation), 即环境的状态空间(State)为3维连续值, 动作空间(Action)为1维的连续值。

表2 动作值

表1 观测值和状态值

任务奖励函数(Reward)的精确等式为

(15)

其中α为钟摆与竖直方向的角度,αdt为钟摆的角速度,a为输入力矩。由式(15)可见, 奖励的最高值为0。任务目标是保持钟摆零角度(垂直), 并且旋转速度最小, 同时电机的控制力度最小。

3.3 实验参数设置

为保证实验对比的公平性, 实验中DD-TD3算法、 TD3算法及DDPG算法参数相同。对Actor网络均添加使用经过裁剪的高斯噪声, 裁剪范围为(-0.5,0.5), 每批次样本数量均相等。神经网络采用全连接层, Actor网络输入为状态, 维度为3, 隐藏层1为64, 隐藏层2为32。Critic-a网络和Critic-b网络的结构相同, 输入为状态和动作, 维度为4, 隐藏层1为64, 隐藏层2为32。梯度下降优化算法为Adam优化器。经验缓冲池大小设置为10 000, 取批次选取样本数量N=50。每情节最大时间步数设置为500, 时间步数超过500时情节重新开始。学习率α=3×10-4, 折扣因子γ=0.99, 目标网络更新时τ=0.001, EWMA计算公式的参数β=0.3。

3.4 实验结果及分析

强化学习属于机器学习中的无监督学习算法, 评判算法的性能指标不同于其他监督学习算法。在强化学习中, 通常应用随训练时间变化的奖励值评判算法的优劣。奖励值的收敛速度体现了算法是否能快速寻找到固定策略, 而奖励值的大小表现了算法是否收敛到最优策略。

图4展示了在Pendulum-v0任务中DD-TD3算法与其他算法的效果对比。通过对比每个训练阶段的平均累计奖励衡量算法的优劣。

由图4a可见, 由于A2C算法没有目标网络机制和Replay-buffer机制, 而且由于Critic网络存在一定程度的过估计, 使A2C很难学习到优质的策略, 在3 000步时奖励值才有明显的上升。

a 延迟步长分布情况 b 延迟步长频率统计图5 Actor网络延迟步长Fig.5 The delay step of Actor network

a A2C与DD-TD3 b DDPG与DD-TD3 c TD3与DD-TD3 图4 实验效果对比图 Fig.4 Comparison of experimental results

由图4b可见, 虽然DDPG算法后期奖励值与DD-TD3基本持平, 但由于DDPG存在的价值过估计导致算法前期的奖励值表现非常差, 因此算法学习到最优策略的效率很低。

由图4c可见, 原始TD3算法的奖励值在2 000步后, 才逐渐趋向最高奖励值。也就是说, 前期原始TD3算法并不能高效地对状态进行正确的评估。DD-TD3算法在前期收敛速度明显高于原始TD3算法, 并且在1 000步左右快速到达最高平均奖励, 而且奖励值平稳起伏, 没有较多的震荡现象。由于存在动态延迟更新机制, DD-TD3算法在前期能根据更优质的价值估计有效的更新Actor网络, 从而依据此Actor网络产生更有效的训练数据作为Critic网络的输入优化网络参数。上述实验结果表明, DD-TD3算法可更快地学习到最优策略。

表3为Pendulum-v0任务中实验数据统计。从表3可见, 与A2C、TD3及DDPG算法相比, DD-TD3算法可获得更高的平均奖励值和最高的奖励值, 说明在此任务中, DD-TD3算法可以学习到更优策略。在算法训练的不同阶段, 由于存在对环境的探索操作, 所以存在不同程度的奖励值差异, 因此存在一定的奖励值方差。

表3 Pendulum-v0任务中实验数据统计

图5展示了训练过程中Actor网络的动态延迟次数。由图5可见, 在训练前期, 由于智能体与环境的交互次数较少, 值函数的价值估计迭代尚不充分, 相应的神经网络的参数尚不成熟, 则前期次优的Critic网络价值导致Actor网络延迟步长主要集中在5。

4 结 语

笔者提出的DD-TD3通过动态调整Actor网络的延迟步长, 能有效解决TD3算法由于Critic过估计导致的策略恶化问题, 提高了策略学习效率。通过Gym平台下连续动作任务Pendulum-v0验证了算法有效性。此改进属于对强化学习任务下的神经网络更新的优化, 具有很强的通用性及应用价值, 有望在以强化学习为模型的自动驾驶、 工业控制等领域发挥作用。但该算法在Buffer中使用均匀采样提取数据进行训练, 没有考虑Buffer中经验值优劣的问题。因此, 使用分类经验的非均匀采样训练将是下一步的重点研究方向。

猜你喜欢
步长梯度神经网络
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
一个改进的WYL型三项共轭梯度法
一种自适应Dai-Liao共轭梯度法
应用数学(2020年2期)2020-06-24 06:02:50
神经网络抑制无线通信干扰探究
电子制作(2019年19期)2019-11-23 08:42:00
一类扭积形式的梯度近Ricci孤立子
基于神经网络的拉矫机控制模型建立
重型机械(2016年1期)2016-03-01 03:42:04
复数神经网络在基于WiFi的室内LBS应用
基于逐维改进的自适应步长布谷鸟搜索算法
基于支持向量机回归和RBF神经网络的PID整定
一种新型光伏系统MPPT变步长滞环比较P&O法
电测与仪表(2014年2期)2014-04-04 09:04:00