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

青岛网站制作seo百度建站官网

青岛网站制作seo,百度建站官网,wordpress收费主题激活,长春火车站地下停车场收费标准目录 摘要 ABSTRACT 1 论文信息 1.1 论文标题 1.2 论文摘要 1.3 论文模型 1.3.1 Spatial Encoder#xff08;空间编码器#xff09; 1.3.2 Temporal Encoder#xff08;时间编码器#xff09; 2 相关代码 摘要 本周阅读了一篇运用GNN进行时间序列预测的论文。论文…目录 摘要 ABSTRACT 1 论文信息 1.1 论文标题 1.2 论文摘要  1.3 论文模型 1.3.1 Spatial Encoder空间编码器 1.3.2 Temporal Encoder时间编码器 2 相关代码 摘要 本周阅读了一篇运用GNN进行时间序列预测的论文。论文主要提出了一种分离空间和时间编码器的双通路框架用于通过有效的时空表示学习准确预测水温特别是极端的高水温。框架主要使用Transformer的自注意机制构造空间和时间编码器执行任务同时采用了各种补丁嵌入方法和空间特征位置嵌入方法的组合。此外本周还运用GAT模型进行了一个时间序列预测的实验。 ABSTRACT This week, We read a paper on time series prediction using GNNs. The paper proposes a dual-pathway framework that separates spatial and temporal encoders for accurate prediction of water temperature, particularly extreme high water temperature, through effective spatiotemporal representation learning. The framework primarily utilizes Transformers self-attention mechanism to construct spatial and temporal encoders for the task, along with various combinations of patch embedding methods and spatial feature positional embedding methods. Additionally, this week, an experiment on time series prediction was conducted using the GAT model. 1 论文信息 1.1 论文标题 Two-pathway spatiotemporal representation learning for extreme water temperature prediction 1.2 论文摘要  准确预测极端水温对于了解海洋环境的变化以及减少全球变暖导致的海洋灾害至关重要。在本研究中提出了一个分离空间和时间编码器的双通路框架用于通过有效的时空表示学习准确预测水温特别是极端高水温。基于Transformer的自注意机制构造空间和时间编码器网络执行任务预测朝鲜半岛周围16个沿海位置未来连续七天的水温时间序列同时采用了各种组合的补丁嵌入方法和空间特征的位置嵌入。最后还进行了与传统深度卷积和递归网络的比较实验通过比较和评估这些结果所提出的双路径框架能够通过更好地捕获来自开放海洋和区域海域的时空相互关系和长期特征关系改善对极端沿海水温的可预测性并进一步确定基于自注意力的空间和时间编码器的最佳架构细节。此外为了检查所提出的模型的可解释性及其与领域知识的一致性进行了模型可视化并分析了空间和时间注意力图展示了与未来预测更相关的时空输入序列的权重。 1.3 论文模型 双通路框架主要包括空间编码器Spatial Encoder和时间编码器Temporal Encoder如Fig.(a)所示。这两个编码器主要用来学习多尺度时空相互关系特征表示将时空数据的特征表示通过SpatialEncoder和TemporalEncoder分为两个空间组件维度分别为和以及一个时间组件维度为。第一条路径中SpatialEncoder捕获给定输入数据的一个连续片段的空间依赖关系。第二条路径中TemporalEncoder捕获从SpatialEncoder中以时间顺序提供的连续序列空间特征向量之间的时间依赖关系与时间特征融合。Fig.1(a)中的二维嵌入包含一个将输入数据映射到特征空间的操作然后将其输出结果送到连续的空间编码器中。对于CNN它通过卷积核卷积操作执行而对于基于自注意力的网络则是将每个数据分成补丁。嵌入特征被馈送到SpatialEncoder并构建为Feature Vector以学习时空特征表示。Feature Vector的大小是固定的并且为了比较各种实验模型组合的性能确定了实现它所需的编码器数量。通过空间编码器压缩的Feature Vector以时间顺序被接收到TemporalEncoder中以构建集成的时空特征向量。 Fig.1 输入的网格化时空数据序列记作。其中、和分别代表网格化时空数据的高度、宽度和多个连续时间序列。被映射为来自时间、高度和宽度维度的补丁嵌入的一系列标记、。如果使用位置嵌入将被重塑为。是标记维度表示非重叠图像补丁。从每个数据序列中提取个非重叠图像补丁然后将具有位置嵌入的总共个标记传到Transformer的核心共同块SpatialEncoder中的多头自注意力MSA。从SpatialEncoder中获得的输出是从输入的网格化时空数据序列中获得的新表示具有的隐藏特征向量。SpatialEncoder的输出被馈送到TemporalEncoder的输入中以学习空间特征的时间依赖性。基于TemporalEncoder的Transformer架构通过缩放点积注意力计算输入的单个自注意力如Eq.(1)所述。缩放点积注意力的输入包括维度为的queries和keys以及维度为的值。计算queries与所有keys的点积每个除以并应用softmax函数来获得值的权重。与具有维keys、queries和值的单个注意力函数相比通过MSA将queries、keys和值线性投影次分别到、和维度然后在这些投影版本的queries、keys和值上并行执行注意力函数产生维输出值更利于结果。这些输出被串联并再次投影得到最终值。多头注意力使模型能够同时关注不同位置的不同表示子空间的信息。使用单个注意力头平均会抑制这一特性。通过MSA模块表示具有时间特征的512维向量这些向量被转换为连续时空序列的16个目标。 1 2 其中是key向量和query向量的维度。 SpatialEncoder应用了ViTFig.2(a)和(b)和ViT变体Swin TransformerSwinTFig.2(c)和(d)、全局上下文ViTGCViTFig.2(c)和(e)和多路径ViTMPViTFig.2(f)和(g)还包括基本的2D CNNFig.1(b)。此外还将LSTMFig.1(c)和基于多头自注意力的 TransformerMATFig.1(d)作为TemporalEncoder应用通过不同方式的SpatialEncoder和TemporalEncoder的组合来检验多尺度自注意力时空特征表示的性能如Table.1所述。同时还研究了10种单独应用SpatialEncoder和TemporalEncoder的实验组合。如Fig.2所示ViT和ViT 变体SwinT、GCViT 和MPViT具有共同的基于多头自注意力的Transformer架构。然而位置和补丁嵌入方法存在差异如Fig2(a)、(c)和(f)所示。此外可以根据投影注意力的方法以及是否将其视为分层结构进行分类如Table2所示。 Fig.2 Table.1 Table.2 1.3.1 Spatial Encoder空间编码器 ViT一个基于自注意力的空间编码器通常由两部分组成补丁构建和Transformer块。如Fig.2(a)所示对于来自输入的补丁嵌入2D网格数据的序列被划分为固定大小的补丁然后进行线性嵌入并添加一维1D位置嵌入以将它们重塑为扁平化的2D补丁序列。1D位置嵌入也按照网格顺序添加到补丁嵌入中。结果的补丁嵌入向量序列被输入到SpatialEncoder中它具有与标准MAT Transformer相同的结构Fig.2(b)。它由LayerNormLN、MSA和MLP块组成。在每个MLP块之前和之后分别应用了LN和残差连接。MLP包含用于非线性的高斯误差线性单元GeLU。MSA是自注意力的扩展可以并行执行个自注意力操作并投影它们的串联输出。 SwinT为了学习更高分辨率的空间特征SwinT通过逐渐合并深层中相邻的补丁来构建分层特征图从较小的补丁开始。分层表示是在一种偏移的窗口方案中计算的它通过将自注意力计算限制在非重叠的局部窗口中来提高效率同时允许跨窗口连接。对于补丁嵌入Fig.2(c)它首先将输入的网格数据划分为非重叠的补丁。然后在这些补丁标记上应用具有修改后自注意力即SwinT块的Transformer块配置如Fig.2(d)所示。SwinT块通过依次连接用于窗口内自注意力操作的Window Multi-head Self-Attention W-MSA和用于W-MSA的窗口之间补丁的自注意力操作的Shifted Window Multi-head Self-Attention (SW-MSA)然后在两个MLP层之间插入GeLU来配置。自注意力是在本地窗口内计算的这些窗口被排列成以非重叠方式均匀划分图像。在每个MSA模块和每个MLP块之前都应用了LN层和残差连接并在每个模块之后应用了残差连接。Transformer块保持了补丁的数量并且与线性嵌入一起被划分为第1个Transformer层。为了创建分层表示随着网络的加深补丁合并层会减少补丁标记的数量。Transformer层共同创建具有相同分辨率的特征图的分层表示。 1.3.2 Temporal Encoder时间编码器 TemporalEncoder使用了两种模型一种是LSTM它是一种RNN的变种另一种是基于自注意力的TE用于通过SpatialEncoderFig.2(c)和(d)捕捉压缩的空间特征向量连续序列之间的时间依赖关系。LSTM接收压缩了空间信息的特征向量作为输入并将其馈送到LSTM单元中以编码时间信息。TemporalEncoder接收压缩了空间信息的特征向量作为输入并使用自注意力编码时间信息。与此同时MLP由Linear-GeLU-Linear组成。一系列由先前的SpatialEncoder层压缩的空间特征向量被顺序地馈送到TemporalEncoder。然后通过双通道方法将空间和时间特征分别融合为输出特征图用于空间-时间特征表示学习。 2 相关代码 实验PyG搭建图神经网络实现多变量输入多变量输出时间序列预测 参考代码PyG搭建图神经网络实现多变量输入多变量输出时间序列预测_利用pyg库实现时间序列预测-CSDN博客 step1首先需要构造图结构在将多元时间序列数据转化成一个图结构数据之前需要确定各个节点的空间关系Node Embedding一个变量为一个节点。一个很自然的想法就是计算不同的变量序列间的相关系数然后使用一个阈值进行判断如果两个节点变量它们的序列间的相关系数大于这个阈值那么两个变量节点间就存在边。 # num_nodes:节点(变量)数量; data:节点特征数据data的维度为(x, num_nodes) def create_graph(num_nodes, data):# 将data(feature, num_nodes)序列转换成特征矩阵features(num_nodes, feature)features torch.transpose(torch.tensor(data), 0, 1)# 创建一个空的邻接矩阵用于存储图中的边edge_index [[], []]# 遍历所有节点for i in range(num_nodes):# 遍历当前节点之后的所有节点以避免重复添加边for j in range(i 1, num_nodes):# 从输入的data数据中获取两个节点的特征向量x, y data[:, i], data[:, j]# 计算两个节点之间的相关性corr calc_corr(x, y)# 如果两个节点之间的相关性大于等于0.4则将它们之间添加一条边if corr 0.4:edge_index[0].append(i)edge_index[1].append(j)# 将邻接矩阵转换为PyTorch的长整型张量edge_index torch.LongTensor(edge_index)# 创建图对象graph Data(xfeatures, edge_indexedge_index)# 将有向图转换为无向图以确保每一条有向边都有一个相对应的反向边graph.edge_index to_undirected(graph.edge_index, num_nodesnum_nodes)return graph 本次实验的数据集采用伊斯坦布尔股票交易数据集ISTANBUL STOCK EXCHANGE - UCI Machine Learning Repository 最终构建出的图结构为 step2在接下来的训练、验证以及测试过程中保持图的整体结构不变。也就是使用静态图即图中的关系是通过训练集中的数据确定的。如果想要实现动态图一个很自然的想法是在构造数据集时每次都利用一个大小为num_nodesseq_len的矩阵计算出图中的各个参数。这样操作后每一个样本都对应一个图图中的节点数为num_nodes节点的初始特征都为长度为seq_len的向量图中的边通过num_nodes个长度为seq_len的向量间的相关系数来确定。 构造数据集 def nn_seq(num_nodes, seq_len, B, pred_step_size, data):# 将数据集划分为训练集60%、验证集20%和测试集20%train data[:int(len(data) * 0.6)]# print(train)val data[int(len(data) * 0.6):int(len(data) * 0.8)]# print(val)test data[int(len(data) * 0.8):len(data)]# print(test)# 归一化scaler MinMaxScaler()train_normalized scaler.fit_transform(data[:int(len(data) * 0.8)].values)# print(train_normalized)val_normalized scaler.transform(val.values)# print(val_normalized)test_normalized scaler.transform(test.values)# print(test_normalized)# 创建训练集包含测试集图graph create_graph(num_nodes, data[:int(len(data) * 0.8)].values)# 数据集处理生成样本和标签# step_size:每一步的步长;shuffle:是否打乱数据def process(dataset, batch_size, step_size, shuffle):# 将数据集由DataFrame转化为列表dataset dataset.tolist()# print(len(dataset), len(dataset[0]))# 创建样本序列seq []# 遍历训练数据集直到最后一个滑动窗口和预测步长前for i in tqdm(range(0, len(dataset) - seq_len - pred_step_size, step_size)):# 创建训练序列train_seq []# 遍历每一个滑动窗口for j in range(i, i seq_len):# 获取一个滑动窗口的样本x []for c in range(len(dataset[0])):x.append(dataset[j][c])train_seq.append(x)# print(x)# 获取一个滑动窗口的标签train_labels []for j in range(len(dataset[0])):train_label []for k in range(i seq_len, i seq_len pred_step_size):train_label.append(dataset[k][j])train_labels.append(train_label)# 得到每一个滑动窗口的训练样本与对应的标签转化为tensortrain_seq torch.FloatTensor(train_seq)train_labels torch.FloatTensor(train_labels)# print(train_seq.shape, train_labels.shape)seq.append((train_seq, train_labels))seq MyDataset(seq)seq DataLoader(datasetseq, batch_sizebatch_size, shuffleshuffle, num_workers0, drop_lastFalse)return seq# 得到每个数据集的DataLoaderDtr process(train_normalized, B, step_size1, shuffleTrue)Val process(val_normalized, B, step_size1, shuffleTrue)Dte process(test_normalized, B, step_sizepred_step_size, shuffleFalse)return graph, Dtr, Val, Dte, scaler 运行后得到训练集的图结构并将其数据与邻接矩阵加入后续的模型训练 函数最后返回训练集验证集和测试集的DataLoaderDtrValDte以及得到的归一化参数scaler加入后续模型的训练注意本次实验进行的是多步预测预测下一个月的股票交易数据 step3定义预测模型。这里使用GAT图注意力网络也可以换成GCN或GraphSAGE等其他的模型。 class GAT(nn.Module):def __init__(self, in_features, h_features, out_features):super(GAT, self).__init__()self.conv1 GATConv(in_features, h_features, heads4, concatFalse)self.conv2 GATConv(h_features, out_features, heads4, concatFalse)def forward(self, x, edge_index):x F.elu(self.conv1(x, edge_index))x self.conv2(x, edge_index)return x
http://www.zqtcl.cn/news/492763/

