经典文献阅读之--RLAD(城市环境中自动驾驶从像素进行强化学习)

news2024/12/23 19:03:44

0. 简介

强化学习在自动驾驶中的应用已经日渐普及,虽然由于一些伦理问题,目前真正的使用这种强化学习的还不是很多,但是目前已经有很多应用在自动驾驶中的强化学习的工作,但是我们发现这类方法基本都是将卷积编码器与策略网络一起训练,然而,这种范式将导致环境表示与下游任务不一致,从而可能导致次优的性能。而《RLAD: Reinforcement Learning from Pixels for Autonomous Driving in Urban Environments》一文提出了若干技术来增强RLfP算法在该领域的性能,包括:i)利用图像增强和自适应局部信号混合(A-LIX)层的图像编码器;ii)WayConv1D是一种路径点编码器,其使用1D卷积来利用路径点的2D几何信息;iii)辅助损失来增加交通信号灯在环境的隐层表示中的重要性。下面我们来详细看一下。


1. 主要贡献

本文的主要贡献总结如下:

1)本文提出了RLAD,这是首个在基于视觉的城市自动驾驶(AD)领域中使用增强学习(RL)同时学习编码器和驾驶策略网络的方法。本文还表明RLAD在该领域中显著优于所有最先进的RLfP方法;

2)本文引入了一种图像编码器,该编码器利用图像增强和自适应局部信号混合(ALIX)层来最小化编码器的严重过拟合

3)本文提出了WayConv1D,它是一种路径点编码器,使用2x2内核的1D卷积来利用路径点的2D几何信息,这显著提高了驾驶的稳定性

4)本文对基于视觉的城市自动驾驶(AD)领域中最先进的RLfP进行了全面的分析,其中我们表明主要的挑战之一为遵守交通信号灯。为了解决这一限制,在图像的隐层表示中加入专门针对交通信号灯信息的辅助损失,从而增强了其重要性。

2. RLAD综述

RLAD是首个应用于城市自动驾驶领域的RLfP方法。其主要目的是从传感器数据中推导出一个与驾驶任务完全对齐的特征表示,同时学习驾驶策略。RLAD的核心基于DrQ [11]构建,但进行了几处修改。首先,在图像增强的基础上,我们还在图像编码器的每个卷积层末尾添加了一个正则化层,称为自适应局部信号混合(ALIX)[12](更多细节见第4节),这显著提高了训练的稳定性和效率。其次,我们对最佳超参数进行了广泛研究,发现DrQ的某些超参数并不适用于AD领域。最后,我们使用了额外的交通信号灯分类损失,以指导图像的潜在表示( i ‾ \overline{i} i)包含有关交通信号灯的信息。

3. 学习环境

学习环境被定义为部分可观察的马尔可夫决策过程(POMDP)。该环境是通过使用CARLA驾驶模拟器(版本0.9.10.1)[27]构建的。 a)状态空间: S S S由CARLA定义,包含有关世界的真实信息。代理无法访问环境状态。

b)观察空间:在每个步骤中,状态 s t ∈ S s_t ∈ S stS生成相应的观察 o t ∈ O o_t ∈ O otO,并传递给代理。一个观察是最后K个时间步长的 K = 3 K = 3 K=3个张量集的堆叠。具体来说, o t = { ( I , W , V ) k } k = 0 2 o_t = \{(I,W,V)_k\}^2_{k=0} ot={(IWV)k}k=02,其中: I I I是一个3×256×256的图像, W W W对应于与车辆相关的2D坐标,用于从CARLA提供的全局规划器中提供的下一个 N = 10 N = 10 N=10个路标, V V V对应于包含当前速度和车辆转向的二维向量。

c)动作空间: A A A由三个连续动作组成:油门,范围从0到1;刹车,范围从0到1;和转向,范围从-1到1。

d)奖励函数:我们使用[28]中定义的奖励函数,因为已经证明它可以准确地指导AD训练。

e)训练:我们以10 FPS的速度使用CARLA。类似于[28],在每个场景的开始,起始和目标位置是随机生成的,并使用全局规划器计算所需的路线。当到达目标位置时,会计算一个新的随机目标位置。如果满足以下任何条件之一,则终止该场景:碰撞、闯红灯、阻塞或达到预定义的超时。

