时序必读论文13|ICLR24 “又好又快”的线性SOTA时序模型FITS

图片

论文标题:FITS: Modeling Time Series with 10k Parameters

开源代码:https://anonymous.4open.science/r/FITS/README.md

前言

FITS(Frequency Interpolation Time Series Analysis Baseline)这篇文章发表于ICLR2024,也是之前SOTA的线性模型DLinear团队的最新论文。FITS的主要贡献在于基于傅立叶变换和低通滤波,通过在复频域内进行插值来操作时间序列,结合时域和频域优势,适用于边缘计算和实时分析任务,据作者所说,它具有大约10,000个参数

我个人觉得,大家很要必要研读一下DLinear和FITS这两篇文章,不在于模型,而在于作者讲故事的能力和技巧。如何把一个结构简单的模型,放到一个特定的应用领域(边缘端)讲出来,特别是配合分析。

傅立叶变换

由于这篇文章的核心卖点之一就是进行了傅立叶变换,所以作者在论文中首先回顾了傅立叶变换的基本知识点,涉及时间序列数据从时域到频域的转换。

在傅里叶分析中,复频域是一种信号表示方法,其中每个频率分量都用一个复数来表征。这个复数包含了该频率分量的幅度和相位。频率分量的幅度代表了该分量在原始时域信号中的大小或强度。相对地,相位则表示了该分量引入的时间上的偏移或延迟。数学上,与频率分量相关联的复数可以表示为具有特定幅度和相位的复指数形式:

图片

这里,𝑋(𝑓)是与频率分量 𝑓相关联的复数,∣𝑋(𝑓)∣ 是该分量的幅度,𝜃(𝑓) 是该分量的相位,而 𝑒^(𝑗𝜃(𝑓))是一个复指数,其中 𝑗 是虚数单位。如图 1(a) 所示,在复平面上,复指数元素可以被可视化为一个向量,其长度等于幅度 ∣𝑋(𝑓)∣,角度等于相位 𝜃(𝑓)。这个复指数同时包含了幅度和相位信息,使得我们能够全面地理解和分析信号的频率特性。

图片

如果用三角函数表示,则如下公式,在这个表示中,cos⁡(𝜃(𝑓))和 sin⁡(𝜃(𝑓))分别是复数在复平面实轴和虚轴上的投影,而 𝑗是虚数单位。

𝑋(𝑓)=∣𝑋(𝑓)∣(cos⁡(𝜃(𝑓))+𝑗sin⁡(𝜃(𝑓)))

得到的复数特征由所有的频率分量组成,幅值最大的频率最能代表原始时域序列的周期。如果对该复数特征的每个频率分量进行复数域上的线性变换,使它和其他复数相乘,则会改变它的相位和幅值,如上图(b)。

FITS模型

图片

关于模型推荐大家结合代码来看,非常清晰,FITS的流程如图所示:

  • 首先对于长度为L的序列,作者首先进行了RIN归一化,目的是为了使序列均值为0,然后使用傅立叶变换rFFT把时域信息转到频域(复数域)。

  • 然后,使用低通滤波器(LPF)将高频分量过滤掉,这部分在代码中是通过一个cut_freq参数来确定的。这样的好处在于能够去掉噪声,减少模型参数量。

  • 之后,通过图中紫色部分的Complex-valued Linear Layer,这部分是一个上采样(线性层),相当于对频率特征做了线性变换,其长度取决于pred_len和seq_len的比例。

  • 最后,将新的频率特征进行零pad,使用傅立叶逆变换irFFT转回时域。

从上面的流程来看,整个FITS的核心就是三部分:傅立叶变换、复频率线性插值和低通滤波。我们着重看一下低通滤波,即到底应该过滤掉多少高频的频域信息。

图片

如图所示,即使只保留原始频域表示的四分之一,滤波后的波形也显示出最小的失真。此外,LPF滤除的高频分量通常包含噪声,这些噪声对于有效建模时间序列本质上是不相关的。

如果幅值最大频率为主频率,按照它的整数倍即harmonic分量来截断。

FITS对比试验

图片

在模型参数量大大减少的情况下,FITS和Patch TST互有胜负,模型算是SOTA了。在比较推理速度,FITS的优势就出来了。