相关文章:

  • 开了360网站卫士ssl如何做301深圳制作网站开发费用
  • 在哪里做马可波罗网站公众号自己做电影网站
  • 网站建设音乐插件怎么弄陕西城乡建设部网站首页
  • 全国免费自学网站打开百度网站首页
  • 国外网站开发公司晋江论坛网
  • 问卷调查网站个人网站源码免费下载
  • 网站备案信息核验单填写建设企业网站价钱
  • 相城建设监理有限公司网站网页设计中html代码
  • 做农产品网站高端汽车
  • 工信部网站首页wordpress网站搬家vps
  • wordpress 淘客插件长沙排名优化公司
  • 网站首页怎么制作过程如何自己创作一个游戏
  • 自己做企业网站在哪学习建网站
  • 门户网站建设 突出服务学习电子商务网站建设与管理的收获
  • 做网站排名大概要多少免费做个人网站
  • 哈尔滨网站建设效果wordpress主题 手机app
  • 收录网站源码海外域名怎么打开
  • 荥阳网站建设上海十大营销策划公司
  • 在网站挂广告一个月多少钱巫溪网站建设
  • 网站备案名称的影响吗济南网站建设招聘
  • 南城区网站建设公司y2学年做的租房网站
  • 温州网站建设咨询网站源码下载后怎么布置
  • 邢台网站推广wordpress文章数据库位置
  • wordpress 快站wordpress 安装主题 主机名
  • 老网站改版启用二级域名网站建设服务是什么意思
  • 网站建设营销话术外销网站
  • 找个人给我做电影网站好主题网站开发介绍
  • 运城公司网站建设苏州网站建设苏州
  • 湖北省住房和建设厅网站首页网站用免费空间好不好
  • 网站建设公司案例做网站小图标大全