当前位置: 首页 > news >正文

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

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,是一个考虑方向

相关文章:

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

2023 AAAI 1 intro 1.1 背景 建模人类个体移动模式并生成接近真实的轨迹在许多应用中至关重要 1)生成轨迹方法能够为城市规划、流行病传播分析和交通管控等城市假设分析场景提供仿仿真数据支撑2)生成轨迹方法也是目前促进轨迹数据开源共享与解决轨迹数…...

redis实战-缓存数据解决缓存与数据库数据一致性

缓存的定义 缓存(Cache),就是数据交换的缓冲区,俗称的缓存就是缓冲区内的数据,一般从数据库中获取,存储于本地代码。防止过高的数据访问猛冲系统,导致其操作线程无法及时处理信息而瘫痪,这在实际开发中对企业讲,对产品口碑,用户评价都是致命的;所以企业非常重视缓存…...

【排序】选择排序

文章目录 选择排序时间复杂度空间复杂度稳定性 代码 选择排序 以从小到大为例进行说明。 选择排序就是定义出一个最小值下标,然后遍历整个剩下的数组选择出最小的放进最小值下标的位置。 时间复杂度 O(N) 遍历一次即可 空间复杂度 O(1) 稳定性 不稳定 代码 p…...

深入浅出Pytorch函数——torch.nn.init.trunc_normal_

分类目录:《深入浅出Pytorch函数》总目录 相关文章: 深入浅出Pytorch函数——torch.nn.init.calculate_gain 深入浅出Pytorch函数——torch.nn.init.uniform_ 深入浅出Pytorch函数——torch.nn.init.normal_ 深入浅出Pytorch函数——torch.nn.init.c…...

探索高级UI、源码解析与性能优化,了解开源框架及Flutter,助力Java和Kotlin筑基,揭秘NDK的魅力!

课程链接: 链接: https://pan.baidu.com/s/13cR0Ip6lzgFoz0rcmgYGZA?pwdy7hp 提取码: y7hp 复制这段内容后打开百度网盘手机App,操作更方便哦 --来自百度网盘超级会员v4的分享 课程介绍: 📚【01】Java筑基:全方位指…...

国外服务器怎么有效降低延迟

国外服务器怎么有效降低延迟?在全球化网络环境下,越来越多的企业和个人选择使用国外服务器来托管网站、应用程序或数据。然而,由于地理位置、网络连接等因素,使用国外服务器时可能会遇到延迟较高的问题。高延迟不仅影响用户体验,…...

AI百度文心一言大语言模型接入使用(中国版ChatGPT)

百度文心一言接入使用(中国版ChatGPT) 一、百度文心一言API二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例 三、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 四、重要说明 一、百度文心一言API 基于百度文心一言语言大模型…...

vue 安装并配置vuex

1.安装vuex命令:npm i vuex3.6.2 2.全局配置 在main文件里边导入-安装-挂载 main.js页面配置的 import Vue from vue import App from ./App.vue import Vuex from vuex//导入 Vue.use(Vuex)//安装插件 // 创建store对象 const store new Vuex.Store({ }) // 挂载到vue对象上…...

有一种新型病毒在 3Ds Max 环境中传播,如何避免?

3ds Max渲染慢,可以使用渲云渲染农场: 渲云渲染农场解决本地渲染慢、电脑配置不足、紧急项目渲染等问题,可批量渲染,批量出结果,速度快,效率高。 此外3dmax支持的CG MAGIC插件专业版正式上线,…...

基于Java/springboot铁路物流数据平台的设计与实现

摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,铁路物流数据平台当然也不能排除在外,从文档信息、铁路设计的统计和分析,在过程中会产生大量的、各…...

比较杂的html元素

abbr 表示缩写 time 踢动给浏览器或搜索引擎阅读的事件;看着没什么效果 b 以前是一个无语义元素,主要用于加粗字体,有了css之后,加粗就不需要b元素了。 现在作为提醒注意(Bring Attention To)元素&…...