图片

FITS总结

对于我们大多数普通团队来说,时间序列研究想从纯算法的角度SOTA好难😢。这篇文章换了一个赛道,在低参数量、快推理速度的边缘段,做了一个并不复杂的模型,发到了ICLR24,不得不佩服作者讲故事的能力和技巧。


大家一定要关注我的公众号【科学最top】,第一时间follow时序高水平论文解读!!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙开发(NEXT/API 12)【硬件(Pen Kit)】手写笔服务

Pen Kit(手写笔服务)是华为提供的一套手写套件,提供笔刷效果、笔迹编辑、报点预测、一笔成形和全局取色的功能。手写笔服务可以为产品带来优质手写体验,为您创造更多的手写应用场景。 目前Pen Kit提供了四种能力:手写…

C++入门day5-面向对象编程(终)

C入门day4-面向对象编程(下)-CSDN博客 本节是我们面向对象内容的最终篇章,不是说我们的C就学到这里。如果有一些面向对象的基础知识没有讲到,后面会发布在知识点补充专栏,全都是干货满满的。 https://blog.csdn.net/u…

2024-09-27 buildroot C和语言将 中文的GBK编码转换为 UTF-8 的代码, printf 显示出来,使用 iconv 库去实现。

一、GBK 的英文全称是 "Guobiao Kuozhan",意为 "National Standard Extended"。它是对 GB2312 编码的扩展,用于表示更多汉字和符号 GBK(国标扩展汉字编码)是一种用于简体中文和繁体中文字符的编码方式&#x…

Python 从入门到实战30(高级文件的操作)

我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。 上篇文章我们讨论了操作目录的相关知识。今天我们将学习一下高级文…

Mac系统Docker中SQLserver数据库文件恢复记录

