学术论文投稿/征稿

欢迎您!请

登录 注册

手机学刊吧

学刊吧移动端二维码

微信关注

学刊吧微信公众号二维码
关于我们
首页 > 学术论文库 > 理工论文 基于强化学习的自动驾驶联合训练方法论文

基于强化学习的自动驾驶联合训练方法论文

11

2024-05-29 10:11:19    来源:    作者:zhoudanni

摘要:自动驾驶控制算法对自动驾驶至关重要,为了设计适应多种环境更高效的自动驾驶控制算法,提出了基于强化学习的联合训练方法。自动驾驶控制算法应该在各种道路环境、各种天气环境、各种场景下都可以稳定的运行,因此通过人工智能的方法设计自动驾驶算法时必须要考虑到各种场景。基于TORCS仿真软件设计了基于强化学习的联合训练方法,包括使用神经网络拟合动作、状态空间,设置训练策略、奖励函数等机制。同时通过在不同环境下设置多个智能体进行强化学习训练,并设计了联合训练的算法,实现多个智能体在不同环境下进行联合训练,不同智能体共享相

  摘要:自动驾驶控制算法对自动驾驶至关重要,为了设计适应多种环境更高效的自动驾驶控制算法,提出了基于强化学习的联合训练方法。自动驾驶控制算法应该在各种道路环境、各种天气环境、各种场景下都可以稳定的运行,因此通过人工智能的方法设计自动驾驶算法时必须要考虑到各种场景。基于TORCS仿真软件设计了基于强化学习的联合训练方法,包括使用神经网络拟合动作、状态空间,设置训练策略、奖励函数等机制。同时通过在不同环境下设置多个智能体进行强化学习训练,并设计了联合训练的算法,实现多个智能体在不同环境下进行联合训练,不同智能体共享相互学习到的经验,提高了模型的泛化性。所设计的联合训练方法实现了多个强化学习智能体的联合训练,并通过了实验验证,达到了高效、稳定的训练策略。

  关键词:强化学习,自动驾驶,人工智能

  0引言

  随着人工智能技术的发展与社会的进步,自动驾驶技术已经进入到多个行业,如自动驾驶出租车、自动驾驶巴士、自动驾驶卡车、无人驾驶配货车等。自动驾驶技术有效促进了社会的发展,未来将会有更多自动驾驶技术应用在更多行业[1-2]。

  自动驾驶包含了多个领域的知识,软件算法是自动驾驶智能的核心。自动驾驶包含了感知、决策、规划、控制等算法模块,其中控制算法目前更多的是基于人类经验认知进行设计的。随着深度学习技术的发展,计算机越来越智能,从大量的人类驾驶控制数据中即可进行训练,自己学会如何控制车辆。然而深度学习的方法需要大量的数据来进行训练,现有深度学习训练方法普遍需要大量数据进行训练[3-5]。随着人工智能技术的发展,强化学习渐渐出现在了学术领域。强化学习可以通过在环境中自己进行不断尝试,自己去学习什么行为是正确的,什么行为是错误的,所以是不需要很多经验性的数据就可以自己进行训练。因此,通过合理的设置奖励或惩罚函数就可以训练一个会自己进行控制的强化学习模型[6-12]。

  由于正常交通道路路况复杂,有城市道路、乡村道路、山路、高速路等多种路形,且日常天气有晴、雨、雪等多种状况,因此交通环境是十分复杂的[13-14]。如何设计一个可以适应各种环境的模型,以在各种环境下都可以实现稳定的控制也是十分重要的。本文结合实际需求,设计了一种联合训练的方法。通过定义多个强化学习智能体,不同智能体在不同环境进行学习,学习的过程中共享各自的经验,以实现联合学习的效果,最终经过经验共享训练出来的模型可以实现在各种环境下稳定的运行。

  1强化学习训练架构设计

  强化学习模型需要5个重要参数:场景集合S、行为集合A、奖励函数R、衰减因子γ、探索率ε,在自动驾驶模型训练中还需要定义策略网络等[15-17]。下面将对本设计中如何设置参数、搭建模型进行详细阐述。

image.png

  1.1强化学习参数设计

  车辆在行驶中用来控制车辆的是方向盘、刹车、油门,因此在设计中采取的强化学习参数中,行为集合为加速、减速、转向。为了对车辆进行数字化控制,因此控制车辆动作的这些值全部进行了归一化。对于加速输出将由[0,1]进行表示,0表示不踩下油门,1表示油门全部踩下;减速也由[0,1]进行表示,0表示不踩下刹车,1表示刹车全部踩下;转向由[-1,+1]表示,-1表示方向盘完全转向右边,+1表示方向盘完全转向左边。为了更好地将输出动作进行归一化,因为输出的动作由神经网络输出,因此直接在神经网络的输出处采取相应的激活操作即可将输出值归一化到[0,+1]或[-1,+1]。

  自动驾驶车辆控制的理想状态是车辆开在道路中心,尽量不偏航,更不能撞到道路边缘。因此设置的奖励函数也是尽量促进车辆向前方开,减少往侧方向行驶。车速及偏角如图1所示,奖励函数为:

