【文章学习系列之模型】Informer

news2024/11/25 4:22:42

本章内容

  • 文章概况
  • 总体结构
  • 重点结构
    • self-attention distilling operation(自注意蒸馏操作)
    • generative style decoder(生成式解码器)
    • ProbSparse self-attention mechanism(概率稀疏自注意机制)
  • 实验结果
    • 主要实验结果
    • 其他实验结果
  • 总结

文章概况

《Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting》是2021年发表于AAAI的一篇论文。常规自注意机制和Transformer模型已达性能瓶颈,作者尝试寻找新的方法来提高Transformer模型的性能,使其在具备更高效计算、内存和架构能力的同时,又能拥有更优异的预测能力。基于此,该论文提出了一种新的时序预测思路和自注意力机制。

文章代码链接:
论文链接
代码链接
除此之外,在原先论文方法的基础上,作者更加丰富了实验内容,发表了一篇期刊论文(Artificial Intelligence)。
延伸论文链接

总体结构

在这里插入图片描述

该论文的模型总体结构如上图所示,属于Encoder-Decoder结构,我们将两者分开看。

Encoder:
在这里插入图片描述
该部分输入是时序长度为seq_len的过去数据 X e n X_{en} Xen,首先进行的是编码操作(如上图所示),包含数值编码(蓝)、位置编码(黄)、时间编码(粉)。接着通过由若干个Encoder组成的Encoder Stack提取数据特征并合并所有Encoder提取到的特征图 X f m X_{fm} Xfm
Decoder:
该部分输入一个组合值 X d e X_{de} Xde,包含 X e n X_{en} Xen的后一部分 X t o k e n X_{token} Xtoken(其长度的选择没有固定说法,介于0到seq_len即可,可选择 X e n X_{en} Xen的后一半)和需要预测的长度为pred_len的时序数据 X 0 X_{0} X0(因其属于预测未知值,因此数值部分使用0填充)。接着,将 X f m X_{fm} Xfm X d e X_{de} Xde输入Decoder后得到预测结果。

重点结构

self-attention distilling operation(自注意蒸馏操作)

在这里插入图片描述

该操作本质上由若干个Encoder组成,目的是提取到稳定的长期特征。每个Encoder的网络深度逐渐递减,输入数据的长度也随之递减,最终将所有Encoder提取到的特征进行拼接。需要注意的是,为了使Encoder们有所区别,作者通过确定每个分支自注意力机制的重复次数逐渐递减每个分支的深度,同时,为了保证待合并数据的大小一致,每个分支只取前一个分支后一半的输入值作为输入。

generative style decoder(生成式解码器)

在这里插入图片描述
在过去的时序预测中,往往需要分别进行多步预测才能得到未来若干个时间点的预测结果。然而这种多预测方法,随着预测长度的不断增加,累积误差会越来越大,导致长期预测缺少了现实意义。本文作者提出了生成式解码器来获取序列输出,只需要一个推导过程,便可以获得所需目标长度的预测结果,有效地避免了多步预测中累积误差的扩散。

ProbSparse self-attention mechanism(概率稀疏自注意机制)

在这里插入图片描述
该方法的提出源于作者对自注意力机制特征图的思考。作者对第一层自注意机制的Head1和Head7进行可视化,发现特征图中仅有几道明亮条纹,同时两个头的得分少部分值较大,符合长尾数据的分布特征,如上图所示。于是得到结论:小部分点积对贡献了主要的关注,而其他的则可以忽略。根据这一特点,作者着重对高得分点积对进行关注,尝试在每次的自注意模块的运算中仅需要计算高得分的部分,从而有效减少模型的时间和空间成本。

传统自注意力机制:
z = s o f t m a x ( Q K T d k ) V z=softmax(\frac{QK^{T} }{\sqrt{d_{k} } } )V z=softmax(dk QKT)V