Mac系统Docker中SQLserver数据库文件恢复记录 Mac想要安装SQLsever,通过docker去拉去镜像是最简单方法。 一、下载Docker Docker 下载安装: 需要‘科学上网’ 才能访问到docker官网。( https://docs.docker.com/desktop/install/mac-ins…

C语言进阶版第12课—字符函数和字符串函数1

文章目录 1. 字符分类函数1.1 库函数iscntrl1.2 库函数isspace1.3 库函数islower和isupper 2. 字符转换函数3. strlen函数的使用和模拟实现3.1 strlen函数的使用3.2 strlen函数的模拟实现 4. strcpy函数的使用和模拟实现4.1 strcpy函数的使用4.2 strcpy函数的模拟实现 5. strca…

C++读取txt文件中的句子在终端显示,同时操控鼠标滚轮(涉及:多线程,产生随机数,文件操作等)

文章目录 🌕运行效果🌕功能描述🌕代码🌙mian.cpp🌙include⭐MouseKeyControl.h⭐TipsManagement.h 🌙src⭐MouseControl.cpp⭐TipsManagement.cpp 🌕运行效果 🌕功能描述 线程一&am…

web前端-CSS引入方式

一、内部样式表 内部样式表(内嵌样式表)是写到html页面内部,是将所有的 CSS 代码抽取出来,单独放到一个<styie>标签中。 注意: ① <style>标签理论上可以放在 HTML文档的任何地方&#xff0c;但一般会放在文档的<head>标签中 ② 通过此种方式&#xff0c;可…

开发提效的工具tabby快速入门

1.什么是tabby&#xff1f; Tabby is an open-source, self-hosted AI coding assistant. With Tabby, every team can set up its own LLM-powered code completion server with ease. 官方网站&#xff1a;https://tabby.tabbyml.com/ 2.tabby服务安装(Hugging Face Spaces…

虚幻引擎的三种输入模式和将控件显示到屏幕上

首先要知道一个概念 , HUD 和 Input 都是由 PlayerController 来控制的 而虚幻的Input控制模式有三种 Set Input Mode Game Only (设置输入模式仅限游戏): 视角会跟着鼠标旋转 , 就是正常游戏的模式 , 这也是游戏默认输入模式 Set Input Mode UI Only (设置输入模式仅限UI): …

【C++】 vector 迭代器失效问题

【C】 vector 迭代器失效问题 一. 迭代器失效问题分析二. 对于vector可能会导致其迭代器失效的操作有&#xff1a;1. 会引起其底层空间改变的操作&#xff0c;都有可能是迭代器失效2. 指定位置元素的删除操作--erase3. Linux下&#xff0c;g编译器对迭代器失效的检测并不是非常…

通信工程学习:什么是FDD频分双工

FDD:频分双工 FDD(频分双工,Frequency Division Duplexing)是一种无线通信技术,它通过将频谱划分为上行和下行两个不重叠的频段来实现同时双向通信。以下是FDD频分双工的详细解释: 一、定义与原理 定义: FDD是一种无线通信系统的工作模式,其中上行链路(从移动…

每日OJ_牛客_OR59字符串中找出连续最长的数字串_双指针_C++_Java

目录 牛客_OR59字符串中找出连续最长的数字串 题目解析 C代码1 C代码2 C代码3 Java代码 牛客_OR59字符串中找出连续最长的数字串 字符串中找出连续最长的数字串_牛客题霸_牛客网 题目解析 双指针&#xff1a; 遍历整个字符串&#xff0c;遇到数字的时候&#xff0c;用双…

坚果N1 Air高亮版对比当贝D6X高亮版:谁是2000元预算的投影仪王者?

当贝D6X高亮版新品升级&#xff0c;对于那些计划在这个时间点购买投影仪的用户来说&#xff0c;现在是个绝佳的时机&#xff01;特别是那些预算在两千元左右的&#xff0c;目前两千元左右的投影仪&#xff0c;无外乎两款产品&#xff0c;当贝D6X高亮版和坚果N1 Air高亮版&#…

常见区块链数据模型介绍

除了加密技术和共识算法&#xff0c;区块链技术还依赖于一种数据模型&#xff0c;它决定了信息如何被结构化、验证和存储。数据模型定义了账户如何管理&#xff0c;状态转换如何发生&#xff0c;以及用户和开发者如何与系统交互。 在区块链技术的短暂历史中&#xff0c;数据…

13年408计算机考研-计算机网络

第一题&#xff1a; 解析&#xff1a;OSI体系结构 OSI参考模型&#xff0c;由下至上依次是&#xff1a;物理层-数据链路层-网络层-运输层-会话层-表示层-应用层。 A.对话管理显然属于会话层&#xff0c; B.数据格式转换&#xff0c;是表示层要解决的问题&#xff0c;很显然答案…

怎样用云手机进行TikTok矩阵运营?

在运营TikTok矩阵时&#xff0c;许多用户常常面临操作复杂、设备过多等问题。如果你也感到操作繁琐&#xff0c;不妨考虑使用云手机。云手机具备丰富的功能&#xff0c;能够帮助电商卖家快速打造高效的TikTok矩阵。接下来&#xff0c;我们将详细解析这些功能如何提升你的运营效…

智能化转型新篇章:EasyCVR引领大型连锁超市视频监控进入AI时代

随着科技的飞速发展&#xff0c;视频监控系统在各行各业中的应用日益广泛&#xff0c;大型连锁超市作为人员密集、商品繁多的公共场所&#xff0c;其安全监控显得尤为重要。为了提升超市的安全管理水平、减少损失、保障顾客和员工的安全&#xff0c;引入高效、全面的视频监控系…

Meta震撼发布Llama3.2大规模模型

在2024.9.26的年Meta Connect大会上&#xff0c;Meta正式推出了Llama3.2模型&#xff0c;旨在提升边缘AI和视觉任务的能力。Llama3.2系列包括11亿和90亿参数的中型视觉模型&#xff0c;以及为移动设备优化的1亿和3亿参数的小型模型&#xff0c;并针对高通和联发科的硬件平台进行…

Navicat数据库管理工具实现Excel、CSV文件导入到MySQL数据库

1.所需要的工具和环境 navicat等第三方数据库管理工具云服务器中安装了 1Panel面板搭建的mysql数据库 2.基于 1Panel启动mysql容器 2.1 环境要求 安装前请确保您的系统符合安装条件&#xff1a; 操作系统&#xff1a;支持主流 Linux 发行版本&#xff08;基于 Debian / Re…