APP下载

基于改进DDPG算法的车辆低速跟驰行为决策研究

2019-10-18秦文虎翟金凤

测控技术 2019年9期
关键词:决策状态车辆

罗 颖,秦文虎,翟金凤

(东南大学仪器科学与工程学院,江苏南京 210096)

目前,交通拥堵已成为国内各主要城市治理中最棘手的问题之一。据相关统计,每年因交通拥堵给我国造成的经济损失为1700亿左右[1]。高德交通大数据所监测的45个不同规模的城市与地区中,有44座城市的拥堵状况均处于持续恶化阶段[1],这不仅给居民们的出行带来了不同程度的困难,也对城市的运转与建设造成了极大的阻力。同时,道路拥堵也意味着车辆只能低速行驶,并且需要频繁地启动、刹车,这会使驾驶员变得疲劳且烦躁易怒,容易出现交通事故;且会大大增加车辆的尾气排放量,从而降低城市的空气质量,加剧城市“热岛效应”。

车辆跟驰是车辆行驶过程中最基本的微观驾驶行为[2],主要描述的是车辆在单一车道上列队行驶时,前后两车间的相互作用[3],如图1所示。车辆跟驰行为在无法超车、换道的拥堵环境中是普遍存在的[4]。现如今针对城市交通拥堵环境下的低速跟驰行为研究较少。在这一环境中,车辆时走时停、车距较小、车速较低,所以跟驰行为相对较复杂。然而,对车辆低速跟驰行为的研究有助于解决如今的城市交通拥堵问题,提高拥堵路况下的驾驶安全性并改善驾驶体验,因此这一研究是十分必要的。

图1 车辆跟驰驾驶

考虑到传统的车辆跟驰模型在解决实际道路环境中的行为决策问题时存在自适应能力较低等问题,笔者将采用如今被广泛关注的深度强化学习(Deep Reinforcement Learning)方法来进行车辆低速跟驰行为决策问题的研究。深度强化学习是强化学习(Reinforcement Learning)与深度学习(Deep Learning)相结合的产物,深度神经网络使得强化学习方法能够扩展到以往很难处理的决策问题,即具有高维度状态空间或连续动作空间的环境[5]。目前,已有研究者将强化学习中的Q-learning算法[6]与深度强化学习中的DQN算法[7]进行改进以应用于智能车辆的自动驾驶控制,但是它们在处理车辆跟驰行为决策这样的连续动作空间问题时仍有欠缺,因此选择深度确定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法进行车辆低速跟驰行为决策研究,同时提出了基于屏障控制方法(Control Barrier Functions,CBF)的改进 DDPG算法以优化决策效果。

1 强化学习理论基础

强化学习的主要特点是试错与延时回报,其基本结构与流程如图2所示,智能体(Agent)学习如何在环境中采取动作(离散动作或连续动作),不需要先验知识,仅通过不断的交互试错、获得经验,最终得到最优策略。

图2 强化学习基本模型

强化学习主要包括四大要素,分别是状态、动作、状态转移概率以及奖励值函数,其学习过程主要可用马尔可夫决策过程(Markov Decision Process,MDP)来描述[8-9],MDP 由 <S,A,P,R > 四元组来刻画,其中,S={s1,s2,s3,…}表示状态空间,是所有状态的有限集合;A={a1,a2,a3,…}表示动作空间,是所有动作的有限集合;P为状态转移概率矩阵,Pass1=P[St+1=s1|St=s,At=a]表示在s状态下采取a动作,转变为s1状态的概率;R=r(s,a)为奖励值函数,表示在s状态下采取a动作所获得的奖励值。智能体在与环境进行交互的过程中,在状态ST处的累计奖励为自T时刻起未来执行一系列动作后所能获得的奖励值,即T+1,T+2,T+3,…所有时刻的奖励值之和,表达式为

式中,γ为折扣因子,用以权衡当前奖励与长期奖励的关系,取值范围为[0,1],该值越小,则说明越重视当前奖励,反之则越重视长期奖励。

强化学习的最终目的是学习到最优策略π以得到最大的累计奖励期望,即

为便于求解该最优策略π,需要对某个状态与动作的优劣进行评估,因此,引入了状态值函数与动作值函数的概念,其表达式分别为

对于以上函数的求解可利用基于表的方法与基于值函数逼近的方法,前者包括动态规划法、蒙特卡罗方法、时间差分法等,其实质是建立一张行值为状态、列值为动作的表,通过不断的循环迭代对表中的值进行更新,在状态空间比较大时,用这一方法求解非常困难,因此,越来越多的研究开始关注第二种方法,即利用深度神经网络逼近值函数,由此深度强化学习便应运而生。