ProbSparse:
1.在长尾分布中,高得分占比小,没必要全计算一遍,采用随机采样降低计算量:通过从 K K K中随机选择若干张量来达到对 Q K T QK^{T} QKT随机采样的目标;
2.KL散度计算分布差距,寻找突出:对于注意力得分 S S S,特征提取有效时,满足上图所示长尾分布的情况,特征图表现为少数明亮条纹,特征提取效果不佳时,注意力得分相近,特征图中也不存在鲜明对比的条纹,长尾分布变为均匀分布。因此可利用KL散度计算分布之间的差距,并选择分布差距最大的若干个注意力得分,并获得他们的索引 i n d e x index index
3.对突出部分求值,大大降低计算量:根据 i n d e x index index寻找到 Q Q Q中对应的 Q ˉ \bar{Q} Qˉ后,再进行注意力得分计算 S = Q ˉ K T d k S=\frac{\bar{Q}K^{T} }{\sqrt{d_{k} } } S=dk QˉKT。对 V V V取均值并赋值给 z z z,取 V V V位于索引 i n d e x index index处的数值做运算 z i n d e x = s o f t m a x ( S ) V z_{index}=softmax(S)V zindex=softmax(S)V,更新 z z z中对应索引位置上的值。
4.如此往复,直至训练迭代完毕。

实验结果

主要实验结果

单变量长序列预测结果:
在这里插入图片描述
多变量长序列预测结果:
在这里插入图片描述
其中 I n f o r m e r + Informer^{+} Informer+使用的是典型的自注意力机制。
由上图优势项个数的对比结果可以看出,Informer具有明显的优势,在各种数据集均表现不错。

其他实验结果

该部分作者进行了不少对比:数据的时间粒度、参数的敏感性和模型结构的消融实验等等。此外作者还比较了几种方法的总运行时间、时间复杂度、空间复杂度和推理步数。总体而言,Informer表现出较为稳定且优异的预测性能。

总结

这本篇文章做了很多公式推导和求证,精妙的近似手段和精彩的公式过程使得作者改进后的自注意力机制效果和合理性并存。当然,编解码器同样在模型提升、效果提高上占据着不可磨灭的功劳。总体来说,就目前看来,没有什么缺点,效果还不错,确实厉害。

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

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

相关文章

双向沟通写作法: 用妙记多 Mojidoc 快速写作的实践

在妙记多 Mojidoc,我们希望能够为用户提供快速开始生产力的工具,为此我们一直在加快完善用户使用中的需求和功能迭代,请查看妙记多更新日志,看看我们产品改进速度。 妙记多 Mojidoc 如何实践双向沟通写作法以及在双向写作的文档中…

自称是资深Android程序员的面试现场,结果被面试官吊打~

1背景 牛哥工作五年了,是一名“资深”程序员(嗯…至少他自己是这么认为的) 牛哥所在的公司已经两年没有涨过工资了(嗯…至少他是两年没涨过了) 牛哥坐不住了,这位“资深”程序员打算去“外面的世界”看看…

〖ChatGPT实践指南 - 零基础扫盲篇④〗- OpenAI API 相关介绍、提示-Prompt 与 完成-Completion

文章目录 ⭐ OpenAI API介绍⭐ 提示-Prompt 与 完成-Completion 介绍 这一章节将为各位小伙伴介绍一下 OpenAI 的 API 相关内容,以及在 ChatGPT 中两个经常被用来比较的名词:“提示-prompt” 与 “完成-completion”。 ⭐ OpenAI API介绍 OpenAI API 概…

Fido无密码认证示例部署运行

文章目录 什么是FIDOwebauthn部署运行访问测试 本文对fido基本概念进行总结说明,并部署运行一个实际的例子,可以直观的体验fido无密码认证。晚上的例子方便后续实现相关功能。 什么是FIDO 常见认证方式的问题 目前流行认证方式普遍存在一些问题 用户名…

Ajax ASP/PHP

文章目录 AJAX ASP/PHP 实例AJAX ASP/PHP 实例实例解析 showHint() 函数AJAX 服务器页面 ASP 和 PHPASP 文件PHP 文件 AJAX ASP/PHP 实例 AJAX 用于创造动态性更强的应用程序。 AJAX ASP/PHP 实例 下面的例子将为您演示当用户在输入框中键入字符时,网页如何与 web…

【打卡-Coggle竞赛学习2023年4月】图像检索与重复图像识别

#### 任务1:图像匹配与检索 图像相似度 图像相似度是用于度量两幅图像之间相似程度的指标。图像相似度可以基于像素级别的相似度或者基于特征匹配的相似度来计算。像素级别的相似度通常是基于两幅图像的像素值来计算的,包括均方误差、结构相似性指数&a…

被遗忘的Java关键字:transient

