论文阅读:基于循环神经网络的船舶航迹预测

2023-11-09 01:59

本文主要是介绍论文阅读:基于循环神经网络的船舶航迹预测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文阅读:基于循环神经网络的船舶航迹预测

论文下载:https://download.csdn.net/download/qq_33302004/15421819

目录

1. 摘要

2. 主要贡献

3. 一些有趣的观点

4. 基于SSPD的数据预处理方法

5. GRU循环神经网络预测模型

6. 实验


1. 摘要

2. 主要贡献

提出了一种基于循环神经网络船舶航迹预测方法,主要包含两个部分:数据预处理(SSPD)和循环神经网络预测模型,算法流程如下:

实验结果:平均计算耗时111.031s,平均误差为0.374%(采用均方误差,MSE)。

3. 一些有趣的观点

① 针对船舶航迹预测问题:研究集种于某海域给定时间范围内遵循一定规律的特定船舶类型的航迹预测问题。

航迹预测问题十分复杂,会受到不同海域、不同类型的船舶、不同天气等众多因素的影响,我认为研究特定的问题是一个好的选择。

 

② 使用SSPD方法选择出与待预测的航迹相似的航迹作为训练集。

不遵循相同规律的航迹,若不作处理都直接作为训练集会增加神经网络模型的学习难度,甚至还会出现自相矛盾的数据,导致不收敛,所以提前筛选数据集有必要。

 

③ AIS数据中的位置坐标是非平面坐标,所以作者对原始的坐标数据做了“高斯-克吕格”投影。

这是我之前没有遇到过的做法,后面也会深入研究一下AIS的原始坐标数据获取方式和是否做投影对预测结果的影响。

4. 基于SSPD的数据预处理方法

问题描述:

其中p是一个航迹点,用经纬度对表示。T是一段航迹,有若干(航迹点, 时刻)组成。

T_S是用线段方式表示的轨迹,S_1表示点P_1和点P_2连接组成的线段,n_s表示航迹T的总长度

相似度计算(SSPD的过程):

上面的公式是在计算一个点p到线段s的距离,方法就是由p点向s做投影,如果落在s上,那么就将p点和投影点连线的长度作为点到线段的距离;否则就用p连接线段的两个端点,较短的连接线的长度作为距离。

点p到航迹T_s^1的距离就是,点p到航迹T中每条线段距离的最小值。而航迹T_s^2到航迹T_s^1的距离就是T_s^2中每个点到航迹T_s^1距离的平均值。

所谓对阵分段路径距离也就是相似度,就是两条航迹相互距离的平均值。,D_S_S_P_D的值越小,航迹之间的相似性程度越高; 反之,相似性程度越低。

筛选数据集的算法伪代码如下:

5. GRU循环神经网络预测模型

RNN网络结构:

其中Dropout概率取0.2,Dense层就是全连接层。

模型结构包括1个输入节点,5个隐藏层,及1个输出节点。输 入节点接收序列 X 的长度为n,维度为2(即船舶的经度和 纬度坐标),通过隐藏 层 训 练,在输出节点获得最佳预测序 列Y,包括预测位置的经纬度坐标。

每一个神经元是一个GRU,每层神经元个数为100个

6. 实验

使用AIS数据,下载了2017年1~2月在通用横墨卡 托区域1~10范围内航行的商用及民用 类型的船舶共计719624条真实航迹数据。分为10组,每组约71000条数据。

实验结果:

使用SSPD筛选数据和不使用的对比实验:

GRU神经元和LSTM神经元的对比实验:

不同训练参数的对实验:

这篇关于论文阅读:基于循环神经网络的船舶航迹预测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/373538

相关文章

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f

Spring三级缓存解决循环依赖的解析过程

《Spring三级缓存解决循环依赖的解析过程》:本文主要介绍Spring三级缓存解决循环依赖的解析过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、循环依赖场景二、三级缓存定义三、解决流程(以ServiceA和ServiceB为例)四、关键机制详解五、设计约

Spring 中的循环引用问题解决方法

《Spring中的循环引用问题解决方法》:本文主要介绍Spring中的循环引用问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录什么是循环引用?循环依赖三级缓存解决循环依赖二级缓存三级缓存本章来聊聊Spring 中的循环引用问题该如何解决。这里聊

C# foreach 循环中获取索引的实现方式

《C#foreach循环中获取索引的实现方式》:本文主要介绍C#foreach循环中获取索引的实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、手动维护索引变量二、LINQ Select + 元组解构三、扩展方法封装索引四、使用 for 循环替代

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(