TRB 2024论文分享:基于生成对抗网络和Transformer模型的交通事件检测混合模型

TRBTransportation Research Board,美国交通研究委员会,简称TRB)会议是交通研究领域知名度最高学术会议之一,近年来的参会人数已经超过了2万名,是参与人数和国家最多的学术盛会。TRB会议几乎涵盖了交通领域的所有主题,主要包括公路、铁路、水运、航空、管道等诸多领域,接收来自交通系统、交通工程、交通政策、交通管理、交通实际操作、政府研究、学术研究和工业界最新的研究成果。TRB会议的论文反映了交通领域的研究前沿,具有广泛的参考价值。

本文主要介绍我们在交通领域被TRB 2024接收的关于交通事件检测的研究工作,论文的题为《A Hybrid Model for Traffic Incident Detection based on Generative Adversarial Networks and Transformer Model》,第一作者为陆新颖。交通事件检测是智能交通系统的核心任务之一,由于交通数据中大部分为无事件样本,有事件样本是少数,因此有事件样本和无事件样本的数目严重不平衡,此外,如何获取大规模交通数据集也是一个非常重大的挑战。为了解决上述问题,本文提出了一种结合Transformer和生成对抗网络(GANs)的混合模型。实验表明本文提出的混合模型既能够扩大数据集中有事件样本的数目,实现有事件样本与无事件样本的平衡,又能够全面提升交通事件检测的性能。

1. 背景与挑战

本文聚焦于交通事件检测,强调了在智能交通系统中交通事件检测的重要性。交通事件检测面临的挑战主要涉及获取大规模且平衡的数据集、传统算法的限制,以及深度学习模型对实际数据的依赖性。特别是数据集不平衡可能导致性能偏差。为解决这些问题,本文聚焦于严重不平衡与规模小的数据集情况,对交通事件检测任务进行一系列的探索主要涉及两个方面:

(1) 数据集小和样本不平衡问题

论文强调交通事件数据集普遍存在严重的样本不平衡问题,即有事件样本与无事件样本的比例严重失衡。这种不平衡可能导致模型在对事件样本的识别上表现不佳,因为模型更容易被训练为预测正常情况。

(2) 应用深度学习模型先进性

针对交通事件检测任务,论文倡导采用深度学习模型,特别是Transformer模型。深度学习模型相较于传统机器学习方法在处理复杂非线性关系上具有显著优势。

2. 方法

本文提出的基于GANs和Transformer的混合模型的整体架构如图1所示。GANs在解决输入模型中数据不平衡和样本不足的挑战中起着关键作用。另一方面,Transformer模型擅长有效捕捉全局上下文依赖,促进对输入序列语义含义的全面理解。这种混合模型的独特之处在于巧妙地利用GANs的对抗特性,不断训练和优化以生成可靠的新样本,从而丰富样本多样性并增加数据量。因此,训练后的模型表现出更强的性能,更适应在真实世界中遇到的复杂且不断变化的数据分布。此外,通过整合Transformer模型的特性,混合方法缓解了传统顺序模型常见的梯度消失或梯度爆炸等潜在问题。这种特性增强了模型在训练过程中的鲁棒性,并使其在处理长程依赖性方面表现出色。总之,所提出的混合模型巧妙地结合了GANs和Transformer的优势,有效解决了与数据集小和样本不平衡有关的挑战。此外,该模型在理解输入序列的语义信息和管理全局依赖性方面表现出色。这种融合使其成为一个在各种实际应用中具有巨大潜力的强大工具。

图1 本文模型的架构

3. 实验结果

实验使用的数据集包括PeMS数据集、I-880数据集、Whitemud Drive数据集、NGSIM数据集。交通事件检测算法的性能评价指标包括检测率(DR)、误报率(FAR)、分类正确率(CR)以及ROC曲线下的面积(AUC)。本文提出的混合模型将生成对抗模型与Transformer模型结合在一起,其中生成对抗模型负责将不平衡的数据集增强为平衡的数据集。为了验证在交通事件检测中平衡数据集的重要性,生成对抗模型被用于将四个数据集增强到不同的有事件与无事件样本的比例。然后,使用对比方法分别在原始数据集和不同比例的增强数据集上进行比较实验,旨在验证进行交通事件检测时平衡数据集的重要性。实验结果表明模型在平衡数据集上训练得到的模型具有更好的检测性能,尤其是在假阳率方面,可使之显著降低。实验结果还表明,本文提出的模型在交通事件检测的各指标上都有优越的表现。