Deep Mind于2013年提出的DQN算法是深度强化学习的开山之作,该算法使用卷积神经网络对Q-learning中的动作值函数进行拟合,同时采用了经验池机制,通过在经验池中随机均匀采样,模糊了训练样本间的相关性;并且,对过去的多个样本做均值处理,从而平滑训练样本的分布[10]。DQN算法及其衍生算法在学习离散动作策略上取得了较为显著的成果,可是在处理连续动作决策问题方面却比较困难,虽然也可以把连续动作进行离散化,但离散后膨胀的动作空间容易使算法陷入维数灾难。2015年9月,Deep Mind提出了DDPG算法,该算法在确定性策略梯度(Deterministic Policy Gradient,DPG)算法的基础上发展而来,属于无模型(Model Free)方法,其核心是Actor-Critic方法[11]。前人的研究表明,DDPG算法在多种连续行为决策问题上表现良好。

2 基于改进DDPG算法的车辆低速跟驰行为决策

2.1 DDPG算法原理

DDPG中建立有Critic网络和Actor网络,其结构分别如图3所示。这两个网络间的联系为:首先环境给出状态观测量s,智能体根据Actor网络做出决策动作a,环境接受此动作后给出奖励值r与新的状态s'。此时再根据r更新Critic网络,然后遵从Critic建议的方向更新Actor网络。如此循环迭代,直至最终训练出最优的 Actor网络[12]。

图3 Actor网络和Critic网络示意图

与DQN相同,DDPG也使用了Target网络以保证参数收敛。假设Critic网络为Q(s,a|ω),其对应的Target-Critic网络则为 Q(s,a|ω*);Actor网络为 π(s|θ),其对应的 Target-Actor网络为 π(s|θ*),其中 ω、ω*、θ、θ*分别为这4 个网络的参数。

DDPG算法的具体流程如下:

(1)初始化Critic网络与Actor网络的参数ω、θ。

(2)将Critic网络与Actor网络的参数分别复制给对应的 Target网络的参数ω*、θ*。

(3)初始化经验池。

(4)在一个时间步长内进行如下迭代循环。

①初始化Uhlenbeck-Ornstein随机过程(简称UO过程),目的是引入随机噪声。

②Actor网络根据当前策略π和随机UO噪声获得一个动作at,并将该动作传达给Agent,at的表达式如下:

③ Agent执行动作at之后,环境返回奖励值rt及下一时刻的状态St+1。

④ 将每一次状态转换过程(St,at,rt,St+1)都存储到经验池中,作为网络训练的数据集。

⑤在经验池中随机采样N个状态转换过程数据,作为Critic网络与Actor网络的一个mini-batch训练集,其中的单个状态转换过程数据可表示为(Si,ai,ri,Si+1)。

⑥计算Critic网络的梯度:Critic网络的损失值Loss的计算公式如下,基于标准的反向传播(Back Propagation)算法,便可以求得Loss相对于ω的梯度∇ωLoss。

⑦ 更新Critic网络,采用Adam Optimizer更新ω。

⑧计算Actor网络的策略梯度,一般根据蒙特卡罗方法使用mini-batch训练集数据对其期望值进行无偏差估计,具体表达式为

⑨ 更新Actor网络,采用Adam Optimizer更新θ。

⑩更新Target-Critic网络与Target-Actor网络,采用如下公式对ω*、θ*进行更新,式中 τ一般取值为0.001。

(5)时间步长结束,迭代循环终止。

2.2 高斯过程与奖励函数设定

在应用DDPG算法以及之后的改进算法实现车辆低速跟驰决策时,将状态转换关系做出如下假设:

式中,d(St)表示未知的系统动力学部分,用高斯过程(Gaussian Process,GP)模型来对其进行估计,以d^(St)表示。高斯过程是一种非参数回归方法,在如今的机器学习领域内被广泛使用,通常用于根据数据估计函数及其不确定性分布的场景中,可视为一个随机变量的集合,其中的任意有限个样本的线性组合均服从联合高斯分布[13]。一个高斯过程可由均值函数μd(s)和协方差函数σ2d(s)来确定,对于过程中任一状态s*,两函数表达式分别为

式中,K+σ2noiseIk(si,sj)为高斯过程的核矩阵,k*(s*)=[k(s1,s*),…,k(sn,s*)]。在算法的决策训练过程中,智能体对动作的执行则需要通过以上两式进行高斯过程模型的更新。

同时,将学习过程中的奖励函数表达式设定为

