【论文阅读】基于深度学习的时序异常检测——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 (单点查询,区间修改) 并查集 【模板】并查集 题目描述 如题,现在有一个并查集,你需要完成合并和查询操作。 输入格式 第一行包含两个整数 …...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果 sudo apt install fonts-wqy…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