4. 代理架构(重点内容)

RLAD的架构如图1所示。一般来说,我们的系统有三个主要组件:编码器(第4.1节),强化学习算法(第4.2节)和辅助损失(第4.3节)。为了简化纵向控制并确保平稳控制,我们重新参数化节流阀和刹车指令,使用目标速度。因此,在actor网络的末端附加了一个PID控制器,它产生相应的节流阀和刹车指令,以匹配预测的目标速度。

在这里插入图片描述

图1. RLAD的架构。系统接收K个连续的中心图像、使用全局规划器计算的N个航点以及车辆在最近K个步骤中的测量作为输入。每个输入都由不同的编码器独立处理。然后将每个输入的潜在表示连接起来,形成SAC算法的输入 ( h ~ = i ~ w ~ v ~ ) (\tilde{h} =\tilde{i} \tilde{w} \tilde{v}) (h~=i~w~v~)。SAC的演员网络以及PID负责输出命令控制,而Q网络负责输出价值函数。为了指导 i ~ \tilde{i} i~包含关于交通信号灯的信息,我们添加了一个辅助分支来执行交通信号灯分类。神经网络的所有元素都以比例表示。虚线箭头提供了每个损失函数如何影响系统参数的可视化表示,在反向传播阶段。

4.1编码器:

编码器负责将传感器数据( o t o_t ot)转换为低维特征向量( h ‾ t \overline{h}_t ht),以供强化学习算法处理。

a)图像编码器:正如在[11]中展示的那样,图像编码器的大小是RLfP方法中的关键要素。由于RL损失的信号较弱,常用于AD方法的编码器,如ResNet50 [29](约25M参数)或Inception V3 [30](约27M参数),不可行。另一方面,针对较小复杂度场景设计的小型编码器,如IMPALA [31](约0.22M参数),无法产生足够准确的环境表示,从而限制了驾驶代理的性能。对于城市AD,我们的研究结果表明,最佳配置涉及大型网络和小型网络之间的权衡,大型网络不适合使用RL进行训练,而小型网络无法准确感知环境。所提出的图像编码器的架构如表I所示,包含约1M个参数。与DrQ和DrQ-V2类似,我们利用简单的图像增强技术来规范化价值函数[11],[25]。首先,我们对256×256图像的每一侧应用填充,重复8个边界像素,然后选择256×256的随机裁剪。与[25]一样,我们发现在裁剪的图像上应用双线性插值很有用。除了图像增强技术之外,我们还发现,在每个卷积层的末端附加A-LIX层[12]可以提高代理的性能,可能是通过防止一种称为灾难性自我过拟合的现象(导致反向传播中梯度不连续的空间不一致的特征图)来实现的。A-LIX应用于卷积层产生的特征 a ∈ R C × H × W a ∈ \mathbb{R}^{C×H×W} aRC×H×W,随机混合每个组件 a c i j a_{cij} acij与属于同一特征图的其邻居。因此,A-LIX的输出与输入具有相同的维度,但不同之处在于计算图最小程度地干扰每个特征 a c i j a_{cij} acij的信息,同时在反向传播期间平滑不连续的梯度信号的组件。因此,该技术的工作原理是强制图像编码器生成具有空间一致性的特征图,从而最小化灾难性的自我过拟合现象的影响。这个过程可以简洁地总结为 i ‾ t = f i ( a u g ( [ { I t − k } k = 0 2 ] ) ) \overline{i}_t = f_i(aug([\{I_{t−k}\}^2_{k=0}])) it=fi(aug([{Itk}k=02])),其中 f i f_i fi 是图像编码器,aug 对应于应用的数据增强,而 i ‾ t \overline{i}_t it 对应于三个连续图像 ( { I t − k } k = 0 2 ) (\{I_{t−k}\}^2_{k=0}) ({Itk}k=02)的潜在表示。

在这里插入图片描述

所提出的图像编码器的架构。在每个卷积层之后,我们应用了RELU函数[32]和A-LIX正则化层[12]。

