论文笔记:Continuous Trajectory Generation Based on Two-Stage GAN

news2024/9/24 13:13:59

2023 AAAI

1 intro

1.1 背景

  • 建模人类个体移动模式并生成接近真实的轨迹在许多应用中至关重要
    • 1)生成轨迹方法能够为城市规划、流行病传播分析和交通管控等城市假设分析场景提供仿仿真数据支撑
    • 2)生成轨迹方法也是目前促进轨迹数据开源共享与解决轨迹数据隐私问题的可行解决方案
      • 在不泄漏移动轨迹数据中个人隐私的情况下实现轨迹数据的开源共享
      • eg,某出行公司A拥有城市内的出租车轨迹数据,而某共享自行车公司 B 拥有同一城市内的共享单车轨迹数据。
        • 如若两公司能够互相共享数据,那么二者能够更好地预测城市出行需求,从而改进相应的车辆调度服务。
        • 但碍于轨迹数据的强隐私性,公司 A 与 B 无法互相共享数据。
        • 此时,使用在数据效用上与真实轨迹相近的生成轨迹不仅可以完成数据共享改进各方服务,而且也可以避免用户隐私泄露。
      • 因此,生成具有良好数据效用的轨迹数据非常重要

1.2 之前的工作

  • 早期阶段,研究人员旨在构建基于模型的方法来模拟人类移动的规律性,例如时间周期性、空间连续性
    • 这些方法假设人类移动可以用特定的移动模式来描述,因此可以用具有明确物理意义的有限参数来建模。
    • 然而,事实上,人类移动行为表现出复杂的顺序转换规律,这些规律可能是时间依赖的、高阶的。
    • ——>因此,尽管这些基于模型的方法具有设计上可解释的优点,但由于实现机制的简单性,它们的性能受到限制。
  • 近些年使用神经网络生成范例(GAN、VAE)的无模型方法
    • 放弃了特定人类移动模式的提取
    • 直接构建神经网络来学习真实数据的分布,并从相同分布中生成轨迹
    • 存在的问题
      • 忽略了生成轨迹的连续性问题
      • 不利用人类移动先验知识,难以有效地生成连续轨迹
      • 现有方法的随机生成过程存在误差积累问题
        • 现有生成过程中轨迹是根据生成器给出的概率随机生成的。
        • 一旦生成器预测错误,该过程将在错误的前提下继续生成,从而降低了生成轨迹的质量

1.3 本文的思路

1.3.1 针对第一个挑战(忽略了生成轨迹的连续性问题)

算法笔记:A*算法_UQI-LIUWJ的博客-CSDN博客

  • 提出了一种融合 A* 算法的城市个体移动模式感知的两阶段对抗生成网络
    • 在 A* 假设中,个体移动行为由两个因素决定:
      • 从起点道路到当前候选道路的已观察通行成本
      • 从候选道路到目的地的预期通行成本
    • 结合以上两种成本,A* 算法评估哪条候选道路是下一步搜索的最佳候选道路,然后启发式地生成最优连续轨迹
  • ——>这篇论文的生成器由两部分组成:
    • 基于注意力网络,学习观察到的通行成本
    • 基于 GAT 的网络来估计预期通行成本

1.3.2 针对第二个挑战(不利用人类移动先验知识)

  • 基于轨迹数据的时空特性构建了鉴别器网络
    • 分别从时间序列相似性(序列奖励)和空间相似性(移动性偏航奖励)的角度来鉴别生成轨迹的真实性
    • ——>以提高生成器的有效性

1.3.3 针对第三个挑战(误差积累问题)

  • 提出了一个两阶段基于 A* 搜索的
    • 第一阶段,依据路网结构构建区域,然后生成区域轨迹
    • 第二阶段,在区域轨迹的指导下生成连续轨迹

1.4 贡献

  • 首次使用 A* 算法与神经网络相结合以解决城市道路网络上连续轨迹生成问题
  • 为了提高生成的有效性和效率,构建了一个结合了序列性奖励和移动偏航奖励的鉴别器,并提出了一个两阶段生成过程
  • 在两个真实轨迹集上的相似性对比实验与两个案例研究证明了框架的有效性和鲁棒性

2 问题定义

2.1 连续轨迹

  • 城市道路网络上的连续轨迹定义为按时间排序的序列 T=\{x_1,x_2,\ldots,c_n\}
    • 轨迹点xi由一个元组(li,ti)表示
      • li——路段ID
      • ti——轨迹点对应的时间信息
    • 连续轨迹需要满足:相邻的轨迹点(x_i,x_{i+1})在路网中是相邻路段

2.2 连续轨迹生成问题

  • 给定一个真实世界的移动轨迹数据集,给定起止点,生成一条或一组连续的移动轨迹\hat{T}=\{\hat{x_1},\hat{x_2},\ldots,\hat{x_n}\}

  • 连续轨迹生成问题可以被建模为马尔可夫决策过程
    • 状态——当前个体的移动状态
      • 由当前部分轨迹x_{1:i}和目的地ld组成
    • 个体动作a——要移动的下一个候选路段lj
    • 个体移动策略\pi(a|s)——个体在当前状态下决定下一步动作的条件概率

  •  生成器按照最大化个体移动策略的总概率来生成轨迹