4. 总结

本文提出的结合Transformer和生成对抗网络(GANs)的混合模型有效地解决了交通事件检测中数据集样本严重不平衡的问题,同时本文提出的混合模型也可用来扩充交通数据集的规模,实现通过算法来扩充数据样本的目标,从而可以节约交通数据采集的经济成本和时间成本。更为重要的是,本文提出的混合模型全面提升了交通事件检测的性能,有着良好的实际应用价值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux基础工具的使用(yum,vim,gcc,g++,gdb,make/makefile)【详解】

目录 linux软件包管理器-yum什么是软件包?查找软件包如何安装软件卸载软件 linux编辑器 - vimvim的基本概念vim模式之间的切换vim命令模式各命令汇总vim底行模式各命令汇总 Linux编译器 - gcc/ggcc/g的作用gcc/g选项预处理编译汇编链接静态库与动态库 Linux调试器 -…

Kafka生产消费流程

Kafka生产消费流程 1.Kafka一条消息发送和消费的流程图(非集群) 2.三种发送方式 准备工作 创建maven工程&#xff0c;引入依赖 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>3.3.1…

IPv6过渡技术---手动隧道

IPv6隧道 隧道(Tunnel)是一种封装技术。利用一种网络协议来传输另一种网络协议,即利用一种网络传输协议,将其他协议产生的数据报文封装在自身的报文中,然后在网络中传输。 隧道是一个虚拟的点对点的连接。一个Tunnel提供了一条使封装的数据报文能够传输的通路,并且在一个…

jmeter--4.参数化的方式

目录 1. 用户定义的变量 2. 用户参数 3. 函数助手 3.1 time获取当前时间 3.2 Random随机数 3.3 随机字符串函数 3.4 字符串变更为大写 4. CSV数据文件设置 5. 接口关联--正则和json等提取 1. 用户定义的变量 线程组->添加->配置元件->用户定义的变量 引用方…

codesys【程序】

FB&#xff1a; 用于实现 PLC【叠】PLC FB功能块&#xff1a; 包含 输入&#xff0c;输出&#xff0c;局部变量&#xff0c;静态变量 用ST语言&#xff0c;方便复制。FUNCTION_BLOCK FB_CAN轴 VAR_INPUT 输入 END_VAR VAR_OUTPUT 输出 END_VAR VAR …

STM32F103标准外设库—— 新建工程与库函数(四)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;V…

SpringBoot 启动优化实践!

背景 公司 SpringBoot 项目在日常开发过程中发现服务启动过程异常缓慢&#xff0c;常常需要 6-7 分钟才能暴露端口&#xff0c;严重降低开发效率。通过 SpringBoot 的 SpringApplicationRunListener 、BeanPostProcessor 原理和源码调试等手段排查发现&#xff0c;在 Bean 扫描…

Matlab并行编程之GPU

Matlab并行编程之GPU Matlab提供GPU上计算支持: 基础数据类型(gpuArray和对应API),支持GPU计算的内置函数和多个工具包,支持PTX内核对象加载,支持MEX函数使用CUDA C/C开发等。对大规模数据处理&#xff0c;复杂计算&#xff0c;利用GPU计算能提供显著的性能加速效果. Matlab同…

快速折返的 cd和alias

文章目录 快速折返的 cd和alias更多信息 快速折返的 cd和alias ​ 有没有碰到这个痛点&#xff0c;一直需要cd ..&#xff0c;如此这番&#xff0c;好多次&#xff0c;那么此时就可以通过结合cd和alias的强大结合&#xff0c;快速折返&#xff0c;如下&#xff1a;在一个多级的…

