2023/5/21周报

news2024/11/26 22:32:50

目录

摘要

论文阅读

1、标题和现存问题

2、各个结构

3、基于GNN-LSTM-CNN 网络轨迹预测模型

4、实验准备

5、实验结果

深度学习

1、费舍尔判别

2、步骤具体化

3、GCN

总结


摘要

本周在论文阅读上,阅读了一篇基于GNN-LSTM-CNN网络的6G车辆轨迹预测算法的论文。文章提出了一种三通道神经网络模型,使用LSTM提取车辆轨迹信息特征, 使用GNN提取不同车辆之间的交互特征,使用CNN提取车道结构特征。模型通过计算三通道特征向量的权重得到目标车辆预测的轨迹,经实验验证模型效果优秀。在深度学习上,对于费舍尔判别进行了学习,同时思考了下未来方向。

This week,in terms of thesis reading,perusaling a paper on a 6G vehicle trajectory prediction algorithm based on GNN-LSTM-CNN network.The article proposes a three channel neural network model.Using LSTM to extract vehicle trajectory information features, GNN to extract interaction features between different vehicles, and CNN to extract lane structure features.The model obtains the predicted trajectory of the target vehicle by calculating the weight of the three channel feature vectors.The model has been experimentally verified to have excellent performance.In deep learning, studying about Fisher's discriminant analysis and considering future directions

论文阅读

1、标题和现存问题

标题:基于GNN-LSTM-CNN网络的6G车辆轨迹预测算法

现存问题:轨迹预测的方法,主要分为三大类。分为基于物理模型的轨迹预测方法,基 于模式的轨迹预测方法,以及基于交互感知的轨迹预测方法。基于物理模型的预测方法没有考虑道路障碍物以及道路 车辆的影响,无法在道路拥挤的情况下准确预测目标车辆的轨迹。基于模式的方法忽略了道路环境以及道路车辆的影响。基于交互感知的方法感知周围车辆状态以及道路环境等因素后,根据道路车辆之间的互相影响以及道路环境对于车辆的约束来预测车辆的轨迹。

文章提出的解决方法:设计GNN-LSTM-CNN网络结构, 能够同时提取车辆之间交互状态信息、车道线信息以及目标车辆的轨迹信息做联合预测。通过图神经网络 提取车辆之间的交互关系,通过卷积神经网络来提取车道线信息,通过长短时记忆网络提取目标车辆轨迹 信息,根据权重预测目标车辆的轨迹。

2、各个结构

预测未来一段时间内车辆的轨迹:

 

本文采用编码器-解码器架构来处理目标车辆的轨迹序列生成问题。通过 LSTM 编码器对目标车辆以 及相关车辆的轨迹序列进行编码,通过图神经网络对车辆之间的交互关系进行编码,将两者编码的结果剪 切之后共同输入到LSTM 解码器中解析出目标车辆未来一段时间的轨迹。

LSTM 编解码器结构

长短期记忆神经网络是循环神经网络的一种结构,通过引入记忆门的方式来减小梯度消失问题,通过记忆门来实现各记忆细 胞信息的传递,有效的解决了时间序列预测中的长期依赖问题,长短期记忆网络结构有输出门,遗忘门以 及更新门三种。

 

车辆的历史轨迹与车辆的行驶特征密切相关,采用LSTM 编码器对车辆的历史轨迹进行特征提取,提 取出的特征向量,建立换道前后轨迹的联系,更加深入的分析车辆换道前的特征,生成轨迹序列。LSTM 编码器如下图所示:

 

有人驾驶车辆在换道决策执行时,会观察周围的道路情况与车辆情况,根据自身意图来进行换道决策。 有学者通过目标车辆的历史轨迹可以来预测车辆是否换道,但是预测的精度不足[20]。本文通过图神经网络 来提取目标车辆周围的车辆对目标车辆的影响,通过长短时记忆网络来提取目标车辆自身轨迹的特征,通 过环境特征向量来提取车道结构对轨迹的影响,最终将提取出的特征向量拼接作为轨迹预测的特征向量。

图神经网络

图神经网络(Graph Neural Network,GNN)是一种分布模型,通过图节点之间的消息交换来表示节点之 间的交互关系,其基于图域数据的特征提取和表示优势,可以更好的挖掘各个节点之间内在关联。交互影响模型如下图所示:

 