b) Waypoint Encoder: 通常,waypoint编码器由使用当前agent姿态和下一个 N N N 个waypoints [9]之间的平均方向,或将waypoints的2D坐标展平为向量并应用MLP [33]组成。在我们看来,两种方法都有严重的局限性。前一种方法通过将所有waypoint坐标编码为单个值,明显过于简化问题。这种方法仅适用于较小的N值,因为随着 N N N的增加,waypoints变得更加分散,因此平均方向不再是可靠的指标。虽然后一种方法适用于所有 N N N值,但通过将2D waypoint坐标展平为向量,未使用2D几何信息。为了克服这两个局限性,我们提出了WayConv1D,一种waypoint编码器,它通过在下一个N个waypoints的2D坐标上应用2×2内核的1D卷积来利用输入的2D几何结构。 1D卷积的输出然后被展平并通过MLP进行处理。这个过程可以总结为 w ~ t = f w ( W t ) \tilde{w}_t = f_w(W_t) w~t=fw(Wt),其中 f w f_w fw对应于WayConv1D, w ~ t \tilde{w}_t w~t对应于当前步骤( W t W_t Wt)的waypoints的潜在表示。我们发现,使用WayConv1D,agent学习更有效地跟随轨迹,而不会在车道中心附近振荡。这是在城市AD领域中利用RL时遇到的常见问题,正如在以前的研究中所记录的[6],[28]。

c)车辆测量编码器:与[33]类似,我们对车辆测量应用一个多层感知器(MLP): v ~ t = f v ( [ { V t − k } k = 0 2 ] ) \tilde{v}_t = f_v([\{V_{t−k}\}^2_{k=0}]) v~t=fv([{Vtk}k=02]),其中 f v f_v fv是MLP, v ~ t \tilde{v}_t v~t对应于车辆测量在三个步骤中的串联的潜在表示 ( [ { V t − k } k = 0 2 ] ) ([\{V_{t−k}\}^2_{k=0}]) ([{Vtk}k=02])

4.2 强化学习算法

…详情请参照古月居

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1162098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

平面波向球面波的展开

平面波向球面波的展开是一个极其重要的话题 手稿放在文章的结尾处 勒让德展开 citation 1: 我们整理一下,对exp(x)做泰勒展开,得 citation 2: 我们先把精力集中到解决这个积分上去 反复利用分部积分 考虑到奇偶性问题 当且仅当时积分不为零现在做变换 …

Faraday库

require faraday# 创建Faraday对象,使用作为代理服务器 proxy_host huake proxy_port 1111 faraday Faraday.new(:proxy > { :host > proxy_host, :port > proxy_port })# 使用Faraday对象发送GET请求到https://www.dianping.com/ response faraday.get…

Observability:使用 OpenTelemetry 手动检测 .NET 应用程序

作者:David Hope 在快节奏的软件开发领域,尤其是在云原生领域,DevOps 和 SRE 团队日益成为应用程序稳定性和增长的重要合作伙伴。 DevOps 工程师不断优化软件交付,而 SRE 团队则充当应用程序可靠性、可扩展性和顶级性能的管理者。…

Thinkphp漏洞总结

简介 ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。遵循Apache 2开源协议发布,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib&#xff…

华为认证H12-811题库

在VRP平台上,可以通过下面哪种方式返回到上一条历史命令?( ) A、Ctr1U B、Ctr1P C、左光标 D、上光标 试题答案:BD 试题解析:在VRP系统中,ctrlU为自定义快捷键,ct…

【Python3】【力扣题】219. 存在重复元素 II

【力扣题】题目描述: 【Python3】代码: 1、解题思路:哈希表。遍历每个元素,将元素及下标添加到字典,若当前元素已在字典中且下标之间距离k,则存在重复元素。 知识点:{}:创建空字典…

嵌入式自学路线大披露!!!

大家有没有想过这2个问题:1. 对于Linux做出来的产品,有些用作监控、有些做手机、有些做平板。那么内核启动后,挂载根文件系统后,应该启动哪一个应用程序呢? 答:内核不知道也不管应该启动哪一个用户程序。…

模拟AP打开ICS后仍然失败/模拟AP无法上网