式中,第1项对加速度进行约束,以优化燃油效率,第2项则鼓励跟驰车辆尽量保持3 m(不考虑车长)的间距;k表示在模拟的跟驰车队中选择第k辆车为A-gent,决策其跟驰行为。考虑到交通拥堵的情况下,本文将安全边界(Safety Boundary)设置为2 m。

2.3 CBF方法

CBF 方法属于有模型(Model-based)方法[14],其关键在于通过一个连续可微分的函数H(s)设定了一个安全集合C,可表示为

为了保证学习过程中的绝对安全,智能体的状态s必须始终保持在安全集合C中,换言之,学习算法应在集合C中进行策略的探索[15]。采用如下表达式描述本算法当中的安全集合:

式中,A表示动作空间;δ表示CBF方法对安全约束的强度,在[0,1]范围内取值;h(s)则需要在学习过程中不断进行训练与更新。

DDPG算法策略试图产生优化长期奖励的动作,但执行该动作未必安全,CBF方法作用于DDPG算法执行动作之前,可以视为一个小型控制器,对可能产生危险的动作进行过滤,提供必需的最小干预控制,从而确保整体状态的安全性。

2.4 DDPG-CBF改进算法

CBF方法与DDPG算法的结合主要分为两个部分:① 提供补偿控制,如图4(a)所示;② 指导策略探索,如图4(b)所示。

图4 基于CBF方法的强化学习补偿控制和策略探索

算法的初始架构为CBF控制器给DDPG算法提供安全补偿,在学习过程中,CBF控制器数据同样存储为训练样本,以进行CBF安全控制策略的更新,从而对DDPG策略探索提供更有效的指导。DDPG-CBF改进算法的具体流程如下。

(1)初始化DDPG算法策略π0D

DPG,状态观测量空间设为D,状态动作空间设为A。

(2)在t=1,…,T内,进行如下步骤。

②通过CBF控制器得到控制动作u0CBF(St);

④本次获得奖励rt,转换到下一状态为St+1,将状态动作数据(St,u0CBF(St))存储至A,状态动作转换数据(St,u0(St),St+1,rt)存储至 D。

(4)更新高斯过程模型与D。

(5)当前迭代过程视为第1次策略迭代,在设定的策略迭代次数内,进行如下循环:

①通过DDPG算法并基于之前的迭代奖励产生第k次的策略uDkDPG(St);

③ 在t=1,…,T内,重复步骤(2),不同的是策略中需加入ubkar(St)分量;

④重复步骤(3)与步骤(4)。

(6)满足终止条件,迭代结束。

3 仿真实验结果分析

依靠Tensorflow开源软件库完成仿真实验,同时配置了GeForce GTX TITAN Xp的Cuda环境以提供GPU并行加速运算。实验中设置了一个含有5辆车的纵向行驶跟驰车队,通过决策算法控制其中第4辆车的加速与减速,期望目标是避免碰撞,并且保证低速跟驰时的燃油效率最大化(即规避拥堵时过于剧烈的加速度振荡)。

使用DDPG算法与DDPG-CBF改进算法进行策略学习的过程中最小跟车间距的变化情况以及迭代过程中的累积奖励对比,分别如图5、图6所示。

图5 最小车间距对比图

图6 累积奖励值对比图

从图5可以明显观察到,在未结合CBF控制器的情况下,DDPG算法未能在600次迭代内收敛于期望安全策略,即保持3 m的车间距,可见改进前的算法并不能很有效地保障决策的安全性;同时从图6所示的迭代过程中的奖励值变化情况来看,DDPG算法在学习过程中获得奖励回报较低,并且不确定性与波动性也比较大。而对于DDPG-CBF改进算法而言,不仅能够使车队的跟车间距维持在期望车距附近,保证决策的安全性,同时具有很快的学习速度,能够迅速地获得较高的奖励值回报,收敛于最优策略。由此可见,所提出的车辆低速跟驰决策算法的改进效果比较显著。

4 结束语

本文以获得有效的车辆低速跟驰策略为研究目标,基于 DDPG算法,并结合 CBF控制器,提出了DDPG-CBF改进算法,实验证明,该算法在安全保障与学习效率上均体现出了其优越性。但是本文中对跟驰车队系统的模拟使用的是高斯过程模型,而如何将该算法应用于各种实际的交通仿真场景,并考量驾驶员驾驶习惯差异的影响,可作为后续研究的重点方向。

猜你喜欢

决策状态车辆
为可持续决策提供依据
状态联想
决策为什么失误了
车辆
生命的另一种状态
冬天路滑 远离车辆
坚持是成功前的状态
提高车辆响应的转向辅助控制系统
关于抗美援朝出兵决策的几点认识
湘赣边秋收起义的决策经过