来源:PaperWeekly

本文约1900,建议阅读5分钟

本文介绍了通用时间序列神经网络骨干—TimesNet。

01 简介

本文中了 ICLR 2023,是清华软院老师组的文章,一如既往的 Solid。

论文标题:

TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis

论文链接:

https://openreview.net/forum?id=ju_Uqw384Oq

代码链接:

https://github.com/thuml/TimesNet

本文的作者就是 Autoformer 的作者,所以本文的很多思想都延续了 Autoformer。

Autoformer 在知乎有作者团队官方的解析,如下:

https://zhuanlan.zhihu.com/p/385066440

不同于 Autoformer 只集中于时间序列预测,本文提出的 TimesNet 是一个通用的时间序列神经网络骨干,可处理各种不同的时间序列任务,如最常见的任务:预测、分类、异常检测等等。其实几乎所有的时间序列预测模型也可以当做是通用骨干,比如 Autoformer,Informer,FEDformer,Preformer 这些 Transformer-based 模型中只采用 Encoder 就相当于是一个时间序列的特征提取器,区别在于它们捕获时序依赖性的方式不同。

比如 Autoformer 是用 Auto-Correlation,Informer 中的概率稀疏 Attention,FEDformer 的频域 Attention,Preformer 中的 Multi-Scale Segment-Correlation。还有那些 MLP-based 模型比如 DLinear 也可以当做是通用骨干,它是直接采用线性层权重来表示时序依赖性。

02 Key Points

2.1 1D变2D

这是本文的核心。大部分现有方法都是作用于时间序列的时间维度,捕获时序依赖性。实际上,现实时间序列一般都有多种模式,比如不同的周期,各种趋势,这些模式混杂在一起。如果直接对原始序列的时间维度来建模,真正的时序关系很可能隐藏在这些混杂的模式中,无法被捕获。

考虑到:现实世界的时间序列通常具有多周期性,比如每天周期、每周周期、每月周期;而且,每个周期内部的时间点是有依赖关系的(比如今天 1 点和 2 点),不同的相邻周期内的时间点也是有依赖关系的(比如今天 1 点和明天 1 点),作者提出将 1D 的时间维度 reshape 成 2D 的,示意图如下。

下图左侧的时间序列具有三个比较显著的周期性(Period 1、Period 2、Period 3),将其 reshape 成三种不同的 2D-variations,2D-variations 的每一列包含一个时间段(周期)内的时间点,每一行包含不同时间段(周期)内同一阶段的时间点。变成 2D-variations 之后,就可以采用 2D 卷积等方式来同时捕获时间段内部依赖和相邻时间段依赖。

那么怎么确定时间序列中的周期性呢?采用傅里叶变换。给时间序列做傅里叶变换后,主要的周期会呈现对应的高幅值的频率分量。设定超参数 k,然后只取 top k 个最大的幅值对应的频率分量,即可得到 top k 个主要的周期,这和 Autoformer中的处理类似。

具体操作如下图,左侧是确定 top k 个周期,在此只画了三个,然后将 1D 的时间序列 reshape 成 3 种不同的 2D-variations(不能整除的可以用padding),对这三种 2D-variations 用 2D 卷积进行处理之后再聚合结果即可。

一般来说,对于一个多变量时间序列 ,其中  是变量维数, 是长度,虽然它是一个 2D tensor,但作者将其称为是 1D 的,这是因为在时间维度上来看是 1D 的。可以通过上图中这种方式,先算出主要周期和频率,再根据主要周期和频率将时间维度上是 1D 的时间序列 reshape 成 k 个 2D-variations。

注意,对于  个变量,最终算得的主要周期是所有变量的主要周期的平均,这也说明输入的多变量时间序列中包含的不同单变量时间序列的周期模式需要相似。最后,第 i 个 2D-variations 即是 ,其中  和  分别表示第 i 个周期和频率,它们的关系如下式:

2.2 TimesBlock

得到 k 个 2D-variations之后该怎么处理呢?本文提出了 TimesBlock,每层 TimesBlock 又分为两步。首先是要先对这些 2D-variations 分别用 2D 卷积(可以是 ResNet、ConvNeXt 等)或者其他的视觉骨干网络(比如 Swin,Vit)处理;其次将 k 个处理后的结果再聚合起来。

对于第一步,本文采用了一种参数高效的 Inception block。Inception block 是GoogleNet 中的模块,包含多个尺度的 2D 卷积核。如下图左侧蓝色区域,处理 k 个 2D-variations 的 Inception block 是参数共享的。因此,模型整体的参数量不会随着超参数 k 的增大而增大,因此本文将其称为参数高效的. Inception block(Parameter-efficient Inception block)。

对于第二步,在处理完 k 个 2D-variations 之后,需要将其展平回 1D-variations,并截断到原始长度 (这对应于前面不能整除时使用 padding 的情况,相当于把多余的 padding 给去掉)。总之,得到 k 个变换回去的 1D-variations 之后,该如何聚合这 k 个结果呢?

如上图右侧所示,也是延续 Autoformer 的思路,根据傅里叶变换后频率周期对应的赋值大小来加权聚合,幅值大的证明该频率周期的分量越显著也越重要,给它较大的聚合权重,幅值小的则相反。直接用 softmax 归一化这些幅值 ,然后将归一化后幅值作为加权权重来聚合上面得到的 k 个 1D-variations 即可:

2.3 实验结果

作者在五种时间序列任务上做了实验,充分对比了一些其他的时间序列骨干。五边形战士:

作者也用了不同的视觉骨干来处理 2D-variations:

在长时间序列预测上的效果:

03 Comments

文章真的写的很好,idea 很清晰合理,实验很充分效果也很不错,在长时间序列预测上超越了很多很先进的 Transformer-based 模型和 MLP-based 模型。有些新中 2023 ICLR 的论文在长时间序列预测上的效果非常差,甚至是一些时序预测任务上中了 oral 的文章,写的花里胡哨,创新性也没有特别显著,常看这个领域的基本看一遍那些文章就知道大概啥水平,效果也不能打,根本不实用。

编辑:王菁

校对:林亦霖

ICLR 2023 | 清华大学龙明盛组提出通用时间序列神经网络骨干—TimesNet相关推荐

  1. 【清华大学龙明盛副教授】迁移学习理论与算法

    来源:专知 本文多图,建议阅读5分钟 本文重点介绍间隔泛化理论及其对抗学习算法. 报告人简介:龙明盛,清华大学软件学院副教授,博士生导师,大数据系统软件国家工程实验室机器学习组组长.2008和2014 ...

  2. 迁移学习理论与算法_龙明盛

    迁移学习理论与算法--龙明盛 迁移学习背景 监督学习范式中,一般从一个数据分布P中采集一个数据集,在这个数据集上训练一个机器学习学习器f,这个假设往往封闭静态假设即训练和测试数据集都是iid(独立同分 ...

  3. DAN源码解读(龙明盛Xlearn)

    目录 main函数 transfer_classification() prep.image_train() prep.image_test_10crop() prep.image_test() im ...

  4. 【龙明盛】深度学习理论课_学习笔记02_感知机

    (0)摘要 # 课程内容: (1)感知机_1 [本节课中,个人也补充了相当多的知识点] # 自强不息,厚德载物

  5. 告别低分辨率网络,微软提出高分辨率深度神经网络HRNet | CVPR 2019

    来源 | 微软研究院AI头条(ID:MSRAsia) 作者简介:孙可,中国科学技术大学信息学院在读博士生,目前在微软亚洲研究院视觉计算组实习,导师是王井东和肖斌老师.他的研究兴趣包括人体姿态估计.语义 ...

  6. CVPR 2019 | 告别低分辨率网络,微软提出高分辨率深度神经网络HRNet

    我爱计算机视觉曾经两次报道HRNet: 1. CVPR2019 | 微软.中科大开源基于深度高分辨表示学习的姿态估计算法 (论文出来第二天就向大家推送解读了) 2. 分割.检测与定位,高分辨率网络显神 ...

  7. ICLR 2023 | PatchDCT: 开启精细化实例分割新篇章!

    作者 | 派派星 编辑 | CVHub 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[实例分割]技术交流群 后台回复[分割综述]获取 ...

  8. ICLR 2023杰出论文奖出炉!北大获奖,清华、人大等提名

    源|机器之心 昨日,ICLR 2023 获奖论文公布!来自北京大学的张博航.罗胜杰.王立威.贺笛获得杰出论文奖,清华大学孔祥哲.中国人民大学高瓴人工智能学院黄文炳.清华大学刘洋获得杰出论文奖提名. I ...

  9. 清华大学唐杰老师组:自监督学习最新研究进展

    作者|AI Box 来源|RUC AI Box 近年来,深度监督学习取得了巨大的成功.然而,它依赖于手工标签,并且易受攻击的弱点促使学者们探索更好的解决方案.近年来,自监督学习作为一种新的学习方法,在 ...

最新文章

  1. python创建txt文件-python创建txt文件
  2. OkHttpClient源码分析(五)—— ConnectInterceptor和CallServerInterceptor
  3. 如何让本机时间与局域网的一台电脑的日期同步?
  4. angular 的配置文件的应用
  5. maven dependency scope
  6. AtCoder SoundHound Inc. Programming Contest 2018 E + Graph (soundhound2018_summer_qual_e)
  7. 网站中应用QQ一键登录,详细讲解和范例
  8. python实现自适应中值滤波器
  9. treeTable的简单用法
  10. python实现高斯消元法求线性方程组的解
  11. 命令与征服4 You might have build the wrong LOD level 错误
  12. BugkuCTF-WEB-flag在index里
  13. itextpdf5.x实现合同签署盖章预览功能
  14. 利用Eclipse-Python简单爬取京东商城书籍信息进行可视化
  15. https SSL协议详解
  16. 计算机应用基础全册教案,[定稿]计算机应用基础全册教案
  17. 【Linux】软件包管理器 yum 与编辑器 vim 的基本使用
  18. 微信小程序之排行榜功能实现
  19. 字符串匹配值Sunday算法
  20. 带赖子的麻将胡牌算法Java_有人讨论下麻将胡牌,出牌算法吗,求思路

热门文章

  1. jQuery知识梳理总结
  2. 计算机毕设Python+Vue医疗门诊管理系统(程序+LW+部署)
  3. Html5游戏制作 弹球游戏Pong (可在线预览对战 ^_^)
  4. 原生JavaScript实现弹球游戏
  5. python模块捆绑器组件_让我们学习模块捆绑器如何工作,然后自己编写
  6. 【软件】Notepad++的安装及其相关问题(32位)
  7. 广州python培训什么
  8. 工具和网络游戏封包基础
  9. iOS APP转让(从A开发者账号转到B开发者账号)
  10. 64位系统VBS调用32位COM组件