MERCURY无线网卡客户端应用程序模拟AP无法上网的解决办法 确保ICS、防火墙都打开并设置为自动了 然后打开设备管理器,点击网络适配器,找到自己对应的网卡设备名字点击启用(在网络分享中心不小心点击禁用导致) 配置AP模式连接无线…

Talk| 卡耐基梅隆大学博士生徐梦迪:可泛化机器人学习-如何让机器人创造性地使用工具

本期为TechBeat人工智能社区第542期线上Talk! 北京时间11月01日(周三)20:00,卡耐基梅隆大学博士生—徐梦迪的Talk已准时在TechBeat人工智能社区开播! 她与大家分享的主题是: “可泛化机器人学习-如何让机器人创造性地使用工具”,她…

拓扑排序专题1 拓扑排序

题目: 样例: 输入 4 5 0 1 0 2 0 3 1 2 3 2 输出 0 1 3 2 思路: 拓扑序列含义 一个由图中所有点构成的序列 A 满足:对于图中的每条边 (x,y)(x,y), x 在 A 中都出现在 y 之前,则称 A 是该图的一个拓扑序列…

一种使用wireshark快速分析抓包文件amr音频流的思路方法

解决方案: 1. 使用wireshark过滤amr,并导出原始数据文件; 2.使用ue的二进制编辑模式,编辑该文件,添加amr头,6个字节数据“#!AMR”,字节数据为 23 21 41 4D 52 0A 3.修正格式:通过抓包发现&#…

JS加密/解密之jsjiami在线js加密的效率问题

故事背景 ​ 经常有客户反馈,v7加密的效率比v6低,但是安全性更好。这里我给大家科普一下关于jsjiami的优化诀窍。 示例源代码 // 伪代码 while (1) {var name ‘张三’ }优化后 var _name 张三; while (1) {var name _name }优化原理 相信很多朋…

17、Flink 之Table API: Table API 支持的操作(1)

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

Python Django 之模板语法详解

文章目录 1 准备1.1 目录结构图1.2 settings.py1.3 urls.py1.4 views.py1.5 templates 2 填充模板2.1 字符串2.2 列表2.3 字典2.4 嵌套 3 进阶3.1 判断语句3.2 循环语句 1 准备 1.1 目录结构图 创建 Django 项目,目录结构如下: 1.2 settings.py # Appl…

Nginx服务器安装证书并启用SSL(acme.sh)

前提 您已购置vps服务器,例如阿里云全球站ecs、AWS EC2、Azure VM、GCP Compute等安全组已开启80、443端口,且访问源设置为0.0.0.0/0域名已设置A记录指向当前操作服务器,若您使用aws ec2,有公有 IPv4 DNS,可供使用 安…

MySQL - 库的操作

目录 1.库的操作1.1创建数据库1.2创建数据库案例 2.字符集和校验规则3.操纵数据库4.备份和恢复5.查看连接情况 1.库的操作 1.1创建数据库 语法: CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specifica…

python小工具分享:优雅地实现进度条和系统通知

shigen坚持日更的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。坚持记录和分享从业两年以来的技术积累和思考,不断沉淀和成长。 趁着休息的空隙,研究了一下两个比较有意思的脚本,在日常的使用中很…

【Effective C++】条款45: 运用成员函数模板接受所有兼容的类型

假设有如下继承结构: class Top{}; class Middle: public Top{}; class Bottom: public Middle{};public继承意味着is-a关系,所有的基类都是派生类,但反之则不是,例如所有的学生都是人,但不是所有的人都是学生. 派生类到基类的指针可以直接隐式转换 Top* pt1 new Middle; T…

用自己的数据集训练YOLO-NAS目标检测器

YOLO-NAS 是 Deci 开发的一种新的最先进的目标检测模型。 在本指南中,我们将讨论什么是 YOLO-NAS 以及如何在自定义数据集上训练 YOLO-NAS 模型。 在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 -…

7+单细胞分析+预后模型构建+验证实验思路,干湿结合也能拿高分

今天给同学们分享一篇单细胞分析肿瘤预后模型构建验证实验思路的生信文章“Identification of a novel immune-related gene signature for prognosis and the tumor microenvironment in patients with uveal melanoma combining single-cell and bulk sequencing data”&…