3 模型

3.1   整体模型

3.2 生成器

3.2.1 生成器的A*思想

  • 在 A* 假设中,个体移动行为由两个因素决定:
    • 从起点道路到当前候选道路lj的当前已通行成本(g)
    • 从候选道路lj到目的地的未来通行成本(h)
  • 结合以上两种成本,A* 算法评估哪条候选道路是下一步搜索的最佳候选道路,然后启发式地生成最优连续轨迹

  • 使用朴素 A* 算法生成轨迹有以下两个缺陷
    • 在朴素 A* 算法中,g 和 h 函数是根据路段之间的球面距离计算的
      • ——》学习多样化的人类个体移动模式变得困难
    • 球面距离不能准确估算未来通行成本
      • eg,主干道 & 支路
  • ——>使用神经网络拟合 g 和 h 函数以建模个体移动模式,从而预测个体移动策略\pi(a|s)

    注:这篇论文只是采用A*算法这个思路,并不是使用A*算法来找下一个路段,找下一条路段还是用概率P来找的 

3.2.2 拟合A* 算法思路中的g函数(已通行成本)

 3.2.3 拟合A*算法思路中的h函数(未来通行成本)

论文笔记 Graph Attention Networks_UQI-LIUWJ的博客-CSDN博客

  • 使用图注意力网络从道路网络中提取相对位置信息,并计算两个路段之间的球形距离
    • 基于以上信息,最终使用多层感知器网络来估计未来通行成本 h

 3.3 鉴别器

3.3.1 序列性奖励

3.3.2   移动性偏航奖励

3.4 训练生成器(REINFORCE算法)

强化学习笔记:policy learning_UQI-LIUWJ的博客-CSDN博客

强化学习,所以使用梯度上升

3.5 两阶段生成过程

  • 现有方法的随机生成过程存在误差累积的问题
  • 即在该过程中,轨迹是根据生成器给出的概率随机生成

    • 然而,一旦生成器预测错误,随机生成过程会在错误的前提状态下继续生成
      • 当生成长轨迹时,生成器出错的概率随着生成器做出的预测数量的增加而增加
      • ——>生成轨迹难以到达目的地,同时降低生成轨迹的质量
  • 论文采用了两阶段生成过程
    • 第一阶段生成区域轨迹
    • 第二阶段,在区域轨迹的前提下生成区域内的道路级别轨迹,从而完成连续轨迹生成

4 实验

4.1 数据集

 4.2 比较结果

5 可能可以改进的点

不同的人有不同的通行习惯,这边只考虑的比较general的mobility pattern。如何融入personalized mobility pattern,是一个考虑方向

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

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

相关文章

十六、Spring Cloud Sleuth 分布式请求链路追踪

目录 一、概述1、为什么出出现这个技术?需要解决哪些问题2、是什么?3、解决 二、搭建链路监控步骤1、下载运行zipkin2、服务提供者3、服务调用者4、测试 一、概述 1、为什么出出现这个技术?需要解决哪些问题 2、是什么? 官网&am…

RingBuffer 环形缓冲区----镜像指示位

文字和图片参考和来自这些文章: 大疆嵌入式软件编程题找鞍点_已知循环缓冲区是一个可以无限循环读写的缓冲区,当缓冲区满了还继续写的话就会覆_一禅的师兄的博客-CSDN博客 ring buffer,一篇文章讲透它? - 知乎 (zhihu.com) 1 概述 1.1 什…

Python可视化在量化交易中的应用(15)_Seaborn箱线图小提琴图

