杨 璐 王一权 刘佳琦 段玉林 张荣辉
(1.天津理工大学天津市先进机电系统设计与智能控制重点实验室 天津 300384;2.天津理工大学机电工程国家级实验教学示范中心 天津 300384;3.中国农业科学院农业资源与农业区划研究所 北京 100081;4.中山大学广东省智能交通系统重点实验室 广州 510275)
在复杂多变的环境中学习最优驾驶策略是自动驾驶领域一直面临的挑战,传统的决策方法主要基于规则[1-3],通过有限状态机、决策树等方法对状态、规则进行划分,进而进行计算、决策。然而基于规则的方法无法覆盖所有可能出现的场景,难以适应复杂的环境。随着机器学习在自动驾驶领域的应用,决策模型利用神经网络处理驾驶相关环境信息,输出车辆控制信号,实现端到端的决策控制,成为了研究热点。
目前端到端的自动驾驶决策方法主要基于模仿学习和强化学习。基于模仿学习的方法旨在模仿专家(人类驾驶员)进行学习,实现对专家行为的再现[4]。英伟达最初基于深度神经网络,在端到端自动驾驶系统中取得了成功,然而在新的环境中表现不佳。为此,巴明月[5]在输入中增加语义分割深度图像,并在动作输出前加入高级控制命令提高模型的鲁棒性。Toromanoff等[6]对数据进行增强,仅使用1个鱼眼相机实现了端到端自动驾驶横向控制。Chen等[7]在专家数据中加入了随机噪声,提高了模型的泛化能力。然而,基于模仿学习的决策方法仍存在局限:①训练时需要大量的专家数据以保证其泛化性,导致算法难以训练;②专家数据全为成功的正样本,在面对失败的情况时难以做出正确的决策。因此,只适用于道路上车道保持或横向辅助控制等简单的驾驶任务,面对复杂多变的城市交通环境,难以做出最优决策。
基于强化学习的方法让智能体通过“试错”的方式在环境中进行,根据动作的回报对策略进行改善学习,无需标注样本。深度强化学习结合了深度学习和强化学习的优点[8],适合解决连续控制问题,因此被许多学者应用在端到端自动驾驶决策中。Perot等[9]在WRC平台上,使用异步优势动作评价算法(Asynchronous advantage actor-critic,A3C)[10]同时在3条不同的赛道上训练车辆,证明了其泛化能力。Kendall等[11]基于单目图像学习车道保持任务,首次将深度确定性策略梯度算法(Deep Deterministic Policy Gradient,DDPG)[12]应用在现实车辆。闫浩等[13]采用REINFORCE算法设计车辆便道控制方法,并提出对经验池预处理解决样本数值和方差过大的问题。罗鹏等[14]根据专家知识和的强化学习算法决策的差别确定奖惩函数,引导值函数训练。Chen等[15]将感知信息转换为鸟瞰图作为状态输入,提高了深度强化学习决策的可解释性。Zhu等[16]对基于深度强化学习的跟车模型进行优化,在安全性和舒适性优于人类驾驶员。宋晓琳等[17]利用模仿学习输出高层指令,根据高层指令使用DDPG算法输出底层决策,缩减了所需求解问题的规模。
出于安全考虑,在实际中训练强化学习的方法很少,大多数基于强化学习的自动驾驶工作都是在模拟中进行的。Carla仿真平台是开源的城市模拟器,拥有开放的数字资源,包括城市布局、车辆、交通信号灯等,并提供了A3C算法的强化学习基准和模仿学习基准[18]。目前多数研究都基于Carla仿真,并通过在Carla自动驾驶挑战赛[19]中证明算法的有效性。
基于深度强化学习的端到端决策方法在自动驾驶领域已经取得了一定的成绩,但目前的研究工作存在不足:①深度强化学习算法在训练时需要进行大量探索,使智能体在训练前期容易获得过多的低回报经验,导致算法学习效率低,尽管通过对输入图像进行处理或使用其他感知数据的方式可以改善模型的输出,但在算法探索效率上并没有得到优化;②目前已有研究提出利用专家演示数据对网络进行预训练,然后使用强化学习训练的方法来优化模型[20-22],但只有Actor网络是使用演示数据预先训练的,Critic网络仍然是随机初始化的,当智能体开始与环境交互时,由于不正确的价值函数估计,决策性能将下降;③自动驾驶为连续控制任务,需要动作变化平滑,输出离散空间动作的深度Q网络(DQN)[23]的表现不如输出连续动作的DDPG、PPO、A3C等网络,然而在直线行驶任务中,输出连续动作的Actor网络却由于训练过程中过多的低回报经验,导致算法学习效率低下,模型收敛后车辆会在直线车道上大幅度左右摆动的情况,存在舒适性、安全性问题。
针对目前基于强化学习的自动驾驶研究中存在的问题,对无模型强化学习算法智能体探索进行研究,提出1种融合不同动作空间网络输出的端到端自动驾驶行为决策方法融合离散动作的双延迟深度确定性策略梯度算法(Twin Delayed Deep Deterministic Policy Gradient with Discrete,TD3WD),基于不同动作空间网络输出融合,结合2种网络的优点,提高模型的学习效率;基于模型训练存在的算力问题,通过预训练网络提取图片特征的方式降低训练过程计算成本;在Calra仿真平台中对决策系统进行设计,通过实验验证本研究的可行性。
在强化学习中,问题被定义为1个马尔可夫决策过程(Markov decision process,MDP),由1个元组表示。智能体根据当前状态st∈S,通过策略π:s→a选择动作a t∈A。在交互环境中完成动作执行后,由转移函数st+1=P(st+1|s t,at)获取下1个状态,通过奖惩函数r(s,a)获取奖励值rt。深度强化学习的目标是通过学习得到最优策略π*,使期望累计奖励最大,期望累计奖励用状态值函数Vπ来表示。
式中:Gt为累计奖励;γ∈( 0,1)为折扣因子,表示对未来状态的影响程度。
同样,将在策略π下采取动作的动作值函数用Qπ来表示。
最优策略π*满足
强化学习算法分为基于模型和无模型2种,无模型的算法不需要智能体完整了解所在环境的模型,更容易实现和调整。在本文研究中,采用无模型强化学习算法双延迟深度确定性策略梯度算法(twin delayed deep deterministic policy gradient,TD3),将车辆前方摄像头图像作为输入,转向盘转角、油门开度、刹车开度作为输出,实现端到端自动驾驶决策。
TD3算法基于Actor-Critic结构,使用2个Critic网络评估动作值,避免单个网络的过估计,属于无模型算法。无模型算法存在探索效率问题,需要大量的样本去学习,容易使经验回放池在训练前期存储大量负面经验,导致算法学习效率低,模型性能差。为了提高探索效率,使智能体向更好的方向探索,提出了TD3WD,系统模型见图1。
图1 TD3WD系统模型Fig.1 TD3WDsystem model
TD3WD包含1组Actor(Actor和Target Actor)网络和2组Critic(Critic和Target Critic)网络,附加网络本质为1组深度Q网络(Eval Q和Target Q),Actor网络负责输出连续动作,2个Critic网络负责对动作进行评价,Eval Q网络负责输出离散动作,所有Target网络负责输出各部分的目标值。与输出连续动作的Actor网络相比,Eval Q网络可执行动作数量有限,数值变化量较大,在弯道场景下的转向盘动作变化没有连续网络平滑;而在直线行驶场景下离散空间动作可以使输出转向盘转角为0,连续网络则由于训练前期探索效率低,车辆会在直线车道上左右摆动。因此,利用Eval Q网络辅助Actor网络探索,提高探索效率,见图2。
图2 辅助探索Fig.2 Uxiliary exploration
图中:α为动作比重系数,表示Actor网络输出对最终输出动作所占比重;aCt为Actor网络输出动作;a Dt为Eval Q网络输出动作;at为加权融合后动作。利用at代替aCt作为智能体输出与环境进行交互,加强模型对环境的探索。在收集交互经验时,将融合前后的动作均保存在经验回放池中,当选取经验进行训练时,使用at训练原TD3各网络,同时附加Q网络使用a Dt训练。随训练迭代次数增加,Eval Q网络输出所占比重减小到0,训练结束时,动作完全由Actor网络输出。和使用专家经验进行强化学习训练的方法相比,本文算法所有经验均通过智能体与环境交互所得,避免了值函数的不正确估计。
在TD3中,2个Critic网络用于输出当前状态动作的Q值,更新时使用梯度下降的方法最小化损失函数L1。
式中:N为训练选取样本批量大小;为Critic网络参数;yi为Target Critic网络估计的目标动作值,取2个网络输出的较小值;γ1为折扣因子;a'为Target Actor网络输出的目标动作,TD3算法在Target Actor输出增加基于正态分布的随机噪声以提高智能体探索能力,本文将Target Q网络输出作为噪声与Target Actor输出进行加权融合,鼓励智能体探索,权重同样使用探索中的比重系数α;为Target Critic网络参数。
Actor网络根据当前状态输出动作,为了加强智能体的探索能力,在更新网络时,同Target Actor网络输出,将Eval Q网络输出作为噪声与Actor输出进行加权融合。Actor更新时使用确定性策略梯度。
式中:θμ为Actor网络参数;θQ1为Critic1网络参数。Actor网络采取延迟更新的方式,每更新2次Critic网络时更新1次。
Actor部分和Critic部分各自对应的Target网络,分别输出目标动作和目标Q值。TD3算法采用软更新的方法对Target网络进行更新。
式中:τ为更新系数,使主网络与Target网络存在一定差异。同Actor网络更新,Target网络也采取延迟更新的方式。
Eval Q网络利用损失函数L2更新。
式中:θ为Eval Q网络参数;γ2为折扣因子;为Target Q网络参数。Target Q网络更新如采取硬更新方式,每迭代一定次数,Target Q网络参数对Eval Q网络参数进行1次复制,保证网络存在一定差异。
状态空间包含自动驾驶汽车决策所需信息,包括前方道路环境信息和车辆自身状态信息,车辆状态空间定义为
使用英特尔公司研发的Carla仿真平台,通过在模拟自动驾驶车辆设置前向RGB摄像头,获取前方道路实时图像,输入图像像素为800×400。如图3所示,将原始图像进行尺寸处理,并将其输入到经过预训练的网络[24],该网络为Carla官方提供的端到端决策网络,利用专家数据进行端到端模仿学习,可用于提取前方道路图像特征信息,代替原始图像输入。将得到的特征编码向量β与车辆速度v(m/s)以及上一时刻动作信息(转向盘转角ω、油门开度t、刹车开度b)进行信息融合,将所有信息进行拼接,得到的新向量为状态s t,作为全连接层网络输入。
图3 状态信息处理Fig.3 State information processing
车辆动作空间由转向盘转角ω、油门开度t、刹车开度b组成,动作空间由连续空间aCt和离散空间a Dt组成。连续空间定义为
连续空间中对动作进行归一化,将转向盘转角归一化到[-1,1],油门和刹车归一化到[0,1]。
由于辅助网络输出离散动作,且每次只能选取1个动作,因此将离散动作值选取{0.3,0.6,1.0}这3个级别,离散空间定义为
在直行加速和减速动作中各有3个级别,考虑在转弯过程中尽量避免速度发生较大变化,因此在设计左转和右转的离散空间动作中,所有的油门开度均设置为0.6,使车辆能够在转弯过程中尽量匀速行驶,并通过不同转向盘数值来表示转弯幅度的大小,因此共有12组离散动作组合。
最终输出动作为
为了使车辆在安全的速度范围内行驶,当速度超过8.5 m/s的时候,设置最大油门开度为0.5。
为了衡量自动驾驶车辆所作动作的好坏,并引导车辆学习,在设计奖惩函数时考虑4个因素:车速、转向盘转角、压线、碰撞。奖惩函数需要鼓励车辆沿车道向前行驶,当车辆超出车道时给予惩罚,同时还要使动作输出变化尽量平滑,设计奖惩函数为
奖惩函数包括速度奖励和安全惩罚。
1)速度奖励。在车辆探索过程中,要奖励车辆向前行驶,同时惩罚车辆产生较大转向角和较大转角变化率的行为。
式中:v为车辆速度,m/s;ωt,ωt-1分别为当前时刻与上一时刻的转向盘转角。
2)安全惩罚。在车辆探索过程中,要惩罚车辆超出车道线和马路边线以及发生碰撞的行为。
式中:l ol,l or分别为车辆超出车道线和马路边线的面积比;rc为车辆碰撞时的惩罚,当发生碰撞时rc取-100。
深度强化学习在探索中进行训练,在训练前期容易长时间停留在低回报区域,使记忆池存储大量负面记忆,影响训练速度,因此需要设置终止条件。设计了以下终止条件。
1)车辆停止。当车辆在连续20步内不移动时,停止当前仿真,设置回报为-2,开始下一轮训练。
2)超出车道。设定道路侵占比的阈值为0.2,即当车辆超出车道线或马路边线的面积比大于该阈值时,停止当前仿真,开始下一轮训练。
3)发生碰撞。当车辆发生碰撞时,停止当前仿真,开始下一轮训练。
TD3WD各子网络结构见表1,所有的Target网络与其对应网络的结构完全相同。由于输入状态为向量,因此所有子网络结构均由全连接层构成。
表1 TD3WD网络结构Tab.1 TD3WD network structure
网络训练超参数设置见表2。通过与仿真环境进行在线交互来训练TD3WD各模块,每当交互达到1 000步或达到终止条件时终止当前训练轮次,重新随机初始化仿真环境后开始新的训练轮次,直到完成设定轮次训练。
表2 超参数设置Tab.2 Hyper parameter setting
使用Carla软件作为仿真平台,搭建自动驾驶的模拟环境。通过Carla官方文件提供的程序接口可以获取车辆实时速度、转向、加速度、坐标等数据,以及红绿灯、交通标志等交通信号信息;还可以通过自主添加RGB相机、激光雷达、景深传感器等传感器来获取环境信息;利用控制器可以对车辆进行加速、刹车、转向盘、换挡、手刹操作。Carla可以满足算法训练的需求。
选用稳定版本的Carla 0.8.2,选取的模拟环境为2个小镇地图,道路为双车道,拥有丁字路口和交叉路口。使用地图Town 1进行训练,地图见图4。
图4 训练地图Town1Fig.4 Training map Town1
在该场景中,不同的路段环境差别较大,为避免样本分布不均匀,使车辆能够适应在环境中不同路段行驶,每一轮训练开始时随机选择初始地点,并随机选择天气条件,以提高模型泛化能力,见图5。为了使实验条件更加接近真实环境,在仿真中增加红灯停车的情况,在红灯条件下强制设置车辆减速停止,转向盘仍由决策网络输出控制,增加车辆静止启动的经验。
图5 随机初始环境Fig.5 Random initial environment
为了证明本文算法的学习能力,除TD3WD、TD3、DDPG算法外,将本文思想加入到DDPG中作为对比算法(delayed deep deterministic policy gradient with discrete DDPGWD),对4种算法分别进行训练,在相同的实验条件下在地图Town 1中分别训练了3 000个轮次,并对下述3个指标进行了统计:①轮次平均奖励,将轮次的累计奖励每10轮取1次平均值,通过累计收益评价任务学习情况;②轮次平均行驶距离,将轮次的行驶距离每10轮取1次平均值,利用行驶距离评价任务实际的完成效率;③单步平均奖励,记录每个轮次实际交互的步数,求取单步平均所得奖励,通过单步奖励进一步评价模型的好坏。
4种算法的训练结果见图6~8,各曲线均在上升后趋于平缓,表明算法经过学习后达到收敛。从图中可以看出,TD3算法由于使用了2个Critic网络,避免了高估偏差,收敛后各项数值均在DDPG之上,性能超过了DDPG。TD3算法在2 500轮次左右完成了收敛,TD3WD算法在1 750轮次左右完成收敛,相较DDPG算法收敛速度提升了30%,学习速度更快,收敛后表现更好,累计奖励、行驶距离和单步奖励均超过了其他算法,可以输出更高回报的动作,学习效率更高;根据动作比重α设置,TD3WD在第2 000轮时完成训练,在2 000轮之后,各图曲线并未随训练继续而受影响,所提出算法训练是成功的。将融合动作的思想加入DDPG后,改进后的DDPGWD算法同样超越了DDPG和TD3算法,证明了本文算法思想的正确性。
图6 轮次平均奖励Fig.6 Episode average reward
图7 轮次平均行驶距离Fig.7 Episode average driving distance
图8 单步平均奖励Fig.8 Single step average reward
将4种算法训练后的模型在地图Town 1中,针对直线行驶、弯道转弯、穿过交叉路口、丁字路口转弯4个任务进行测试,并根据任务的完成情况设置压线率、转角变化、碰撞3个评价指标,在相同的天气条件下,每个任务测试10个轮次,测试结果见表3。为了证明模型的泛化能力,在Town 1中选择训练过程中没有用到的天气条件,以及在Town 2新环境下,再进行2组测试,结果见表4~5。
表3 Town 1测试结果Tab.3 Town 1 test results
表4 Town 1测试结果(新天气)Tab.4 Town 1 test results(New weather)
从表中结果可以看出,TD3WD可以很好的完成各任务,各项指标综合超过了对比算法,与原TD3相比,平均压线率降低了74.4%,平均转向盘转角变化降低了56.4%,性能更加稳定,输出变化更加平滑。加入本文思想的DDPGWD同样获得了很好的结果,各项指标均得到了较高的提升。DDPG与TD3则由于转角变化较大,不能满足舒适性的需求。此外,在新的天气条件和新环境下,DDPG的表现较差,甚至不能完成任务,发生多次碰撞,而TD3WD则表现出更好的泛化能力,仍然可以更好地完成各项任务。
表5 Town 2测试结果Tab.5 Town 2 test results
通过仿真实验结果可以看出,本文所提算法可以提高模型的学习效率,使网络可以输出更高回报的动作,使车辆的舒适度、安全性得到了提高,证明了本文算法思想的正确性。
本文基于无模型深度强化学习算法,对自动驾驶端到端行为决策技术展开研究。
1)利用融合不同动作空间网络输出的方式,鼓励智能体对环境的探索,提高了模型的学习效率。
2)在改进算法的基础上使用模仿学习预训练的网络提取图像特征,降低强化学习算法训练过程中的计算成本。
3)通过仿真实验分析,结果表明该方法提高了模型的决策能力,输出变化更加平滑。
下一步研究将对基于融合导航信息的强化学习决策方法开展,并将环境扩展为多车道场景,研究复杂驾驶场景下的决策任务。此外,将动态规划加入到决策中,以提高决策方法的实用性。