Docker基本管理

前言一、Docker简介1.1 什么是docker1.2 docker的logo及其含义1.3 docker的设计宗旨1.4 容器的优点1.5 容器和虚拟机的区别1.6 docker容器的两个重要技术1.7 docker的核心概念 二、安装 Docker三、Docker 镜像操作1、搜索镜像2、获取镜像3、查看镜像信息4、查看下载的镜像文件信…...

.NET Core6.0使用NPOI导入导出Excel

一、使用NPOI导出Excel //引入NPOI包 HTML <input type"button" class"layui-btn layui-btn-blue2 layui-btn-sm" id"ExportExcel" onclick"ExportExcel()" value"导出" />JS //导出Excelfunction ExportExcel() {…...

用API接口获取数据的好处有哪些,电商小白看过来!

API接口获取数据有以下几个好处&#xff1a; 1. 数据的实时性&#xff1a;通过API接口获取数据可以实时获取最新的数据&#xff0c;保证数据的及时性。这对于需要及时更新数据的应用非常重要&#xff0c;比如股票行情、天气预报等。 2. 数据的准确性&#xff1a;通过API接口获…...

使用struct解析通达信本地Lday日线数据

★★★★★博文原创不易&#xff0c;我的博文不需要打赏&#xff0c;也不需要知识付费&#xff0c;可以白嫖学习编程小技巧&#xff0c;喜欢的老铁可以多多帮忙点赞&#xff0c;小红牛在此表示感谢。★★★★★ 在Python中&#xff0c;struct模块提供了二进制数据的打包和解包…...

浅谈早期基于模板匹配的OCR的原理

基于模板匹配的概念是一种早期的字符识别方法&#xff0c;它基于事先准备好的字符模板库来与待识别字符进行比较和匹配。其原理如下&#xff1a; 1. 字符模板库准备&#xff1a;首先&#xff0c;针对每个可能出现的字符&#xff0c;制作一个对应的字符模板。这些模板可以手工创…...

第6章 分布式文件存储

mini商城第6章 分布式文件存储 一、课题 分布式文件存储 二、回顾 1、理解Oauth2.0的功能作模式 2、实现mini商城项目的权限登录 三、目标 1、了解文件存储系统的概念 2、了解常用文件服务器的区别 3、掌握Minio的应用 四、内容 第1章 MinIO简介 官...

Spring(四):Spring Boot 的创建和使用

关于Spring之前说到&#xff0c;Spring只是思想&#xff08;核心是IOC、DI和AOP&#xff09;&#xff0c;而具体的如何实现呢&#xff1f;那就是由Spring Boot 来实现&#xff0c;Spring Boot究竟是个啥呢&#xff1f; 什么是Spring Boot&#xff0c;为什么要学Spring Boot Sp…...

SpringCloud Gateway:status: 503 error: Service Unavailable

使用SpringCloud Gateway路由请求时&#xff0c;出现如下错误 yml配置如下&#xff1a; 可能的一种原因是&#xff1a;yml配置了gateway.discovery.locator.enabledtrue&#xff0c;此时gateway会使用负载均衡模式路由请求&#xff0c;但是SpringCloud Alibaba删除了Ribbon的…...

【产品规划】功能需求说明书概述

文章目录 1、瀑布流方法论简介2、产品需求文档&#xff08;PRD&#xff09;简介3、产品需求文档的基本要素4、编写产品需求文档5、优秀产品需求文档的特点6、与产品需求文档相似的其他文档 1、瀑布流方法论简介 2、产品需求文档&#xff08;PRD&#xff09;简介 3、产品需求文档…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

【Veristand】Veristand环境安装教程-Linux RT / Windows

首先声明&#xff0c;此教程是针对Simulink编译模型并导入Veristand中编写的&#xff0c;同时需要注意的是老用户编译可能用的是Veristand Model Framework&#xff0c;那个是历史版本&#xff0c;且NI不会再维护&#xff0c;新版本编译支持为VeriStand Model Generation Suppo…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...