一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于探索策略改进的TD3算法的自动驾驶车辆车道保持方法

2022-09-03 18:34:07 来源:中国专利 TAG:

基于探索策略改进的td3算法的自动驾驶车辆车道保持方法
技术领域
1.本发明属于深度强化学习和自动驾驶领域,具体涉及一种基于改进td3算法 的自动驾驶车辆车道保持方法。


背景技术:

2.自动驾驶汽车是一种具有自主驾驶能力的户外轮式移动机器人,大多数自动 驾驶汽车采用模块化系统,其核心功能可以概括为:感知、规划、决策和车辆控 制。模块化系统的优点是将具有挑战性的自动驾驶任务分解成一组更简单的问题, 但这种模块化设计使系统容易出现错误传播。近年来,端到端的结构开始作为模 块化方法的替代方案出现。在端到端驾驶中,车辆控制动作是根据传感器输入直 接计算输出的,与传统的模块化方法相比,该方法具有思想简单、环境信息感知 充分等优点。它可以综合环境信息和自动驾驶车辆信息,实现类似于人类驾驶的 行为。深度强化学习(drl)是深度学习(dl)和强化学习(rl)相结合的一种 主要实现端到端驱动的方法,其中rl是解决人工智能问题的一种非常常见的框 架,而dl不仅可以为rl带来端到端优化的便利,也使rl不再局限于低维空间, 极大地扩展了rl的应用范围。在实际应用中,根据无人驾驶车辆是否能够通过 与环境交互获得的数据预定义环境动态模型,将rl分为基于模型的rl和无模型 的rl。基于模型的rl将根据环境的动态模型来学习最优策略。如果模型能够准 确预测环境的动态变化,那么在输入一个状态和一个动作时,就不需要与环境进 行实时交互,可以直接预测新的状态和行动奖励,从而大大提高数据的利用率。 然而,当问题具有复杂的状态空间和动作空间时,准确估计环境动态模型是一个 很大的挑战,使用不准确的模型进行学习容易导致复合误差。无模型rl是指无 人驾驶车辆实时地与环境进行交互和探索,直接从所获得的经验数据中学习,最 终达到累积收益最大化或其他特定目标。
3.本发明主要研究自动驾驶中的车道保持任务,这是自动驾驶汽车完成其他复 杂任务的前提,如果做得不好,可能会出现碰撞等安全问题。在过去的几年里, 许多学者对这个问题进行了深入的研究。他们使用的主要算法是深度确定性策略 梯度算法(ddpg),从他们的实验结果来看,ddpg确实可以指导无人驾驶车辆完 成车道保持任务,但当我们进一步复现他们的实验时,发现存在如下问题:
4.(1)ddpg算法的收敛性很大程度上取决于超参数的设置,不好的超参数容 易导致算法不收敛,且算法最终的表现性不佳,具体表现为由dppg算法指导的 无人驾驶车辆在进行车道保持任务时,左摇右摆,就像酒驾一样,尽管完成了任 务,但是却有很大的安全隐患。
5.(2)ddpg是一种确定性策略算法,每次只输出一个确定的单一动作,但无 模型算法的本质决定了它需要通过探索环境来学习最优策略。因此,我们通常采 用直接在输出动作中加入随机噪声的方法来帮助无人驾驶车辆探索。常用的噪声 有高斯噪声和ou噪声,这些噪声都是基于算法输出的动作形成的。在训练初始 阶段,算法中的网络结构不完善,输出的动作不可靠,噪声的初始权重又大,在 这种情况下,无人驾驶车辆会做很多无效的探
索,这大大降低了训练效率。


技术实现要素:

6.发明目的:本发明提出提出一种基于探索策略改进的td3算法的自动驾驶车 辆车道保持方法,改善了无人驾驶车辆与环境交互过程中获得的训练样本的质量, 提升了算法的表现性能;使自动驾驶车辆的探索趋向于正确的方向。
7.技术方案:本发明提供了一种基于探索策略改进的td3算法的自动驾驶车辆 车道保持方法,包括以下步骤:
8.(1)对自动驾驶智能控制任务中的决策控制问题进行抽象与提炼,并结合 深度强化学习算法,将任务中的自动驾驶车辆控制描述为无模型的马尔科夫决策 过程;
9.(2)基于双延迟深度确定性策略梯度算法,实现对输入的自动驾驶车辆状 态及其传感器信息进行计算,输出具体动作,实时控制车辆行动;
10.(3)在双延迟深度确定性策略梯度算法训练阶段,为充分探索状态空间, 使用奥恩斯坦-乌伦贝克过程为双延迟深度确定性策略梯度算法输出的动作添加 噪声,并基于路径追踪方法对奥恩斯坦-乌伦贝克过程噪声进行加权修正,实现 减少自动驾驶车辆在训练过程中的无效勘探;
11.(4)在torcs仿真平台上进行大量实验,自动驾驶车辆由探索策略改进的 双延迟深度确定性策略梯度算法指导,通过与环境进行交互收集大量训练数据, 并利用这些数据进行学习,对算法进行更新,最终收敛至最优策略。
12.进一步地,所述步骤(2)实现过程如下:
13.td3算法中有六个网络,分别是actor网络,critic1网络_1,cirtic2网 络_2,actor目标网络,critic目标网络_1以及critic2目标网络_2;其中, actor网络是策略网络,它接收[自动驾驶车辆的状态]作为输入,输出[对车辆 的控制动作];critic网络是评价网络,以[车辆状态,actor网络生成的动作] 作为输入,输出[actor网络生成的动作的价值],用来对actor网络进行评估。
[0014]
进一步地,步骤(3)所述路径追踪方法为:
[0015]
对于自动驾驶中的车道保持任务,td3算法接收无人驾驶车辆状态作为输入, 输出转向、加速和制动三个动作;在算法训练阶段,为了充分探索状态空间,使 用ou过程为td3算法输出的动作添加噪声,自动驾驶车辆的探索策略表示为:
[0016]at
=μ(s
t
|θ) n
t
[0017]
其中,μ(s
t
|θ)为td3算法输出的策略动作,是一个三维向量:[steer,accel, brake],n
t
为ou过程产生的噪声,也是一个三维向量:[steer_noise, accel_noise,brake_noise];
[0018]
基于路径追踪方法对ou过程产生的动作噪声进行加权修正,在考虑车辆速 度的同时,最小化车辆方向和道路轴线之间的角度并缩短车辆质心和道路中 心线之间的距离trackpos,由路径追踪方法给出的转向控制动作为:
[0019][0020]
其中,η1,η2,η3是比例系数。
[0021]
进一步地,步骤(3)所述基于路径追踪方法对奥恩斯坦-乌伦贝克过程噪声 进行
加权修正过程如下:
[0022]
对ou过程产生的转向噪声进行加权修正,以减少无人驾驶车辆的无效勘探:
[0023]
steer_noise=(1-ε)*steer_noise_ou ε*steer_action_pt,
[0024]
其中,ε的初始值为0.5,并且在训练过程中逐渐减小,当训练步数达到 100000步时,减小为0;对转向噪声进行加权修正后,无人驾驶车辆执行的转向 动作为:
[0025]
steer=original_steer steer_noise
[0026]
其中,original_steer为actor网络输出的原始转向动作。
[0027]
进一步地,所述步骤(4)包括以下步骤:
[0028]
1)首先初始化actor网络π
θ
,critic网络_1critic网络_2actor 目标网络critic目标网络_1critic目标网络_2以及初始化经 验回放池d;开始进行第k轮仿真(1≤k≤m),其中m是设置的最大仿真轮数;
[0029]
2)初始化状态s
t

[0030]
3)开始第k轮仿真中的第t个时间步(1≤t≤t),其中t是设置的一轮仿 真的最大时间步数;
[0031]
4)将自动驾驶车辆状态输入actor网络和路径追踪算法,得到td3算法输 出的原始动作original_a
t
和路径追踪算法输出的转向动作steering_action_pt;
[0032]
5)将动作original_a
t
输入ou过程,输出ou噪声n
t