image.png

  1.2策略网络与策略目标函数设置

  自动驾驶模型会根据接收到的状态(车辆速度和车辆离道路边缘的距离等状态信息),判断下一步做什么即采取动作(刹车、加油门、左转、右转),因此是一种基于策略的学习,可设置策略网络为:

  πθ(s,a)=P[a|s,θ]      (2)

  智能体在训练时会自己尝试去驾驶,刚开始不知道如何进行驾驶,车辆会经常撞上道路边缘,并受到很大的惩罚。智能体在不断尝试的过程中会发现面对右边有障碍物时,只需要将方向往左转一点就不会撞上,此时智能体会得到一个奖励。于是学会了面对什么场景应该采取什么策略。智能体面对不同场景学到对应的策略,这个正确的策略就是策略目标函数。

  可见在整个过程中回报将促进智能体学会策略,因此将设置总回报函数为:

  Rt=rt+rt+1+rt+2+…+rn       (3)

  未来越久远的目标对当前的影响越小,因此在奖励函数内加入折扣因子,对久远的奖励进行弱化,未来的总折扣奖励就变成:

  Rt=rt+γrt+1+γ2 rt+2+…+γn−t rn        (4)

  式中:γ为折扣因子,取值为(0,1),当γ取0时代表不考虑未来的动作会获得多少回报,只考虑当前能获得多少,当γ取1时表示未来的回报完全考虑,当γ介于0到1之间,越大说明未来回报考虑得越多。

image.png

  1.3仿真环境设置

  TORCS是一款自动驾驶训练仿真器,非常适合进行强化学习训练。TORCS通过多种传感器描述汽车四周的一些状态和车辆自身的一些数据等信息[19]从而感知车辆环境。同时这些传感器还可以反馈当前的状态,如已经完成的驾驶距离,消耗的能源等,为制定强化学习奖励函数提供了很大的方便。TORCS仿真器中的车辆可以执行正常生活常见的加减速、转向等驾驶动作。

  该仿真环境有18种不同类型的传感器输入,共可采集29组数据。通过从仿真器获取29组数据进行实验后,发现车辆角度、车辆距道路距离、车辆距道路中轴线距离、车辆XYZ轴速度、车轮转速、发动机转速对实验影响最为明显,因此在算法中主要采取了以下数据进行反馈通信。
       1.4算法设计

  自动驾驶车辆输出的控制动作(刹车、油门、转向)都是连续的动作,同时环境的状态也都是连续的。因此设计中采用深度确定性策略梯度(Deep Deterministic Pol‐icy Gradient)算法进行训练[20]。深度确定性策略梯度是基于评判-演说家模型(图2)的,即设计2个神经网络:策略网络用来生成什么情境下采取什么行动,根据输入的情景,输出动作,来逼近策略模型π(a|s);评论网络使用价值目标函数评估策略的价值,根据输入的状态s,输出q(s,a),用来逼近值函数Q(s,a)。

image.png

  基于评判-演说家模型的深度确定性策略梯度算法中设计了如下的训练流程:

  模型训练流程如下:

image.png

  (1)从TORCS获取传感器输入信号;

  (2)将传感器得到的信号输入神经网络,神经网络输出动作数组;

  (3)网络通过深度确定性策略梯度算法不断进行迭代训练,使预期奖励最大化。

  2联合训练机制设计

  在某环境下训练的算法对该环境比较适应,更换环境以后模型就不一定可靠。比如在平坦道路上设计的模型,用在颠簸道路上,可能会以较高车速行驶。在晴天环境下设计的模型,在雨雪天气使用,可能会以晴天的驾驶方式进行控制,从而造成事故。因此为了提高训练的模型的稳定性、安全性,本设计加入了联合训练的方法,通过设置多个智能体在不同环境下进行训练,训练过程中共享经验,从而使最终设计的模型可以适应多种环境。

  在k种环境中定义k个智能体,训练过程中,每隔一定轮次计算出每个智能体的梯度:gk=∇Fk(wt),每个智能体在各自环境训练得到的平均梯度为wt,然后对这些梯度参数进行聚合并按照下式进行更新:

image.png

  每个环境下的智能体训练的模型称之为客户端模型。每个模型训练一定时间后,把各自的客户端模型上传到服务器,在服务器对不同模型的参数进行聚合,以实现将多种环境下驾驶经验进行共享。