前言 今天在看项目代码时候,看到了下面这样一行代码,用transient修饰了一个变量,主要作用是做一个全局开关。说实话我是第一次看到这个关键字。激发了我的好奇心,所以就了解一下这是何方神圣。 /*** 全局开关*/public static tran…

Linux第三章

文章目录 前言一、Linux的root用户1.用户和用户组2.查看权限控制信息3.chmod命令4.chown命令 总结 前言 一、Linux的root用户 无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。在Linux系统中,拥有最大权限的账户名为:root(…

QGIS数据可视化学习笔记03——地理解析(地址解析,地理编码......)和数据上图

一、地理解析 百度百科传送门:https://baike.baidu.com/item/%E5%9C%B0%E7%90%86%E7%BC%96%E7%A0%81/2890260 简单来说,就是名称对应QGIS中经纬度等坐标的转换,比如给出北京朝阳公园,你在QGIS中转换为对应的经纬度坐标&#xff0c…

企业网站注册攻略,告别烦恼!

业网站的注册过程可能对于一些初创企业来说比较繁琐,但它是推广企业品牌的重要途径之一。本文将为您介绍企业网站注册的攻略,帮助您更加高效地完成注册过程。 步骤: 1、确定网站类型:在开始注册之前,企业需要确定网站…

ASEMI代理ADI亚德诺ADG5412BRUZ-REEL7车规级芯片

编辑-Z ADG5412BRUZ-REEL7芯片参数: 型号:ADG5412BRUZ-REEL7 开态电阻:9.8Ω 电源断开漏电流:0.05 nA 输入高电压:2V 输入低电压:0.8V 输入电流:0.002μA 数字输入电容:2.5 …

Bean作用域与生命周期

日升时奋斗,日落时自省 目录 1、Bean的作用域问题 1.1、Lombok 1.2、修改Bean对象 2、作用域定义 2.1、Bean的6种作用域 2.1.1、singleton 2.1.2、prototype 2.1.3、request 2.1.4、session 2.1.5、appliction(了解) 2.1.6、webs…

I2C驱动框架介绍以及Linux下sht20驱动开发温湿度传感器获取温湿度

文章目录 一、I2C驱动框架(1)I2C驱动框架介绍(2)I2C总线驱动介绍【1】i2c_adapter结构体【2】i2c_algorithm结构体【3】I2C总线驱动工作介绍 (3)I2C设备驱动介绍【1】i2c_client结构体【2】i2c_driver结构体…

Docker容器---Harbor私有仓库部署与管理

Harbor私有仓库部署与管理 一、Harbor概述二、Harbor特性三、Harbor构成四、Harbor构建Docker私有仓库1、部署docker-compos2、下载或上传 Harbor 安装程序3、启动Harbor4、查看Harbor启动镜像5、浏览器访问创建一个新项目6、通过127.0.0.1来登录和推送镜像7、在客户端上传镜像…

【JavaScript】动态表格

🎊专栏【 前端易错合集】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 🍔介绍 就是在输入框中输入数字后,再按…

Linux安装mysql(5.7解压版)

Linux服务器安装软件时,建议安装解压版,将文件安装在自己指定的目录。安装版一般会将软件安装在Linux默认的目录,如/usr/local/,配置文件在/etc/,日志在/logs,安装目录比较分散,特别是不熟悉该软…

RabbitMQ --- SpringAMQP

一、简介 SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。 SpringAmqp的官方地址:Spring AMQP SpringAMQP提供了三个功能: 自动声明队列、交换机及其绑定关系 基于注解的监…

代码随想录算法训练营第四十二天|01背包问题,你该了解这些!、01背包问题,你该了解这些! 滚动数组 、416. 分割等和子集

文章目录 01背包问题,你该了解这些!01背包问题,你该了解这些! 滚动数组416. 分割等和子集 01背包问题,你该了解这些! 题目链接:代码随想录 二维数组解决0-1背包问题 解题思路: 1.dp…

tensorflow ---gpu的环境配置

1. CUDA配置: 先鼠标右键查看对应的CUDA的版本: 2.安装CUDA: 1.点击 CUDA去官网来下载安装包。 这里我选择的是我电脑支持的9.0的版本: 2.下载CUDA安装包: 3. 安装CUDA的过程: 自定义安装路径&#xff…

RabbitMQ --- 简介、快速入门

一、初识MQ 1.1、同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应 异步通讯:就像发邮件,不需要马上回复 两种方式各有优劣,打电话可以立即得到响应,但…