【论文阅读】基于深度学习的时序异常检测——TimesNet
系列文章链接
参考数据集讲解:数据基础:多维时序数据集简介
论文一:2022 Anomaly Transformer:异常分数预测
论文二:2022 TransAD:异常分数预测
论文三:2023 TimesNet:基于卷积的多任务模型
论文链接:TimesNet.pdf
代码库链接:https://github.com/thuml/Time-Series-Library
项目介绍:https://github.com/thuml/TimesNet
参考作者解读:ICLR2023 | TimesNet: 时序基础模型,预测、填补、分类等五大任务领先
本文和Anomaly Transformer都是清华大学的团队,也是同一个作者。本文研究基于深度学习异常检测有两个背景:
- 基于RNN或者CNN的算法,很难捕捉到时序数据的长期以来关系,因此都只能针对局部窗口内的数据进行建模,这个观点和TransAD是一样的;
- 近年来transformer表现出了提取时序数据长期依赖关系(如:周期性、季节性等)的优势,因此能够基于transformer进行依赖关系提取,但是简单的分散点位很难作为这种长序列依赖关系的强有力的表征,而且时序数据的周期性会受到多种周期性因素(天气、节假日等)的影响,因此需要考虑如何处理这种多周期变化带来的影响;
基于上述两点思考,作者提出了TimesNet这样的模型架构,具体创新点表现如下:
- 一维到二维的时序数据转换:将一维的时间序列转换成二维的数据表征,同时对时序数据周期内(连续邻近点位变化)和周期间(长期规律性变化)的变化进行建模;对于一个长度为 T T T、通道数为 C C C的一维时间序列 X 1 D ∈ R T ∗ C X_{1D}\in \mathbb R^{T*C} X1D∈RT∗C,对于长时间序列而言,其周期性可以通过傅立叶变换计算得到: A = A v g ( A m p ( F F T ( X 1 D ) ) ) \bold A=Avg(Amp(FFT(X_{1D}))) A=Avg(Amp(FFT(X1D))) f 1 , . . . f k = a r g f ∗ ∈ { 1 , . . . , [ T 2 ] } A f_1,...f_k=\underset {f_*\in \{1,...,[\frac {T}{2}]\}}{arg} \bold A f1,...fk=f∗∈{1,...,[2T]}argA p 1 , . . . p k = [ T f x ] , . . . , [ T f k ] p_1,...p_k=[\frac{T}{f_x}],...,[\frac{T}{f_k}] p1,...pk=[fxT],...,[fkT]其中 A \bold A A代表了一维时间序列中每个频率分量的强度,强度最大的 k k k个频率 { f 1 , . . . f k } \{f_1,...f_k\} {f1,...fk}对应最显著的 k k k个周期长度 { p 1 , . . . p k } \{p_1,...p_k\} {p1,...pk},上述过程简记如下: A , { f 1 , . . . f k } , { p 1 , . . . p k } = P e r i o d ( X 1 D ) \bold A,\{f_1,...f_k\},\{p_1,...p_k\}=Period(X_{1D}) A,{f1,...fk},{p1,...pk}=Period(X1D)这样基于上述计算就可以根据不同的周期长度进行计算出不同的二维张量表示: X 2 D i = R e s h a p e p i , f i ( P a d d i n g ( X 1 D ) ) , i ∈ { 1 , . . . k } X_{2D}^i=Reshape_{p_i,f_i}(Padding(X_{1D})),i\in\{1,...k\} X2Di=Reshapepi,fi(Padding(X1D)),i∈{1,...k}其中Padding 操作是为了保持张量维度的一致性; X 2 D i X_{2D}^i X2Di就可以表示在频率 f i f_i fi、周期长度 p i p_i pi的基础上转换的第 i i i个二维张量,行和列分别表示周期内和周期间的变化,经过这个转换,一维的时间序列数据就可以被转换成 k k k个不同频率和周期下的二维的张量集合 { X 2 D 1 , . . . X 2 D k } \{X_{2D}^1,...X_{2D}^k\} {X2D1,...X2Dk},经过这种转换,就可以采用二维卷积核来进行特征提取;