image.png

  强化学习中一个非常重要的概念是经验回放(Expe‐rience Replay),经验回放是指训练的时候把在场景中得到的一些数据先存储起来,然后在后面的实验过程中再随机对存储的数据进行采样用来更新模型。

  经验回放最主要解决的问题是数据之间存在关联,例如智能体在学习自动驾驶的时候,模型在驾驶车辆进行训练时,每次从仿真器返回给智能体的数据都是车辆目前处于的环境状态,这些状态之间存在着强烈的关联性。经验回放就是通过将以前遇到的场景信息存储起来,后面再随机采样进行训练以打破训练数据之间的关联性。因此在本设计中会有一个经验回放池(Replay Buf‐fer),在智能体每执行一个动作后都会将(s,a,r,t,s2)以数组的形式存放到Buffer中,其中s为当前状态,a为采取的动作,r为获得的奖励,t为仿真器的终止信号,s2为下一状态。然后在每次训练的时候都会随机的在经验回放池中取出一些之前的数据进行训练,这样就不在存在前后场景连续影响训练的问题。

  把经验回放池设置为服务器端,这样就可以实现不同环境下的智能体将各自的经验在经验池进行共享,完成联合训练。该联合训练示意图如图3所示,不同智能体(Client)在各自环境进行训练,训练一定轮次将模型梯度上传到服务器(Server)进行经验共享。

image.png

  3实验验证

  训练中设置了2个智能体,分别在道路宽阔、弯道少、长度适中的环境(智能体A,环境CG1)和道路狭窄、弯道多、长度较长的城市环境(智能体B,环境CG3)进行训练,在设计中对2个模型的参数进行联合训练。经过实验验证,智能体A的模型在环境CG3中不能良好驾驶,智能体B的模型在环境CG1中不能良好驾驶,而智能A和B联合训练的智能体C在环境CG1、CG3下都可以很好的驾驶。

  在两种环境下联合训练,测试了联合训练得到的智能体C的“训练轮数-获得奖励”(图4)、“训练轮数-每轮交互次数、每轮最大Q值”(图5)的实验图。可以看到联合训练的智能体在刚开始不能很好地适应两种环境,到达一定轮次后(约400轮左右),智能体逐渐开始适应两种环境。轮次400~500轮左右,智能体处于学习阶段,不断尝试学习控制策略。由每轮次最大策略值Q可以看出,500~600轮次后,智能体已经学习到较好水平。

image.png

  图6是在不同环境下不同智能体策略值的统计。智能A在简单环境CG1中,车辆很快学会驾驶,但是CG1环境太简单,因此性能在逐渐训练过程中会被CG3环境下训练的模型赶超。而CG3由于环境较复杂,因此刚开始CG3环境中进行训练很难学会驾驶,但随着迭代轮次的增加,CG3慢慢学会驾驶,而且性能逐渐比CG1好。但从实验结果图还是可以看出,在CG1和CG3环境中进行联合训练,智能体可以很快学会很好的驾驶策略,随着轮次增加,联合训练的效果好于单一环境下的结果。

image.png

  4结束语

  本文设计了一种基于强化学习的联合训练方法。考虑到自动驾驶训练控制算法需要大量的数据,因此本文通过强化学习设置合理的训练参数定义智能体,让智能体自我探索学习如何进行自动驾驶控制。由于智能体在单一环境下只能学习到单一的驾驶策略,因此设计了一种联合训练方法,在不同环境下定义多个智能体,在不同环境下进行联合训练,共享各自学习经验,从而实现了基于强化学习的联合训练方法。经过实验验证,可以看出在单一环境下训练的智能体在其他环境中不能很好地驾驶,而通过联合训练的智能体在多种环境下都可以进行较好的驾驶。从而证明了本文设计的基于强化学习的联合训练方法的有效性。

  参考文献:

  [1]王洪升,曾连荪,田蔚风.人工智能在车辆自动驾驶中的应用[J].自动化技术与应用,2004(6):5-7,12.

  [2]晏欣炜,朱政泽,周奎,等.人工智能在汽车自动驾驶系统中的应用分析[J].湖北汽车工业学院学报,2018,32(1):40-46.

  [3]王科俊,赵彦东,邢向磊.深度学习在无人驾驶汽车领域应用的研究进展[J].智能系统学报,2018,13(1):55-69.

  [4]曾啸川,邓红卫,莫岚淋,等.基于TensorFlow深度学习自动驾驶小车的设计[J].数字技术与应用,2020,38(7):131-134.

  [6]王丙琛,司怀伟,谭国真.基于深度强化学习的自动驾驶车控制算法研究[J].郑州大学学报(工学版),2020,41(4):41-45,80.

  [7]朱敏慧.人工智能推进自动驾驶研发进程[J].汽车与配件,2018(20):38-39.

  [8]王宇霄,刘敬玉,李忠飞,等.基于强化学习与安全约束的自动驾驶决策方法[J].交通运输研究,2023,9(1):31-39,85.

  [9]舒子宸.一种强化学习与信息融合的人工智能自动驾驶系统:CN110764507A[P].2020.

  [10]韩向敏,鲍泓,梁军,等.一种基于深度强化学习的自适应巡航控制算法[J].计算机工程,2018,44(7):32-35,41.

  [11]扶文远.人工智能在车辆自动驾驶中的应用实践探索[J].交通科技与管理,2021(29):1-2.