Seaborn中箱线图和小提琴图的绘制方法 箱线图和小提琴图常被用来观测数据的中位数、上下四分位数分布范围以及异常值的分布情况。 seaborn中绘制箱线图使用的是sns.boxplot()函数。 sns.boxplot(x,y,hue,data,order,hue_order,orient,color,palette,saturation0.75,width0.8,do…

C语言 功能型API --------------------strcat()

NAME strcat, strncat - concatenate two strings 头文件 SYNOPSIS #include <string.h> 函数原型&#xff1a; char *strcat(char *dest, const char *src); 功能&#xff1a; 在字符串dest的末尾将字符串src拼接上去 #include <stdio.h> #inc…

227、仿真-基于51单片机锅炉热电偶PT100铂电阻温度控制Proteus仿真设计(程序+Proteus仿真+原理图+流程图+元器件清单+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、设计功能 二、Proteus仿真图 三、原理图 四、程序源码 资料包括&#xff1a; 需要完整的资料可以点击下面的名片加下我&#xff0c;找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一&…

LlamaGPT -基于Llama 2的自托管类chatgpt聊天机器人

LlamaGPT一个自托管、离线、类似 ChatGPT 的聊天机器人&#xff0c;由 Llama 2 提供支持。100% 私密&#xff0c;不会有任何数据离开你的设备。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 1、如何安装LlamaGPT LlamaGPT可以安装在任何x86或arm64系统上。 首先确保…

网络编程(TCP和UDP的基础模型)

一、TCP基础模型&#xff1a; tcp Ser&#xff1a; #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <netinet/in.h> #include <string.h> #include <head.h>#define PORT 88…

探索无限创造力的星辰大道,画出想象的浩瀚宇宙!-turtle

介绍 视频教程地址在此&#xff1a;https://www.bilibili.com/video/BV1Pm4y1H7Tb/ 大家好&#xff0c;欢迎来到本视频&#xff01;今天&#xff0c;我们将一同探索Python编程世界中的一个有趣而创意的库——Turtle库。无需专业绘画技能&#xff0c;你就可以轻松地用代码绘制…

docker的安装与基础使用

一.docker简介 1&#xff09;什么是docker Docker是一种用于构建、打包和运行应用程序的开源平台。它基于操作系统级虚拟化技术&#xff0c;可以将应用程序和其依赖的库、环境等资源打包到一个可移植的容器中&#xff0c;形成一个轻量级、独立的可执行单元。 开发者在本地编…

QT TLS initialization failed问题(已解决) QT基础入门【网络编程】openssl

问题: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed 这个问题的出现主要是使用了https请求:HTTPS ≈ HTTP + SSL,即有了加密层的HTTP 所以Qt 组件库需要OpenSSL dll 文件支持HTTPS 解决: 1.加入以下两行代码获取QT是否支持opensll以…

【学会动态规划】单词拆分(24)

目录 动态规划怎么学&#xff1f; 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后&#xff1a; 动态规划怎么学&#xff1f; 学习一个算法没有捷径&#xff0c;更何况是学习动态规划&#xff0c; 跟我…

向gitee推送代码

目录 一、Gitee创建仓库 二、将刚刚创建的仓库放到虚拟机上 2.1 https 方式克隆仓库 2.2 ssh的方式克隆仓库 三、本地开发&#xff0c;推送 3.1 查看是否有远程库 3.2 推送代码 3.3 查看是否推送成功 一、Gitee创建仓库 二、将刚刚创建的仓库放到虚拟机上 2.1 https 方式…

codesys和HMI通讯

codesys可视化有2种&#xff1a; 网页web // 类似于路由器管理那样&#xff0c;登录网页就能操作 本地HMI // 其他品牌的触摸屏 符号配置&#xff1a; 1 编译需要的变量 2 导出XML文件 3 触摸屏软件加载XML文件

kafka--kafka的基本概念-topic和partition

一、kafka的基本概念-topic和partition 1、topic &#xff08;主题 &#xff09; topic是逻辑概念 以Topic机制来对消息进行分类的&#xff0c;同一类消息属于同一个Topic&#xff0c;你可以将每个topic看成是一个消息队列。 生产者&#xff08;producer&#xff09;将消息发…

我只是用了个“笨”方法,一个月后不再惧怕英文文档

在日常工作中&#xff0c;尤其是程序员时时刻刻都会与英文打交道&#xff0c;虽然我们尽可能的在互联网和中文书籍中寻找我们需要的信息&#xff0c;但是&#xff0c;有时候总是不尽人意。对待翻译过来的文档或者书本可能有些定义依然无法明确理解&#xff0c;回到它原有的场景…

【二叉树前沿篇】树

【二叉树前沿篇】树 1 树的概念2. 树的相关概念3. 树的表示4. 树在实际中的运用&#xff08;表示文件系统的目录树结构&#xff09; 1 树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是…

Django模型基础

文章目录 一、models字段类型概述属性命名限制使用方式逻辑删除和物理删除常用字段类型 二、常用字段参数常用字段选项(通过字段选项&#xff0c;可以实现对字段的约束) 实践创建模型执行迁移命令 并 创建超级用户登录admin后台添加文件和图片字段定义模型字段和约束及在Admin后…

C#生产流程控制(串行,并行混合执行)

开源框架CsGo https://gitee.com/hamasm/CsGo?_fromgitee_search 文档资料&#xff1a; https://blog.csdn.net/aa2528877987/article/details/132139337 实现效果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37…

大语言模型之四-LlaMA-2从模型到应用

最近开源大语言模型LlaMA-2火出圈&#xff0c;从huggingface的Open LLM Leaderboard开源大语言模型排行榜可以看到LlaMA-2还是非常有潜力的开源商用大语言模型之一&#xff0c;相比InstructGPT&#xff0c;LlaMA-2在数据质量、培训技术、能力评估、安全评估和责任发布方面进行了…

图像处理常见的两种拉流方式

传统算法或者深度学习在进行图像处理之前&#xff0c;总是会首先进行图像的采集&#xff0c;也就是所谓的拉流。解决拉流的方式有两种&#xff0c;一个是直接使用opencv进行取流&#xff0c;另一个是使用ffmpeg进行取流&#xff0c;如下分别介绍这两种方式进行拉流处理。 1、o…