道路上的车辆的运动轨迹会受到其它交通参与者的影响。同一个时空下的车辆之间互相之间会影响彼 此的轨迹。如目标车辆左边车辆有车辆经过时,目标车辆无法向左变道。目标车辆可能会跟随前方车辆行 驶,或者左方车辆向目标车辆变道时目标车辆会减速。本文对高速公路场景下车辆的轨迹做特征提取,通 过计算目标车辆与周围车辆的相对速度、偏航角、加速度的差值来表征周围车辆与目标车辆的关系,作为 图结构中的边,同时将目标车辆与周围车辆轨迹的特征向量作为图结构的节点,来构建图神经网络的基本 结构。

卷积神经网络

文章设计了一个卷积神经网络,通过引入门限机制,从道路的俯视图 照片中提取道路特征,并且根据目标车辆当前的位置,选择该位置为中心的道路特征向量作为车辆轨迹预 测精度的影响因子之一。门限机制的作用在于目标车辆的轨迹大部分情况下受到周围车辆的影响占比比较 大,当目标车辆与目标车辆周围车辆交互特征向量的影响因子较大时,此时目标大概率是在道路中央,目 标车辆的形式轨迹与地图特征无关,因此该条件下停止对于地图特征向量的提取。

根据目标车辆在地图中的状态来选择对应的地图特征:

 

那么目标车辆i 在t 时刻是否受到地图 信息的影响可以表示为:

 

3、基于GNN-LSTM-CNN 网络轨迹预测模型

模型采用三通道数据处理方法来预测目标车辆的轨迹。分别是使用 GNN 通道提取车辆间交互信息、使 用 LSTM 通道提取目标车辆轨迹信息以及使用 CNN 通道提取车道结构特征。车辆间交互信息指的是同一 时空下车辆之间互相影响,如目标车辆的左前方车辆打出右转指示灯并且向右变道,目标车辆就会减速或 者向其它车辆变道或者当目标车辆后方有车辆超车时,目标车辆大概率减速等等。

 

本模型的输入相比于其它模型增加了地图模块,为:

在模型中,文章采用了有向图来表示车辆之间的交互作用,并且使用注意力机制来提取车辆之间 的交互特征。通过引入门限机制,来有选择性的引入地图信息。通过注意力机制来得到最终的LSTM 解码 器的输入特征,使用LSTM 解码器预测目标车辆的轨迹序列。

4、实验准备

数据集:NGSIM中的车辆轨迹数据

预处理过程中,为了保证数据的稳定性以及可靠性,文章只选取在中间五条车道的车辆轨迹数据, 且只选取发生变道的车辆的轨迹数据。且发生变道的时刻记录的帧数在第300 帧与第1900 帧之间。同时为 了保证确定变道,变道过程前后距离需要大于三米。经过以上预处理之后,筛选出总共370 个目标车辆的轨迹。

预测轨迹数据的解码器使用含 有64维隐藏状态的长短时记忆网络实现,交互编码器使用图注意力网络[31]来实现,使用三头注意力机制 来稳定训练过程。该模型经过140个epoch的训练,以最小化均方根误差的方式,使用Adam优化器,学习率为0.001。采用Multiprocessing对多个模型进行多核并行运算,以保证最短的程序运行时间。

文使用预测的轨迹序列与真实的轨迹序列之间的均方根误差(RMSE)来评估不同的模型,计算未来5秒内每个预测时间步的均方根误差。评估方式公式如下:

 

5、实验结果