[0033]
6)将steering_action_pt和n
t
相结合生成加权修正的噪声n
t
';
[0034]
7)生成最终执行的动作a
t
=μ
θ
(s
t
) n
t
';
[0035]
8)执行该动作a
t
,得到奖励r
t
,并进入下一状态s
t
';
[0036]
9)将元组(s
t
,a
t
,r
t
,s
t
')存入经验回放池d;
[0037]
10)如果经验回放池d中有足够多的数据,则采样n条数据(s,a,r,s');
[0038]
11)用actor目标网络生成状态s'下的动作: 其中是actor目标网络输出 的动作,ε~normal(0,σ)是为了提高算法鲁棒性,添加到上的基于正态 分布的噪声,σ是正态分布的协方差,而clip(ε,-c,c)是用于对噪声进行裁剪, 经过clip函数裁剪后的噪声范围在(-c,c)之间;
[0039]
12)计算更新目标:其中γ是折扣因子,是critic目标网络生成的动作价值;
[0040]
13)更新critic网络的参数:
[0041]
14)每两个时间步使用梯度上升法更新一次actor网络的参数: 同时更新三个目标网络的参数: θ-←
τθ (1-τ)θ,其中τ是滑动平滑更新的参数;
[0042]
15)一个时间步结束,返回步骤(3)进行下一个时间步;
[0043]
16)一轮仿真结束,返回步骤(1)进行下一轮仿真,直至仿真轮数k到达 设置的上
限m结束。
[0044]
有益效果:与现有技术相比,本发明的有益效果:本发明提出的改进的td3 算法降低了算法对超参数的敏感程度,使算法训练过程更加稳定,且算法表现性 更佳;使无人驾驶车辆训练过程中的探索偏向于正确的方向,不仅提高了训练效 率,还改善了无人驾驶车辆与环境交互过程中获得的训练样本的质量,从而进一 步提升了算法的表现性能;使自动驾驶车辆的探索趋向于正确的方向。
附图说明
[0045]
图1为本发明中提出的探索策略改进的td3算法框架示意图;
[0046]
图2为td3算法示意图;
[0047]
图3为传统路径追踪方法示意图;
[0048]
图4为动作噪声加权修正示意图。
具体实施方式
[0049]
下面结合附图对本发明做进一步详细说明。
[0050]
本发明提出一种基于探索策略改进的td3算法的自动驾驶车辆车道保持方法, 具体包括以下步骤:
[0051]
步骤1:对自动驾驶智能控制任务中的决策控制问题进行抽象与提炼,并结 合深度强化学习算法,将任务中的自动驾驶车辆控制描述为无模型的马尔科夫决 策过程。
[0052]
步骤2:基于双延迟深度确定性策略梯度算法(td3),实现对输入的自动 驾驶车辆状态及其传感器信息进行计算,输出具体动作,实时控制车辆行动。
[0053]
td3算法中有六个网络,分别是actor网络,critic1网络_1,cirtic2网 络_2,actor目标网络,critic目标网络_1以及critic2目标网络_2,如图2 所示。其中,actor网络是策略网络,它接收[自动驾驶车辆的状态]作为输入, 输出[对车辆的控制动作];critic网络是评价网络,以[车辆状态,actor网络 生成的动作]作为输入,输出[actor网络生成的动作的价值],用来对actor网 络进行评估,特别地,使用两个critic网络可以有效避免对动作价值的高估; 而三个target网络则是为了联合输出算法的更新目标。actor网络参数每两步 更新一次,这种方法减小了动作价值函数的方差。
[0054]
步骤3:在双延迟深度确定性策略梯度算法训练阶段,为充分探索状态空间, 使用奥恩斯坦-乌伦贝克过程为双延迟深度确定性策略梯度算法输出的动作添加 噪声,并基于路径追踪方法对奥恩斯坦-乌伦贝克过程(ou过程)噪声进行加权 修正,实现减少自动驾驶车辆在训练过程中的无效勘探。
[0055]
对于自动驾驶中的车道保持任务,td3算法接收无人驾驶车辆状态作为输入, 输出转向、加速和制动三个动作。在算法训练阶段,为了充分探索状态空间,使 用ou过程为td3算法输出的动作添加噪声,自动驾驶车辆的探索策略可以表示 为:
[0056]at
=μ(s
t
|θ) n
t
[0057]
其中,μ(s
t
|θ)为td3算法输出的策略动作,是一个三维向量:[steer,accel, brake],n
t
为ou过程产生的噪声,也是一个三维向量:[steer_noise, accel_noise,brake_noise]。
[0058]
但是噪声的权重初始值较大,且随机性强,使得无人驾驶车辆在训练初期常 常做出一些不合理的行为,本发明基于路径追踪方法对ou过程产生的动作噪声 进行加权修正,实现减少自动驾驶车辆在训练过程中的无效勘探:路径追踪方法 如图3所示,其目标是在考虑车辆速度的同时,最小化车辆方向和道路轴线之间 的角度并缩短车辆质心和道路中心线之间的距离trackpos,由路径追踪方法 给出的转向控制动作为:
[0059][0060]
其中,η1,η2,η3是比例系数,确定方式为:假设车辆处于道路边缘,速 度方向垂直于道路轴线,且车速为100km/h,在这种极限工况下,转向控制动作 的大小为0.3,并且η1*trackpos和的值相等。
[0061]
如图4所示,加权修正的噪声利用路径追踪方法产生的转向动作,对ou过 程产生的转向噪声进行加权修正(加速噪声和制动噪声不变),以减少无人驾驶 车辆的无效勘探:
[0062]
steer_noise=(1-ε)*steer_noise_ou ε*steer_action_pt
[0063]
其中,ε的初始值为0.5,并且在训练过程中逐渐减小,当训练步数达到 100000步时,减小为0。对转向噪声进行加权修正后,无人驾驶车辆执行的转向 动作为:
[0064]
steer=original_steer steer_noise
[0065]
其中,original_steer为actor网络输出的原始转向动作。
[0066]
步骤4:在torcs仿真平台上进行大量实验,自动驾驶车辆由探索策略改进 的双延迟深度确定性策略梯度算法指导,通过与环境进行交互收集大量训练数据, 并利用这些数据进行学习,对算法进行更新,最终收敛至最优策略。
[0067]
如图1所示为探索策略改进的td3算法(exploration strategyimproved td3) 的基本框架,算法流程及具体实现步骤描述如下:
[0068]
首先初始化actor网络π
θ
,critic网络_1critic网络_2actor 目标网络critic目标网络_1critic目标网络_2以及初始化经 验回放池d。
[0069]
步骤(1):开始进行第k轮仿真(1≤k≤m),其中m是设置的最大仿真轮 数;
[0070]
步骤(2):初始化状态s
t