Django教程第5章 | Web开发实战-数据统计图表(echarts、highchart)

专栏系列&#xff1a;Django学习教程 前言 highchart&#xff0c;国外。 echarts&#xff0c;国内。 本项目集成 hightchart和echarts图表库实现数据统计功能。 包括&#xff1a;折线图&#xff0c;柱状图&#xff0c;饼图和数据集图。 效果图 echats Highcharts 源代码…

Ubuntu系统安装(如何在虚拟机下安装Ubuntu系统)

前言 Linux 的开发需要在 Linux 系统下进行&#xff0c;这就要求我们的 PC 主机安装 Linux 系统。我会在这篇文章中分享我如何安装虚拟机&#xff0c;以及我在虚拟机下安装Ubuntu系统。相信我的分享一定会给你带来帮助。 目录 前言 一、安装虚拟机软件 二、创建虚拟机 三、…

说清楚Kubernetes、Docker、Dockershim、Containerd、runC、CRI、OCI的关系

Kubernetes v1.20版本 的 release note 里说 deprecated docker。并且在后续版本 v1.24 正式删除了 dockershim 组件&#xff0c;这对我们有什么影响呢&#xff1f;Kubernetes 1.20: The Raddest Release | Kubernetes 为了搞明白这件事情&#xff0c;以及理解一系列容器名词 …

Android 11以上根据package name查询应用是否安装,Koltin

Android 11以上根据package name查询应用是否安装&#xff0c;Koltin Android 11和过去较早Android版本不同&#xff0c;需要在Androidmanifest.xml里面配置<queries>属性&#xff1a; <manifest xmlns:android"http://schemas.android.com/apk/res/android&quo…

Linux 内核大转变:是否将迈入现代 C++ 的时代?

Linux开发者 H. Peter Anvin 在邮件列表中重启了关于 Linux内核C代码转换为C的讨论&#xff0c;并陈述了自己的观点。说之前先看一下这个话题的历史背景。 早在2018年4月1日&#xff0c;Andrew Pinski提议将 Linux 内核源码转为 C&#xff0c;在文中写道之所以引入是由于以下优…

Hive使用shell调用命令行特殊字符处理

1.场景分析 数据处理常用hive -e的方式&#xff0c;通过脚本操作数仓&#xff0c;过程中常常遇到特殊字符的处理&#xff0c;如单双引号、反斜杠、换行符等&#xff0c;现将特殊字符用法总结使用如下&#xff0c;可直接引用&#xff0c;避免自行测试的繁琐。 2.特殊字符处理 …

使用 Python 数据写入 Excel 工作表

在数据处理和报告生成等工作中&#xff0c;Excel 表格是一种常见且广泛使用的工具。然而&#xff0c;手动将大量数据输入到 Excel 表格中既费时又容易出错。为了提高效率并减少错误&#xff0c;使用 Python 编程语言来自动化数据写入 Excel 表格是一个明智的选择。Python 作为一…

C练习——杨辉三角

题目&#xff1a; 打印近似杨辉三角&#xff0c;行数n自选 百度找的杨辉三角&#xff0c;参考一下&#xff1a; 解析&#xff1a; 把它的全部元素左对齐&#xff0c;就可以看成近似杨辉三角的样子 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 …… 每个数等于它上方两数…

ffmpeg解码音频planar模式和packed模式

转载&#xff1a;原文地址&#xff1a; FFmpeg连载4-音频解码-阿里云开发者社区ffmpeg连载系列https://developer.aliyun.com/article/1197520 转载的&#xff0c;看到了&#xff0c;留着备份一下 导读 前面我们介绍了使用FFmpeg解码视频&#xff0c;今天我们使用FFmpeg解码音…

【C++进阶】心心念念的红黑树,它来了!

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

C++多线程学习[三]:成员函数作为线程入口

一、成员函数作为线程入口 #include<iostream> #include<thread> #include<string>using namespace std;class Mythread { public:string str;void Test(){cout << str << endl;} }; int main() {Mythread test;test.str "Test";thr…