对比模型:CNN-LSTM、GNN、MHA-LSTM[、CS-LSTM

 

相比于CNN-LSTM网络,轨迹预测在1s、2s、3s、4s、5s的预测轨 迹的均方误差分别提升10.9%、19.7%、31.2%、30.5、18.3%,可以说明图神经网络对于目标车辆与周围车 辆关系特征的提取优于卷积神经网络。对比单独只有 GNN的网络,预测的轨迹的均方误差分别提升3.3%、6.0%、9.7%、8.6%、13.9%。对比没有车道线信息的网络结构,本预测的轨迹的均方误差在5s时提升58%。

如下图,本文使用箱线图表示本模型的测试数据。从图中可以看出,本模型的测试误差主要集中 在箱体内,4s 时的绝大部分误差 1.5 米之内,每一个时刻误差的箱线图箱体比较集中,代表本模型预测的结果误差比较集中。

 

下表为三通道模型的消融实验的结果。通过删除三通道轨迹预测模型中的某一通道模块,观测其轨迹 预测精度效果。从表中可以看出,交互信息对于目标车辆的轨迹影响因素最大,不利用交互信息后轨迹预 测的误差增大最明显,说明交互信息对于轨迹预测精度影响较大。不利用车辆轨迹信息或车道线信息,均 方误差均有上升,说明本模型三种信息均对最终轨迹预测精度有一定作用。

 

不同模型复杂度分析:

 

文章所提出的模型参数数量与训练时间都有部分增加,因为使用的模型增加, 模型分析的数据量变大,使用三通道网络模型来增加轨迹预测的精度。总的来说,模型的计算成本开销有 部分增加,本模型提高了对车辆的计算能力的要求。

深度学习

1、费舍尔判别

费舍尔判别(Fisher's discriminant analysis),也称为线性判别分析(Linear Discriminant Analysis,LDA),是一种经典的模式识别和分类方法。

费舍尔判别旨在通过寻找投影变换,将数据从高维空间映射到低维空间,以实现数据的分类和降维。其核心思想是最大化类别间的差异性,同时最小化类别内的差异性。

具体来说,费舍尔判别分析的步骤如下:

  1. 数据准备:收集带有类别标签的训练数据集,其中每个样本都有一组特征向量和对应的类别标签。

  2. 计算类别均值向量:对于每个类别,计算其样本的均值向量,表示该类别在特征空间中的中心位置。

  3. 计算类别内散布矩阵:计算每个类别内的散布矩阵,用于度量类别内样本的离散程度。

  4. 计算类别间散布矩阵:计算类别之间的散布矩阵,用于度量不同类别之间的分离程度。

  5. 计算投影向量:通过求解广义特征值问题,计算投影向量,将高维数据映射到一维或更低维的空间。

  6. 判别阈值:根据投影后的数据,选择一个阈值将数据划分为不同的类别。

优点:

  1. 降维和分类一体化:费舍尔判别能够同时进行降维和分类,将高维数据映射到低维空间,并在映射后的空间中进行分类,从而减少了计算复杂度和存储空间。

  2. 最大化类别间差异:费舍尔判别通过最大化类别间的散布矩阵来增加类别之间的差异性,使得不同类别在映射空间中的分离度最大化,有助于提高分类性能。

  3. 数据可解释性:费舍尔判别所得到的投影向量具有较好的可解释性,可以解释为在低维空间中最能区分不同类别的方向或特征。

  4. 对噪声数据具有鲁棒性:费舍尔判别对数据中的噪声相对鲁棒,因为它考虑了整个类别的统计特性,而不仅仅是单个数据点。

缺点:

  1. 线性假设:费舍尔判别是基于线性假设的方法,适用于数据具有线性可分性的情况。当数据不满足线性分布假设时,费舍尔判别的性能可能下降。

  2. 类别均衡性:费舍尔判别对类别的分布和样本数目敏感,如果不同类别的样本数量差异较大,可能导致分类结果的偏倚。

  3. 特征独立性:费舍尔判别假设特征之间是相互独立的,这在实际应用中并不总是成立。如果特征之间存在相关性或依赖关系,费舍尔判别的效果可能受到影响。

  4. 高维数据处理:当输入数据维度非常高时,费舍尔判别可能面临维度灾难和计算复杂度增加的问题。因此,在高维数据的情况下,需要采取降维等方法来改善费舍尔判别的性能。

2、步骤具体化

  1. 计算每个类别的均值向量,表示在原始特征空间中每个类别的平均值。

  2. 计算类别内散布矩阵,度量类别内数据的变化程度。它通过计算每个类别内数据点与该类别均值之间的差异来得到。

  3. 计算类别间散布矩阵,度量类别之间的差异程度。它通过计算每个类别均值与整体均值之间的差异,并根据类别样本数量进行加权求和得到。

  4. 解决广义特征值问题,即计算类别内散布矩阵的逆矩阵乘以类别间散布矩阵的特征向量。

  5. 对特征向量进行排序,按照对应的特征值从大到小进行排序。

  6. 选择第一个特征向量作为投影向量,因为它对应的特征值是最大的,表示它包含了最大的类别间差异。

  7. 返回计算得到的投影向量和类别均值向量。

通过在低维空间中找到最佳的投影方向,它能够最大程度地区分不同类别的数据。

import numpy as np
​
def fisher_discriminant_analysis(X, y):
    # 计算类别均值向量
    class_means = []
    for label in np.unique(y):
        class_means.append(np.mean(X[y == label], axis=0))
    class_means = np.array(class_means)
​
    # 计算类别内散布矩阵
    within_class_scatter = np.zeros((X.shape[1], X.shape[1]))
    for label in np.unique(y):
        class_samples = X[y == label]
        class_mean = class_means[label]
        class_scatter = (class_samples - class_mean).T.dot(class_samples - class_mean)
        within_class_scatter += class_scatter
​
    # 计算类别间散布矩阵
    overall_mean = np.mean(X, axis=0)
    between_class_scatter = np.zeros((X.shape[1], X.shape[1]))
    for label in np.unique(y):
        class_mean = class_means[label]
        between_class_scatter += len(X[y == label]) * (class_mean - overall_mean).reshape(-1, 1) @ (class_mean - overall_mean).reshape(1, -1)
​
    # 计算广义特征值问题的解
    eigenvalues, eigenvectors = np.linalg.eig(np.linalg.inv(within_class_scatter) @ between_class_scatter)
​
    # 对特征向量进行排序
    sorted_indices = np.argsort(eigenvalues)[::-1]
    eigenvalues = eigenvalues[sorted_indices]
    eigenvectors = eigenvectors[:, sorted_indices]
​
    # 选择投影向量
    projection_vector = eigenvectors[:, 0]
​
    # 返回投影向量和类别均值向量
    return projection_vector, class_means
​
# 示例数据
X = np.array([[5.1, 3.5, 1.4, 0.2],
              [4.9, 3.0, 1.4, 0.2],
              [5.7, 2.8, 4.1, 1.3],
              [6.3, 3.3, 6.0, 2.5],
              [7.6, 3.0, 6.6, 2.1]])
y = np.array([0, 0, 1, 2, 2])
​
# 应用费舍尔判别
projection_vector, class_means = fisher_discriminant_analysis(X, y)
​
# 输出投影向量和类别均值向量
print("Projection Vector:")
print(projection_vector)
print("Class Means:")
print(class_means)
​

 

3、GCN

对于GCN部分,对于数据先进行整理,将每一个站点作为一个节点,每个站点内的数据作为节点的属性,将站点之间按实际道路连接起来,构成一张图,边上具有权重。权重设定进行随机初始化,由神经网络训练出来。在GCN的目的就是将其站点的联系给找出来,通过神经网络挖掘其内在的规律,并将其设定为参数的样子,传递给时序模型部分,在预测接下来的大气情况中,有更多重要的因素参与进来,提升模型的说服力。

总结

本周主要是处理课程上的事,对于学习方向学得比较少,这周结束,课程也基本结束了,接下来就可以把重心放在研究方向了,对于研究方向还是挺迷茫,一下想不到创新点,原因应该是相关论文看得比较少,下周开始计划先找一篇最新的综述来看,先做到彻底了解。

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

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

相关文章

git pull报没有足够内存 not enough memory for initialization

git clone 或 git pull 批量同步远程 git仓库代码时,报 没有足够内存用于初始化 not enough memory for initialization。经过观察 资源管理器 的内存使用情况,发现为 剩余可用内存不足造成的。加物理内存麻烦,可通过适当调整 分页文件&…

chatgpt赋能Python-pythoncom安装

Pythoncom安装指南 如果你是一位Python编程的爱好者或专业工程师,那么你可能会需要使用Pythoncom库。Pythoncom是Python与COM技术相互操作的重要组件,它可以帮助你实现各种Windows应用程序与Python之间的无缝集成。 什么是Pythoncom Pythoncom是Pytho…

电商项目9:新增商品

电商项目9:新增商品 1、前端1.1、修复前端组件通信问题1.2、引入其他前端代码1.3、会员等级列表1.4、当前分类关联的所有品牌 2、后端2.1、会员系统搭建(注册与发现)2.2、当前分类关联的所有品牌2.3、获取分类下所有分组&关联属性 1、前端…

网上书店管理系统

系列文章 任务46 网上书店管理系统 文章目录 系列文章一、实践目的与要求1、目的2、要求 二、课题任务三、总体设计1.存储结构及数据类型定义2.程序结构3.所实现的功能函数4、程序流程图 四、小组成员及分工五、 测试添加新的图书购买信息显示所有图书购买信息按购买编号查找图…

软件测试—Selenium01

软件测试—Selenium01 🔎自动化测试自动化测试的定义自动化测试的分类 🔎SeleniumSelenium 是什么Selenium 的特点Selenium 的原理Selenium Java 的环境搭建Selenium 中常用的 APIBy.cssSelector()By.xpath()By.cssSelector() 与 By.xpath() 的比较 &am…

C++编译和链接

目录 一、源代码的组织 ①头文件(*.h) ②源文件(*.cpp) ③主程序(main函数所在的程序) ④从源代码到可执行文件,编译的过程有三大步骤: 1)编译预处理 2&#xff09…

Python学习笔记——《吴恩达Machine Learning》线性回归例程

文章目录 案例背景线性回归(Loss Regression)梯度下降法(批量梯度下降算法——batch gradient descent)计算成本函数和梯度下降使用线性回归拟合训练数据模型预测 梯度下降效果可视化完整版demo 案例背景 详情参照吴恩达机器学习…

Linux/Windows安装Maven

一、Linux部署Maven 注意:必须先安装jdk,maven与jdk(java -version)版本会有对应关系 版本对应(必看!):http://maven.apache.org/docs/history.html 官方tar包下载地址:h…

因为一个Bug,差点损失了100w

大家好,我是洋子 最近在做单接口的性能测试比较多,在压测过程发现了一个比较有意思的问题,拿出来和大家分享一下 背景是这样的,最近在搞线上的抽奖活动,压测的对象是一个抽奖接口,主要的逻辑见程序的流程…

Spring ioc容器

Spring ioc容器 导入 spring 容器包 使用 ioc 容器之前,需要先导入 Spring 的包 在 spring maven中下载 spring maven 网址:Maven Repository: spring (mvnrepository.com) 搜索 spring 找到 Spring Web MVC点击 spring-webmvc 进入 选择一个版本号点击&#x…

Ocean Optics USB2000光谱仪无法在Win10系统运行

1、问题描述 USB2000型光谱仪,由于生产年代过于久远,虽然能被Win10系统识别,但是驱动程序安装完成后依然报错, 提示:该设备无法启动。(代码 10) 请求USB BOS 描述符失败。 运行SpectraSuite软件…

ETLCloud社区版与Kettle对比分析

ETLCloud社区版本与Kettle社区版本都有什么优势和劣势? Pentaho Data Integration(PDI),也称为Kettle,是一款开源的数据集成工具,国内有很多企业都选择kettle作为数据清洗工具。以下是kettle的主要特点和优势: 广泛的…

python 绘制箱型图一些技巧

引言 本篇是之前有一个需求,需要用python来画箱型图,但要求很多,所以我也不断再版,今天突然想起来这个东西可以总结一下,正好马上得思考下一步做啥了,有足够的空闲时间,所以准备把一些基础概念…

【笔试强训day48】顺时针打印矩阵、左右最值最大差

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: 笔试强训专栏 笔试强训 目录 文章目录 一、选择题 1.1 10.1.0.1/17的广播地址是( ) 1.2 网络地址172.16.22.38/28 请写出此地址的子网ID以及广播地址,此地址所处子网…

[2019“好贷杯“风控能力挑战赛一等奖] 基于神经网络算法的A股市场多因子选股的研究

本论文为 “2019年中国高校风险管理与控制能力挑战赛” 实际参赛作品,获得一等奖。 本论文体现了较好的数学建模思想和写作,所以将论文和完整代码进行了开源,方便与大家交流。

NetSuite SuiteTax之中国影响

这篇是还账。3个月前林师傅给的一个题目,陆陆续续的学习,一直没有弄完,直到今朝。 SuiteTax是2018年GA的一个重大功能,是NetSuite面向国际市场的一个标志动作。它将过去以美国为中心的税务功能,转向为国际市场服务。只…

xhs-xs webmsxyw分析

近期又更新了,先是改了x-s生成,然后又加上了a1校验。 后面可能会全参校验,比如再加上gid、deviceId、profileData、x-s-common、smidV2之类。 估计以后不能写xhs了,大家且看且珍惜吧。之前相关的文章都被下架了 危!…

C语言扫雷小游戏

扫雷小游戏 一,扫雷游戏的理解和整体思路1. 扫雷游戏的玩法2.写扫雷小游戏的整体思路 二,函数功能的实现模块1.宏定义2.打印菜单3.初始化雷盘4.打印雷盘5.布置雷6.玩家排雷6.1 显示该坐标有几个雷的函数6.2雷盘展开函数的实现 三.最终扫雷游戏的的实现1.…

AI绘画Stable Diffusion安装、使用教程 整合包下载

安装Stable Diffusion webui 效果图: 1.准备工作 在下载 AI 绘画工具前,电脑上需要提前下载一些运行的环境 1.下载python、git 首先本地机器最好是英伟达的 N 卡,并且至少需要 4GB 显存才能在本地运行,当然,A 卡也是…

微服务开发系列——第一篇:项目搭建(保姆级教程)

总概 A、技术栈 开发语言:Java 1.8数据库:MySQL、Redis、MongoDB、Elasticsearch微服务框架:Spring Cloud Alibaba微服务网关:Spring Cloud Gateway服务注册和配置中心:Nacos分布式事务:Seata链路追踪框架…