[0071]
步骤(3):开始第k轮仿真中的第t个时间步(1≤t≤t),其中t是设置 的一轮仿真的最大时间步数;
[0072]
步骤(4):将自动驾驶车辆状态输入actor网络和路径追踪算法,得到td3 算法输出的原始动作original_a
t
和路径追踪算法输出的转向动作 steering_action_pt;
[0073]
步骤(5):将动作original_a
t
输入ou过程,输出ou噪声n
t

[0074]
步骤(6):将steering_action_pt和n
t
相结合生成加权修正的噪声n
t
';
[0075]
步骤(7):生成最终执行的动作a
t
=μ
θ
(s
t
) n
t
';
[0076]
步骤(8):执行该动作a
t
,得到奖励r
t
,并进入下一状态s
t
';
[0077]
步骤(9):将元组(s
t
,a
t
,r
t
,s
t
')存入经验回放池d;
[0078]
步骤(10):如果经验回放池d中有足够多的数据,则采样n条数据(s,a,r,s');
[0079]
步骤(11):用actor目标网络生成状态s'下的动作: ε~normal(0,σ);其中是actor目标网络输出 的动作,ε~normal(0,σ)是为了提高算
法鲁棒性,添加到上的基于正态 分布的噪声,σ是正态分布的协方差,而clip(ε,-c,c)是用于对噪声进行裁剪, 经过clip函数裁剪后的噪声范围在(-c,c)之间;
[0080]
步骤(12):计算更新目标:其中γ是折扣因 子,是critic目标网络生成的动作价值;
[0081]
步骤(13):更新critic网络的参数:
[0082]
步骤(14):每两个时间步使用梯度上升法更新一次actor网络的参数: 同时更新三个目标网络的参数: θ-←
τθ (1-τ)θ,其中τ是滑动平滑更新的参数;
[0083]
步骤(15):一个时间步结束,返回步骤(3)进行下一个时间步;
[0084]
步骤(16):一轮仿真结束,返回步骤(1)进行下一轮仿真,直至仿真轮 数k到达设置的上限m结束。
[0085]
本发明为了解决ddpg算法对超参数敏感,导致最终训练得到的策略表现 性不佳的问题,将ddpg算法改进为双延迟确定性策略梯度算法。td3采用了 double q-learning的价值网络结构,通过选择一对价值网络之间的最小值来限制 高估,并通过延迟更新策略网络以减少每次更新的误差来进一步提高算法性能。 为了解决无人驾驶车辆在训练初期进行大量无效探索,导致训练效率低下的问题, 我们提出探索策略改进的td3算法,在该算法中,我们结合传统的路径跟踪方 法对探索策略中的动作噪声进行加权修正,使无人驾驶车辆的探索趋向于正确的 方向。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献