基于改进TD3 的自动驾驶车道保持决策方法
2022-02-03张宏昌吴迎年范玲玲
田 康 ,于 镝 ,李 擎 ,张宏昌 ,吴迎年 ,范玲玲
(1.北京信息科技大学 自动化学院,北京 100192;2.清华大学 自动化学院,北京 100084)
近年来,随着人工智能、大数据和物联网技术的迅速发展,自动驾驶已逐渐成为未来智能交通系统最重要的组成部分.自动驾驶系统一般由感知模块、决策模块、规划模块和控制模块组成.决策模块作为整个系统的核心,它根据感知模块提供的环境信息做出相应的控制指令.车道保持是自动驾驶系统需具备的基本功能,研究和实现该功能是发展自动驾驶技术的首要条件.
目前,车道保持的解决方案一般分为基于规则的方法和基于学习的方法.基于规则的方法通常是结合线性二次调节器、模糊逻辑和模型预测控制等建立规则库,自动驾驶车辆根据所处的场景且依据已有规则选择合适的驾驶策略.但面对复杂且不确定的驾驶路况时,采用基于规则的方法进行建模较为繁琐,且难以建立高质量的驾驶规则.深度强化学习方法通过与环境不断的交互,以连续试错和反馈学习的方式来获得最佳策略.其具备深度学习的感知能力和强化学习的决策能力,可以在高维的状态-行为空间下进行端到端的感知决策.譬如,基于深度Q 网络(Deep Q-Networks,DQN)算法,Wang 等[1]设计和评估了面向舒适性的触觉引导转向系统,并通过数值模拟实现了车道保持任务.基于确定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法,王庭晗等[2]提出基于输入状态分布筛选的随机策略和经验回放方法,提高了自动驾驶策略在新路况下的车道保持能力.DDPG 因存在值函数过估计问题而导致算法不稳定,李志航[3]采用双延迟深度确定性策略梯度(Twin Delayed Deep Deterministic Policy Gradient,TD3)算法[4],用于训练自主车辆实现车道保持功能.孙超[5]在TD3 算法基础上,提出了动态延迟策略更新方法和强调优秀经验方法来加快算法的收敛速度.
视觉图像感知信息可帮助获取深层次特征,从而助力算法实现端到端的决策.Jaritz等[6]仅使用驾驶车辆的正前方图像,通过异步优势动作评价算法控制车辆在各种道路结构中完成驾驶任务.Gustavo 等[7]将深度强化学习算法和线性二次调节器相结合,提出了基于视觉图像信息的自主车辆横向控制决策方案,仿真结果表明所提方法的跟踪性能和平滑性得到改善.通过关注图像中的重要信息而忽略不相关信息,注意力机制[8-9]不仅减少模型训练的计算量,而且一定程度上提高了模型的可解释性.Kim 等[10]使用注意力机制解释驾驶行为,并采用图像高亮区域表明网络模型对转向决策输出的因果影响.Woo等[11]提出了卷积注意模块(Convolutional Block Attention Module,CBAM),结合通道注意力和空间注意力进行特征细化,提高了卷积神经网络的表征能力.
奖励函数对算法的整体性能起到重要的作用.Wu 等[12]提出一种基于道路交叉口模型的奖励函数,减少了车辆的紧急刹车次数且加快了算法学习速度.Yang 等[13]提出嵌入舒适度的奖励函数,从而提高了车辆转向的平滑度且改善了乘车体验感.根据驾驶表现,朱向阳[14]提出了考虑车道保持安全性的奖励函数,期望车辆沿着道路中心轴驾驶且车辆速度最大化.针对城市驾驶环境,Deshpande 等[15]提出了考虑安全性的奖励函数,避免车辆在驾驶过程中发生碰撞,并在限定速度范围内尽快地行驶.
在算法训练过程中,通过优化算法的采样方式可以提高样本利用率.Lin[16]首先提出经验回放(Experience Replay,ER)技术,解决了学习遗忘的问题.Mnih 等[17]通过在DQN 算法中引入ER 技术,增强了神经网络训练的稳定性.然而ER 技术随机抽取样本而忽视了样本间的差异性,从而导致样本利用率偏低.进而,Schaul 等[18]提出优先级经验回放(Prioritized Experience Replay,PER)方法,根据样本的时序差分误差作为优先级指标,较大概率抽取优先级较高的样本以提高样本利用率.张斌等[19]进一步提出了失败经验纠错方法来克服PER 计算复杂度较高的局限.Cao 等[20]提出高价值优先级经验回放方法,根据样本价值和时序差分误差对样本进行优先级排序,实验结果表明高奖励的样本有助于算法收敛.
上述成果从强化学习算法的感知能力、奖励函数设计以及训练样本利用率等方面展开研究.但在如何提炼更加细致的视觉特征信息且融合具体的车辆运动学信息,从而提升算法的感知能力;如何综合考虑车道保持驾驶任务的安全性、舒适性和驾驶效率,从而实现更加类人驾驶;如何区分成功驾驶样本和失败驾驶样本,并按照优先级进行经验回放,从而提升样本利用率等方面均亟需展开进一步的研究.由此,本文提出一种多数据融合的TD3 方法(Multi-Data Fusion TD3,MDFTD3),该方法融合了汽车运动学信息和视觉图像信息,以此提升算法感知能力.且引入了CBAM 注意力模块以关注视觉图像信息中对智能体训练重要的道路信息.设计用于车道保持的指导型奖励函数(Guided Reward Function,GRF).设计奖励函数时,在保障驾驶安全的前提下,兼顾乘车舒适感和行驶效率.采用分类与高价值优先级经验回放方法(Classification and High-Value Prioritized Experience Replay,C-HVPER),该方法包括样本分类和基于样本价值的优先级回放,从而提高样本利用率.
1 深度强化学习理论部分
强化学习是机器学习的一个重要分支,它能有效解决序贯决策问题.强化学习方法通过试错学习的方式与环境进行交互,旨在获得最大化奖励的行为.强化学习方法通常用一个马尔可夫决策过程(Markov Decision Process,MDP)描 述.MDP 通 常由五元组<S,A,P,R,γ>定义,状态空间S表示环境的有限状态集合;行为空间A表示所能采取的有限行为集合;P表示将某一状态-动作对映射到可能的后继状态的概率分布;奖励函数R表示根据当前状态采取某一行为所获得的立即奖励;γ是折扣因子,表示对立即奖励和长期回报之间的重视程度.
DDPG 算法因值函数过估计问题而导致算法不稳定,而TD3 算法[4]有效克服了这种现象.TD3 算法的训练流程图如图1 所示.由式(1)计算时序差分目标值yt.
图1 TD3 算法训练流程图Fig.1 The training flow chart of TD3 algorithm
式中:噪音ε是从均值为0,标准差为σ的正态分布中截取的随机噪音,取值范围为(-c,c).
根据损失函数L,利用梯度下降法求得在线评价网络1 和在线评价网络2 的参数θ1和θ2的更新梯度为
再根据确定性策略梯度定理,求得在线执行网络的参数φ的更新梯度为
最后,目标执行网络、目标评价网络1 和目标评价网络2 的参数均采用软更新方式.
2 自动驾驶车道保持决策方法
本文提出的基于改进TD3 的车道保持决策流程框架如图2 所示.整个框架包括服务器和客户端两部分.服务器用于控制车辆虚拟物理结构,属于外部环境模块;客户端是内置的基于改进TD3 的自动驾驶车道保持决策方法,实现对控制车辆的各项操作.决策方法包含5 个模块,分别为输入模块、神经网络模块、奖励函数模块、经验池模块、输出模块.
图2 车道保持决策流程框架Fig.2 The framework of lane keeping decision-making process
外部环境模块中,由TORCS 提供道路场景、传感器和自动驾驶车辆,服务器与客户端以UDP 通信方式传输当前车辆的环境信息或操作指令.输入模块包含当前自主车辆运动学数据信息与正前方的图像信息,这些数据以当前状态来表征,经过归一化和类型变换操作之后,传给神经网络模块;神经网络模块接收该数据,结合多个全连接层、CNN 模块和CBAM 模块进行特征学习与决策,输出操作指令at.输出模块得到操作指令后,通过UDP 发送给服务器.经过相应的数据转换,由车辆执行器完成驾驶操作;同时,服务器将后继的环境信息与车辆的驾驶信息当作后继状态,传输至客户端的输入模块,奖励函数模块根据当前的驾驶状况,反馈相应的奖励值;并把当前状态、操作指令、奖励值和后继状态打包为一个样本,存储至经验池模块;当经验池模块中的样本数达到一定数量后,通过批量更新抽取样本,不断对神经网络进行迭代训练,旨在获取最佳的驾驶策略.
2.1 MDFTD3
TD3 算法仅依据自主车辆运动学数据信息进行决策,为了提升算法的感知能力,本文提出了融合感知自主车辆运动学数据信息和视觉信息的MDFTD3 算法,进而增强决策的有效性.在MDFTD3 算法中,执行网络用于驾驶策略的学习,评价网络1 和评价网络2 用于驾驶策略的评估.其中评价网络结构如图3 所示.相较于TD3 算法,虚线框代表融合的视觉信息感知部分.对低维的自主车辆运动学数据信息以及决策动作信息,分别采用全连接层来获取相应的特征向量;对高维的图像信息,设计4 个卷积层和3 个池化层进行局部感知和特征降维,并将得到的特征图进行整平操作.通过拼接操作融合三个特征流,经全连接层输出值函数.执行网络相较于评价网络的输入减少了决策动作信息,其余结构相似.
图3 MDFTD3 的评价网络结构Fig.3 The critic network structure of MDFTD3
2.2 CBAM
CBAM[11]是轻量级的通用模块,其示意图如图4 所示.由通道注意力模块和空间注意力模块组成,分别在通道和空间维度上学习所关注的特征内容及来源,从而实现特征细化.本文将CBAM 模块加入到执行网络中,重点关注视觉图像中与车道保持任务相关的信息来提高算法性能.
图4 CBAMFig.4 CBAM
2.3 GRF
奖励函数对自主车辆是否能够获得最优策略起到决定性的作用.因此,在文献[14-15]的基础上,本文综合考虑驾驶的安全性、舒适性和效率性三方面设计奖励函数,并通过设计不同的权重系数来衡量各方面的重要性.
1) 安全性.
式(4)鼓励自主车辆沿着道路的中心线驾驶,给予这种行为正奖励.当车辆发生位置偏移时,则给予负奖励.
式中:k1为权重系数;θ为车辆前进方向与道路中心轴的夹角;d为车辆中心位置到道路中心轴的距离.
2) 舒适性.
式(5)考虑了车辆的横向运动与纵向运动,允许一定范围内的转向和加速操作.但若突然大范围转向或急速加速则给予惩罚,以指导自主车辆学习具有舒适感的驾驶策略.
式中:k2为权重系数;a为横向加速度.
3) 效率性.
为了提高自主车辆的行驶效率,设计奖励函数如式(7)所示,
式中:k3,k4为权重系数;v为车辆的当前速度;Ddriving为车辆的当前行驶距离.式(7)首先鼓励自主车辆在道路规则允许的速度范围内驾驶.其次,对于汽车来说,速度一般在80~90 km/h 之间较为节省燃料,并且考虑到道路利用率,所以鼓励自主车辆的驾驶速度维持在90 km/h 左右.式(8)鼓励自主车辆的驾驶距离越远越好.
4) 终止条件.
为防止车辆做出不必要的探索,定义车辆驶出边界、发生后退或长时间没有明显前进为探索失败状态,对此状态反馈负奖励并终止当前回合,奖励函数设计如下
综合以上因素,总的奖励函数为
2.4 C-HVPER
为了提高样本利用率,加快算法的训练速度,本文提出一种分类与高价值优先级经验回放方法.该方法有以下要点:
1)样本分类.受文献[19]启发,根据每步的驾驶表现,区分成功样本和失败样本.由于车辆驾驶是一个时间序列问题,当前状态往往与过去操作有关.因此,当前样本与前Nlink个样本之间具有相关性.所以,在训练过程中,把成功驾驶样本存入成功经验池Dsuccess.失败驾驶样本与前Nlink个样本存入失败经验池Dfailure.
2)高价值优先级.受文献[20]启发,样本的当前奖励r(st,at)代表采取当前行为获得的短期回报,样本的价值Q(st,at)代表采取当前行为获得的长期回报.样本的价值计算式为
为让智能体加快学习速度,重点学习带有长期回报的行为,并兼顾带有短期高奖励的行为.在训练过程中,通过设定权重β的大小来权衡两者的关系.这样,最终价值Q*的定义如式(12)所示,并以此表示样本质量的优劣.
3)批量更新.训练前期,设置参数λ=0,通过抽取高质量的样本以加快智能体的学习速度;训练后期,为了避免算法出现过拟合现象,设置合适的参数λ∈[0,1],从Nsuccess和Nfailure中共采样Nbatch个训练样本,如下
2.5 改进TD3 算法
本文所提出的改进TD3 算法具体实现过程如算法1 所示.
3 实验结果与分析
本文所用仿真平台为开源赛车模拟器TORCS.实验软件环境为Ubuntu16.04 系统、Python3.5 和Pytorch 框架,硬件环境为CPU:i5-10400F,RAM:16 GB,GPU:GTX1660Ti.针对不同的驾驶场景,自主车辆需要学会直线驾驶、急速转弯、适当减速和刹车等操作,进而成功完成车道保持任务.实验中算法的主要超参数、状态空间和行为空间,分别见表1~3.
表1 算法的主要超参数说明Tab.1 Description of the main hyperparameters of the algorithm
表2 状态空间Tab.2 State space
表3 行为空间Tab.3 Action space
本文采用5 组代表性实验以层层递进的方式,分析TD3、MDFTD3、GRF、C-HVPER 和CBAM各自的特点以及对算法性能的影响,进而验证本文所提出的改进TD3 算法的有效性.图5 中给出了6 种不同的驾驶赛道,其中前4 组实验在Michigan Speedway 赛道进行测试,实验数据如表4 所示.第5组实验针对这6 种赛道进行测试.
表4 车道保持任务中各组实验数据Tab.4 Experimental data of each group in the lane keeping task
图5 6 种不同的赛道Fig.5 Six different tracks
3.1 第1 组实验
在Michigan Speedway 场景中,对DDPG 和TD3 进行了对比实验.其中两种算法均选用文献[14]的奖励函数.从实验结果图6 可看出,TD3 在性能指标上优 于DDPG.由图6(a)和 图6(c)可知,TD3 在收敛后获得了更高的奖励,这表明TD3 学到的驾驶策略具有更高的质量.由图6(a)和图6(b)可知,TD3 在1 280 回合左右达到收敛,DDPG 在1 360回合左右达到收敛,其收敛速度较DDPG 加快约5.9%,这表明TD3 的学习能力更强.而DDPG 因在学习后期出现了不合理的决策操作,导致危险情况时有发生,以至于表现效果不稳定.并且由图6(a)可知TD3 的稳定性更好,因此,本文选择TD3 算法作为自动驾驶车道保持决策的基础强化学习算法是合理的.
图6 第1 组实验结果对比Fig 6 Results of comparative experiment No.1
3.2 第2 组实验
为了验证所提多数据融合结构的有效性,进行了TD3 与MDFTD3 算法的对比实验.从实验结果图7 可知,MDFTD3 收敛后学到的驾驶策略质量更高,拥有更好的稳定性.鉴于MDFTD3 能够从图像中提取额外的关键特征,增强了算法对周围环境的感知能力,提高了算法的决策水平.由图7(a)和图7(b)可知,MDFTD3 因较于TD3 需额外感知图像信息,故导致其前期的学习速度慢于TD3.由图7(c)可知,MDFTD3 在保证算法稳定的前提下,速度性能略优于TD3.可见,MDFTD3 仅在前期训练过程中学习速度慢于TD3,但训练后期其学习速度较快且稳定性较好.
图7 第2 组实验结果对比Fig 7 Results of comparative experiment No.2
3.3 第3 组实验
为了验证GRF 在安全方面、舒适方面和效率方面对自主车辆的指导作用,进行如式(11)所示的奖励函数与文献[14]中的奖励函数的对比实验.其中,GRF 的参数选取为k1=30,k2=20,k3=5,k4=0.005,实验结果如图8 所 示.由 图8(a)和 图8(b)可知,在转角3 处,基于文献[14]奖励函数的MDFTD3 算法,因车辆的速度过高和航向角变化过快,导致车辆至道路中心轴的距离迅速增大,很容易发生车辆侧滑或者碰撞事故.基于GRF 的MDFTD3 算法,能显著减小车辆到道路中心轴的距离偏移量和航向角的变化率,从而保障驾驶安全和提升乘车舒适感.从图8(c)可知,该算法学到的驾驶策略使车辆速度保持在90 km/h 左右,通过节油方式提升了行驶效率.同时,根据评估数据计算可知,车辆至道路中心轴的平均距离误差为0.544 m,航向角平均误差为0.013 rad,这也表明GRF 可以给乘客带来良好的舒适感.可见,文献[14]中的奖励函数在保证安全驾驶的前提下,只追求驾驶速度最大化;而GRF 关注的更加全面,兼容了驾驶过程中的安全性、舒适性和合理的效率性.另 外,从 图8(c)看 出,基 于GRF 的MDFTD3算法仍存在前期学习速度较慢的问题,本文在第4 组实验中通过C-HVPER 方法来加快算法的学习速度.
图8 第3 组实验结果对比Fig 8 Results of comparative experiment No.3
3.4 第4 组实验
为了验证C-HVPER 方法的有效性,设计基于GRF 的MDFTD3 方法与基于GRF 的MDFTD3 结合C-HVPER 方法的对比实验.算法参数设置为β=0.3,λ=1/32,实验结果如图9 所示.从图9 可以看出,基于GRF 的MDFTD3 算法在820 回合左右达到收敛,在此基础上,引入C-HVPER 之后的算法在760 回合左右达到收敛,其收敛速度提升了约7.3%.
图9 第4 组实验结果对比Fig 9 Results of comparative experiment No.4
3.5 第5 组实验
选用图5 中6 个具有不同天空照明和道路结构的赛道,来测试CBAM 对算法性能的影响,并进一步验证所提改进TD3 算法的有效性.可视化实验结果如图10 所示,其中给出了不同场景不同路段的原始输入图像、输入CBAM 的特征图以及CBAM 输出的细化特征图.通过可视化图形高亮部分对比可见,CBAM 模块赋予车道线、车道中心线和车道周围的障碍物区域更高的权重,使得算法关注重点道路信息,从而更快的学到最优驾驶策略.基于上述6 个场景,进行了基于GRF 的TD3 方法和本文所提出的改进算法的多组对比实验,实验结果如图11 所示.可见,在兼容增强感知能力、优化样本利用率和细化信息特征情况下,本文所提出的改进算法的整体性能优于TD3 算法.
图10 第5 组实验CBAM 结果的可视化Fig 10 Visualization of CBAM results for experiment No.5
图11 第5 组实验结果Fig 11 Results of experiment No.5
4 结论
1)从感知能力、奖励函数、经验回放技术优化和特征提取4 方面入手,提出一种实现自动驾驶车道保持决策的改进TD3 算法.在获取车辆运动学数据信息的基础上,该算法融入了视觉图像信息,增强了算法的感知能力且提升了算法稳定性.
2)提出的指导型奖励函数使智能体学到了更加类人的驾驶策略,在乘车舒适度和行驶效率上表现突出.
3)提出的分类与高价值优先级经验回放方法,有效提升了样本利用率.卷积注意模块实现特征细化且突出重点关注信息,从而增强了算法的可解释性.仿真结果验证了改进TD3 算法的有效性,且其整体性能优于TD3 算法.