1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 使用深度强化学习控制无人驾驶车辆

使用深度强化学习控制无人驾驶车辆

时间:2021-12-02 08:12:07

相关推荐

使用深度强化学习控制无人驾驶车辆

前两天看到了一个基于深度强化学习的无人车控制方法。它通过训练一个神经网络,将其估计状态映射到加速度和转向指令以达到特定的状态,同时考虑检测到的障碍物。该学习过程是通过结合近端策略优化和环境模拟。

01

概述

近几年,在无人驾驶领域的研究很大一部分归功于深度学习,比如一种神经网络PILOTNET,主要用于训练基于摄像机图像的车辆转向。还有很多用于处理传感器数据和车辆在不同任务下的控制计算的经典方法。后者可以通过很多基于模型的方法来解决,比如线性二次型最优控制(linear quadratic controller),又被称为黎卡提微分方程(Riccati controller),在自动驾驶中有很多使用最优控制的例子,比如D.Kim, J.Kang和K.Yi发表于的《Control strategy for high-speed autonomous driving in structured road》,F.Lin,Z.Lin和 X.Qiu发表于的《LQR controller for car-like robot》,以及N.Tavan,M.Tavan和R.Hosseini发表于的《An optimal integrated longi-tudinal and lateral dynamic controller development for vehicle pathtracking》。

但是LQ最优控制没有考虑在有约束的条件(比如障碍物),这种情况下,我们可以通过一个常规的基于求最优解的非线性预测模型(MPC)来解决,这种计算会更加复杂,但也有应用的例子:M.Knauer和C.B ̈uskens的《From WORHP to TransWORHP》,以及C.B ̈uskens和D. Wassel的《The ESA NLP solver WORHP》。

通过结合LQ最优控制的速度和MPC的通用性,我们可以找到一个方程,它可以将状态值映射到控制变量,比如训练一个深度神经网络。这种模型可以是像PILOTNET那样监督学习,或者是强化学习。最近很多研究表明强化学习在无人驾驶领域有显着的效果。

02

连续深度强化学习

近几年,在经典的强化学习上,通过与神经网络相结合,以及使用反向传播,衍生出来很多方法,比如Deep Q-Learning(DQN)以及一些Actor-Critic Algorithm(A3C)算法。后者能够在连续动作的情况下训练,这对于在真实世界系统(比如无人车)的应用是相当必要的。该训练过程基于proximal policy optimization(PPO),因此需要考虑一个无穷的马尔可夫决策过程(MDP),该方法由六个量组成:

S和A分别是状态和动作的连续和边界空间,概率密度函数P表示在给定动作a∈A,且P0可能初始状态下的独立分布的情况下,从状态s∈S到s′∈S转变过程。回报函数(reward function)为 r:S∗S∗A→R,γ为折扣系数(discount factor)。

基于以上这些定义,强化学习算法的目标就是找到一个最优解:π:S∗A→[0,1],代表在给定状态下客户端动作的概率密度。优化程度与期望折扣回报相关:

with:

在actor-critic 设置中,策略π是由动作执行者决定的,状态值方程(state value function)如下,该方程将用于评估策略动作:

同时,state action value function 和 advantage 将由下式给出:

为了在连续状态和动作空间内找到最优化策略,可以使用神经网络作为近似函数,它可以参数化πθ和Vθ。总之,一个深度actor-critic训练算法需要找到参数θ,以最大化目标函数(式1)以及估计出与之对应的状态方程Vθ。

考虑到上述策略是基于在一个参考策略πθ0(局部最优解参数为πθ)附近的的η一阶近似,所以他们之间的距离可以这样表示:

待评估样本(st, at)是由一个rollout集M计算得出,因此总共会通过参考策略πθ0计算出N个数据点。总之,用于训练策略πθ的PPO可以这样表示:

这里引入了pessimistic balancing,它由一个clip parameter ε>0来控制。并且,使用At来估计第t个数据点的好处是可以将At用于定义一个Vθ的代价函数ζV作为二次项误差:

最后,At的鲁棒性估计可以通过广义优势估计(generalized advantage estimation) 给出:

该式通过参数λ >0去平衡机器学习概念中的bias和variance。总之,该PPO过程可以这样表述:

03

自动驾驶深度控制

为了能够让无人车的导航和控制系统在城市工况下正常工作,车辆周围的信息会通过各种仪器被采集,包括了传感器信息,目标状态和预测。为了能够让无人车的导航和控制系统在城市工况下正常工作,车辆周围的信息会通过各种仪器被采集,包括了传感器信息,目标状态和预测。这些信息的采样率极高,并且被用于闭环控制中,与此相关的控制器会在每次迭代运算中提供转向和加速值以在安全的状态下达到目标状态。在这种设置中,其他车辆可以被视作静态物体。

为了训练这样一个强化深度学习算法,我们需要确定相关的MDP和神经网络(πθ,Vθ),并且还需要一个合适的环境用作训练。

状态和动作空间 State and Action Spaces

目标车辆的控制主要通过转向轮角度ν和加速度a来决定。前者可以双向映射到前轮的平均角度β,为了避免任意快速变化,这里使用角速度ω来作为动作空间action space:

这些控制量对车辆的坐标集有直接影响:

换一种表达方式,当前目标的位置和方向可以用相对边界位置(xr,yr)和相对方向来表示。后者的好处是可以避免不连续性。并且控制器还需要知道目标速度和当前速度以预测下一状态。

上式是根据车辆周围的环境进行的相对预测,它也可以这样表示,由n*m的矩阵Ø(初始为{-1,0,1})决定:

状态切换 State Transitions

可以通过一组微分方程来描述该状态切换,这涉及到车辆相对坐标的更新和障碍物预测。在低速情况下,单线模型(single-track-model)就足够了。这里,车辆被简化成前后都只有一个车轮,并且位于车辆对称轴上,在此假设上,该微分方程如下:

回报方程 Reward Function

回报方程主要讲目标状态转换成达到该目标的方向和速度。考虑到MDP是连续的,它不能适用于所有情况(比如说目标速度为0).因此,训练过程被分为两个阶段和两个独立的策略:DRIVER和STOPPER,前者用于快速达到目标速度,后者用于缓慢接近目标直至停下。对于这两个模型,第一阶段为在每一个time step都会有rewards,达到目标位置或者成功停下会给予极高的rewards,DRIVER的成功案例会有下式:

∆p为与目标的距离平方,[·]p仅仅在达到目标位置时有效。在第一阶段的训练过程到达所有的目标后,还需要额外的动作比如合适的速度和较小的转向角:

∆v,∆β为当前转向角估计。在STOPPER模型训练中,rewards是类似的,在目标速度上会有一个额外的权重。

神经网络算法 Policy and Value Function

这里需要分别训练两个神经网络来决定πθ和Vθ。他们使用相同的拓扑结构但参数不同。结构如下:

Vθ最后会由一个线性激活函数得出,πθ是一组(μ,σ),它代表了接下来每个动作的正态分布的期望和标准差,并且μ由tanh激活函数计算出,σ则独立于输入,表示该动作的可信度。控制命令可以通过改变tanh激活函数和其他操作来进行约束

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。