- TimesBlock:在完成一维到二维的转换后,采用Inception模型进行二维的张量集合处理(简化了一下表示,具体看原文): X ^ 2 D = I n c e p t i o n ( X 2 D ) \hat X_{2D}=Inception(X_{2D}) X^2D=Inception(X2D)然后就像残差模块的处理一样,通过聚合将卷积后的数据转换到一维空间: X ^ 1 D = T r u n c ( R e s h a p e 1 , p ∗ f ( X ^ 2 D ) ) \hat X_{1D}=Trunc(Reshape_{1,p*f}(\hat X_{2D})) X^1D=Trunc(Reshape1,p∗f(X^2D))然后采用加权求和的方式得到最终的输出:


该模型可以应用于多种任务:时序数据分类、预测、异常检测、缺失值填充等,从实验效果来看很全能;
相关文章:
【论文阅读】基于深度学习的时序异常检测——TimesNet
系列文章链接 参考数据集讲解:数据基础:多维时序数据集简介 论文一:2022 Anomaly Transformer:异常分数预测 论文二:2022 TransAD:异常分数预测 论文三:2023 TimesNet:基于卷积的多任…...
P3741 honoka的键盘
题目背景 honoka 有一个只有两个键的键盘。 题目描述 一天,她打出了一个只有这两个字符的字符串。当这个字符串里含有 VK 这个字符串的时候,honoka 就特别喜欢这个字符串。所以,她想改变至多一个字符(或者不做任何改变…...
编写第一个 React Native 程序
React Native 目录 使用React Native CLI命令创建的目录如下图所示: 重要目录说明 目录说明__tests__存放测试用例的目录.bundle / config配置文件(一般不会用到)android 和 IOS 文件夹这两个文件夹主要是存放安卓和 ios 相关的配置文件和…...
AI:03-基于深度神经网络的低空无人机目标检测图像识别的研究
文章目录 数据集收集与预处理深度神经网络模型设计模型训练与优化目标检测与图像识别代码实现:实验结果与分析讨论与展望低空无人机的广泛应用为许多领域带来了巨大的潜力和机会。为了实现无人机的自主导航和任务执行,准确的目标检测和图像识别是至关重要的。本文旨在研究并提…...
Arcgis将一个shp依照属性表导出为多个shp
# -*- coding:utf-8 -*-import arcpy import osfrom arcpy import env#env.workspace "./" #自己设置路径shp rC:\Users\Administrator\Desktop\Lake\xxx.shp #shp文件路径outpath r"C:\Users\Administrator\Desktop\Lake\fenli" #输出结果路径with arc…...
LeetCode.26,27,88三题-双指针的运用
本文将对3道解决方法类似的题目进行逐一分析,这三道题目分别是: LeetCode.26 删除有序数组中的重复项 LeetCode.27 移除元素 LeetCode.88 合并两个有序数组 1. LeetCode.27 移除元素: 题目内容如下: 假设一个数组为࿱…...
【Django】招聘面试管理01 创建项目运行项目
文章目录 前言一、创建项目二、运行项目三、访问后台管理页面四、配置项总结 前言 跟着视频学一学,记录一下。 一、创建项目 照着步骤创建虚拟环境,安装Django等依赖包,创建项目:【Django学习】01 项目创建、结构及命令 > d…...
C# 数据类型
C# 数据类型 一、整数类型(Integral Types)1.sbyte2.byte3.short4.ushort5.int6.uint7.long8.ulong 二、浮点数类型(Floating-Point Types)1.float2.double3.decimal 三、字符类型(Character Type)1.char 四…...
竞赛项目 深度学习手势识别算法实现 - opencv python
文章目录 1 前言2 项目背景3 任务描述4 环境搭配5 项目实现5.1 准备数据5.2 构建网络5.3 开始训练5.4 模型评估 6 识别效果7 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习手势识别算法实现 - opencv python 该项目较为新颖…...
前端进阶html+css04----盒子模型
1.一个盒子由content(文本内容),padding,border,margin组成。 2.盒子的大小指的是盒子的宽度和高度。一般由box-sizing属性来控制。 1)默认情况下, 也就是box-sizing: content-box时,盒子的宽高计算公式如下: 盒子宽…...
Go Web--Go Module
目录 一、Go Module 1、开启Go Module 2、Go Module基本操作 3、使用GoLand创建Go Module项目 4、GoLand配置File Watchers 一、Go Module Go Module包管理工具----相当于Maven 1.11版本引入 1.12版本正式支持 告别GOPATH,使用Go Module管理项目,…...
Spring Boot 统一功能处理(拦截器实现用户登录权限的统一校验、统一异常返回、统一数据格式返回)
目录 1. 用户登录权限校验 1.1 最初用户登录权限效验 1.2 Spring AOP 用户统⼀登录验证 1.3 Spring 拦截器 (1)创建自定义拦截器 (2)将自定义拦截器添加到系统配置中,并设置拦截的规则 1.4 练习:登录…...
P4058 [Code+#1] 木材
1:思路:二分月数,然后贪心,就是说要求最小月数,拿每次判断是否到达s长度的时候我们就从大的开始拿。 int l-1,r1e181;while(l1<r){int midlr>>1;if(check(mid))rmid;else lmid;} 2:记得看数据&a…...
Python学习笔记第五十二天(Pandas 安装)
Python学习笔记第五十二天 Pandas 安装查看安装版本 安装验证结束语 Pandas 安装 安装 pandas 需要基础环境是 Python,开始前我们假定你已经安装了 Python 和 Pip。 使用 pip 安装 pandas: pip install pandas安装成功后,我们就可以导入 pandas 包使用…...
分布式搜索ElasticSearch-ES(一)
一、ElasticSearch介绍 ES是一款非常强大的开源搜索引擎,可以帮我们从海量的数据中快速找到我们需要的内容。 ElasticSearch结合kibana、Logstash、Beats,也就是elastic stack(ELK),被广泛运用在日志数据分析,实时监控等领域。 …...
react学习笔记——3. jsx语法规则
jsx是什么? jsx全称:javaScript XML是react定义的一种类似于XML的js扩展语法,是jsxml。 xml早期用于存储和传输数据,是标签加数据的形式。只不过后来慢慢的变成了json 其本质就是React.createElement(标签,属性,内容)方法的语法糖…...
MySQL分表实现上百万上千万记录分布存储的批量查询设计模式
我们知道可以将一个海量记录的 MySQL 大表根据主键、时间字段,条件字段等分成若干个表甚至保存在若干服务器中。唯一的问题就是跨服务器批量查询麻烦,只能通过应用程序来解决。谈谈在Java中的解决思路。其他语言原理类似。这里说的分表不是 MySQL 5.1 的…...
射频入门知识-1
信号源 示波器 综合测试仪 功率计 噪声测试仪 频谱分析仪 频谱分析仪: 放大器的噪声系数测试 放大器增益测试 噪声和增益是放大器的最关键指标,学学怎么用频谱仪做放大器的噪声测试 那个 hbf740 输入和输出阻抗匹配具体怎么搞 《ADS2011射频电路设计与…...
基于注解函数式编程实现组件解耦设计
随着业务系统的不断发展,系统架构变得越来越复杂,多种业务交叉写在一起,不仅带来了维护层面的困难,而且新人也很难以入手修改代码,业界通常采用组件模块化开发模式,用于降低系统的复杂度,本文主要针对组件化具体实施过程中,组件层面的方法解耦进行了详细讲解。 1前言 …...
并查集、树状数组
并查集、树状数组、线段树 并查集树状数组树状数组1 (单点修改,区间查询)树状数组2 (单点查询,区间修改) 并查集 【模板】并查集 题目描述 如题,现在有一个并查集,你需要完成合并和查询操作。 输入格式 第一行包含两个整数 …...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
JDK 17 序列化是怎么回事
如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...
链式法则中 复合函数的推导路径 多变量“信息传递路径”
非常好,我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题,统一使用 二重复合函数: z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y)) 来全面说明。我们会展示其全微分形式(偏导…...
LangChain【6】之输出解析器:结构化LLM响应的关键工具
文章目录 一 LangChain输出解析器概述1.1 什么是输出解析器?1.2 主要功能与工作原理1.3 常用解析器类型 二 主要输出解析器类型2.1 Pydantic/Json输出解析器2.2 结构化输出解析器2.3 列表解析器2.4 日期解析器2.5 Json输出解析器2.6 xml输出解析器 三 高级使用技巧3…...
