【学习资源】时间序列数据分析方法(2)-mWDN和AutoEncoder

接着上次的【学习资源】时间序列数据分析方法(1)-CSDN博客,本次介绍mWDN和AutoEncoder 解决时序数据分类的方法。介绍模型原理、应用场景和参考代码。也从模型性能、训练效率、模型复杂度、计算复杂度、可解释性、适应性和泛化能力、健壮性、数据需求等方面介绍模型的优点和缺点。

1 mWDN

1.1 原理

mWDN是指 Multilevel Wavelet Decomposition Network for Interpretable Time Series Analysis ,分析时序数据的频域特征,将小波分析与深度学习融合。

参考来源:https://arxiv.org/abs/1806.08946  arXiv:1806.08946 [cs.LG]

论文摘要

近年来,几乎所有学术和工业领域的时间序列都出现了前所未有的增长。各种深度神经网络模型已被引入时间序列分析,但重要的频率信息仍然缺乏有效的建模。鉴于此,本文提出了一种基于小波的神经网络结构,称为多级小波分解网络(mWDN),用于构建时间序列分析的频率感知深度学习模型。mWDN保留了多级离散小波分解在频率学习中的优势,同时可以在深度神经网络框架下对所有参数进行微调。基于mWDN,我们进一步提出了两个深度学习模型,分别称为残差分类流(Residual Classification Flow,RCF)和多频率长短期记忆(multi-frequecy Long Short-Term Memory,mLSTM),用于时间序列分类和预测。这两个模型将不同频率的所有或部分mWDN分解子序列作为输入,并采用反向传播算法全局学习所有参数,从而将基于小波的频率分析无缝嵌入到深度学习框架中。在40个UCR数据集和一个真实用户数据集上进行的广泛实验表明,我们基于mWDN的时间序列模型具有卓越的性能。特别是,我们为基于mWDN的模型提出了一种重要性分析方法,该方法能够成功识别出对时间序列分析至关重要的那些时间序列元素和mWDN层。这确实表明了mWDN的可解释性优势,可以被视为对可解释深度学习的深入探索。

代码使用模型说明:https://timeseriesai.github.io/tsai/models.mwdn.html

代码来源

https://github.com/JacobWang95/mWDN

关于小波分析,可参考【工程数学】笔记3:数字信号处理_brick-wall filter-CSDN博客

1.2 优点和缺点

表1 mWDN的优点和缺点

优点缺点
模型性能

在处理非平稳时序数据时表现优越,因其通过小波变换捕捉多频率特征,提升了模型的准确性。

性能可能依赖于参数选择的准确性,例如小波函数类型和分解层数。

训练效率

在处理具有良好结构的时序数据时,可能较传统方法更快达到理想性能。

由于多级小波分解和神经网络的结合,训练时间可能较长,尤其在资源有限的情况下。

模型复杂度

多层结构允许更细致的特征提取,适合复杂数据分析。

高度复杂的模型结构可能导致理解和调试的难度增加。

计算复杂度

有效处理高维度数据,保持了较高的信息完整性。

高计算需求,尤其在大规模数据处理时,需要更多硬件资源支持。

可解释性

小波变换的多层次分解提供了比传统神经网络更高的可解释性。

尽管比黑箱模型更好,整体可解释性仍然有待提高,尤其在面对非技术用户时。

适应性和泛化能力

能够在不同特征频率的时序数据上保持良好性能,体现出较强的泛化能力。

若参数未优化好,可能导致在某些特定场景下的适应性不足。

健壮性

对噪声数据具有较好的鲁棒性,能够提取有价值的信号。

如果噪声特征与真实信号频率接近,可能难以分辨。

数据需求

能够在较小数据集上启动有效的学习过程,但需要较大数据集以获得最佳性能。

仍然需要大量标注数据以充分训练模型,尤其在多样性高的数据集中。

1.3 应用场景

适用于非平稳时序数据分析、复杂信号处理、高解释性的应用、噪声健壮性需求以及动态环境下的实时分析。

1.4 参考代码

[TPS-Apr] Let's go over the wall - mWDN | Kaggle

【演示】用mWDN分类时序数据UCR LSST

使用数据集数据集:UCR LSST,此案例CPU运行时间可以忍耐,可以不用GPU

https://github.com/bettermorn/IAICourse/blob/main/Code/TSAI/16_CPU_Jump_Time_Series_Classification_with_mWDN.ipynb

2 AutoEncoder

2.1 原理

AutoEncoder是一个有点历史的概念了,Hinton2006年提出了AutoEncoder,参考论文

Hinton, Geoffrey E., and Ruslan R. Salakhutdinov. "Reducing the dimensionality of

data with neural networks." Science 313.5786 (2006): 504-507

图片来源:

Hinton, Geoffrey E., and Ruslan R. Salakhutdinov. "Reducing the dimensionality of

data with neural networks." Science 313.5786 (2006): 504-507

自编码器分编码器和解码器两个部分,编码器通过降维的方法抓住输入对象最本质的特征,也即内部表示,而解码器根据本质特征再还原出原始输入对象。自编码器类似于识别主要模式的检测器。对异常输入对象来说,在编码器的环节无法发现与正常值相同的本质特征,所以解码器在还原出原始输入对象就会比较困难,这样,异常值就显现出来了。这种设计很巧妙。

自编码器的本质是无监督学习。

相比使用线性代数转换降维的PCA,自编码器技术可以通过其非线性激活函数和多层结构进行非线性转换。用自编码器训练多层结构比用PCA训练一个巨大的转换结构更有效。因此,当数据问题复杂且具有非线性性质时,自编码器技术就显示出其优势。

2.2 优点和缺点

优点如下

轻松处理高维数据。

非线性特点,可以找到复杂的模式。

缺点如下

成本较高。

优点缺点
模型性能

自编码器能够有效地对数据进行特征提取和降维,在保留主要信息的同时去除冗余。

对于复杂的高维数据,重构的精确性可能较差。

训练效率

结构相对简单的自编码器通常收敛较快,适合快速特征提取任务。

需要大量数据进行训练,以保证模型的泛化能力和稳定性。

模型复杂度

具有灵活的结构设计,可以调整层数和节点数以适应不同的任务需求。

如果设计不当,可能导致模型复杂度过高,增加计算和存储开销。

计算复杂度

相比于其他深度模型,基本的自编码器计算复杂度较低。

增加模型深度和卷积层等复杂结构时,计算需求会显著增加。

可解释性

通过学习紧凑的低维表示,可以在一定程度上解释特征的主要变化方向。

作为黑箱模型,输出编码通常不具备良好的可解释性。

适应性和泛化能力

对新数据的适应能力强,尤其适用于无监督学习场景。

如未进行适当的正则化,可能导致过拟合,影响泛化能力。

健壮性

去噪自编码器(Denoising AutoEncoder)在处理有噪声的数据时表现较好。

对极端噪声和异常值的敏感度较高,可能影响重构质量。

数据需求

在处理特定任务时,通常可以在无标签数据上训练。

对于复杂任务,需要大规模数据集来捕捉全面的特征信息。

2.3 应用场景

图像去噪:利用降温的特点获取主要特征。

异常检测:分析重构误差,可识别异常。

数据压缩:符合降维的本质。

特征生成与提取:降维的本质就是获取主要特征。

图像生成,例如

  • 变分自编码器(Variational AutoEncoder, VAE)可用于生成与输入相似的图像数据。

举例来说,如果要用AutoEncoder处理异常,过程如下

  1. 在正常数据子集上训练自编码器。
  2. 比较自编码器在正常数据子集和异常数据子集上的判据。
  3. 定义一个阈值,以便我们安全地将数据分类为异常或正常。

其中第三步比较难,如果我们对问题理解不深入,没有使用正确的工具,可能无法得出较好的结果。

训练自编码器的过程和其他多层感知器组成的神经网络类似,包括以下内容:

  • ReLU 激活层用于提高自编码器学习非线性表征的能力。

  • 使用堆叠线性层(a stack of linear layers可以增加网络的深度,而且收敛速度更快。

  • 编码器会逐步将输入数据压缩为更小的内部表示。这是为了使自编码器通过丢弃不必要的信息来学习有意义的数据表示。

训练自编码器,需要设定标准或损失函数以及优化策略。对时间序列数据,使用基于残差(每个时间步的目标值与输出值相减得到的误差值)的损失函数(可使用平均绝对误差或 L1 损失)和性能稳健的Adam优化器。

2.4 参考代码

GitHub - vincrichard/LSTM-AutoEncoder-Unsupervised-Anomaly-Detection: University Project for Anomaly Detection on Time Series data

Time Series ECG Anomaly Detection w Autoencoders | Kaggle

如前所述,因为AutoEncoder涉及到两个神经网络的训练,必须要用GPU。

参考视频

【演示】用AutoEncoder检测心电图ECG异常

本次介绍了mWDN和AutoEncoder,下次再来介绍一些解决时序数据相关问题的模型。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】stack 和 queue 的适配器模式与实现

> 🍃 本系列为初阶C的内容,如果感兴趣,欢迎订阅🚩 > 🎊个人主页:[小编的个人主页])小编的个人主页 > 🎀 🎉欢迎大家点赞👍收藏⭐文章 > ✌️ 🤞 &#x1…

Chrome多开终极形态解锁!「窗口管理工具+IP隔离插件

Web3项目多开,继ads指纹浏览器钱包被盗后,更多人采用原生chrome浏览器,当然对于新手,指纹浏览器每月成本也是一笔不小开支,今天逛Github发现了这样一个解决方案,作者开发了窗口管理工具IP隔离插件&#xff…

从零开始部署DeepSeek:基于Ollama+Flask的本地化AI对话系统

从零开始部署DeepSeek:基于OllamaFlask的本地化AI对话系统 一、部署背景与工具选型 在AI大模型遍地开花的2025年,DeepSeek R1凭借其出色的推理能力和开源特性成为开发者首选。本文将以零基础视角,通过以下工具链实现本地化部署: …

python旅游推荐系统+爬虫+可视化(协同过滤算法)

✅️基于用户的协同过滤算法 ✅️有后台管理 ✅️2w多数据集 这个旅游数据分析推荐系统采用了Python语言、Django框架、MySQL数据库、requests库进行网络爬虫开发、机器学习中的协同过滤算法、ECharts数据可视化技术,以实现从网站抓取旅游数据、个性化推荐和直观展…

以 Serverless 低成本的⽅式 快速在亚马逊云科技上部署 DeepSeek

2025年春节,最令人瞩目的无疑是DeepSeek的惊艳亮相,它以颠覆性的创新迅速席卷全球,成为街谈巷议的热点。无论是在地铁车厢里,还是公司茶水间,DeepSeek都成了人们津津乐道的话题。社交平台上,网友们争相分享…

win10 系统 自定义Ollama安装路径 及模型下载位置

win10 系统 自定义Ollama安装路径 及模型下载位置 由于Ollama的exe安装软件双击安装的时候默认是在C盘,以及后续的模型数据下载也在C盘,导致会占用C盘空间,所以这里单独写了一个自定义安装Ollama安装目录的教程。 Ollama官网地址&#xff1…

CAP与BASE:分布式系统设计的灵魂与妥协

CAP 理论 CAP理论起源于 2000 年,由加州大学伯克利分校的 Eric Brewer 教授在分布式计算原理研讨会(PODC)上提出,因此 CAP 定理又被称作 布鲁尔定理(Brewer’s theorem) 2 年后,麻省理工学院的 …

电动汽车电池监测平台系统设计(论文+源码+图纸)

1总体设计 本次基于单片机的电池监测平台系统设计,其整个系统架构如图2.1所示,其采用STC89C52单片机作为控制器,结合ACS712电流传感器、TLC1543模数转换器、LCD液晶、DS18B20温度传感器构成整个系统,在功能上可以实现电压、电流、…

docker下部署kong+consul+konga 报错问题处理

前言: 由于在docker下部署一些项目比较特殊,特别是网络这一块,如果没有搞清楚,是很容易出问题的。 先上docker-compose 编排 这里的docker-compose for kong可以在 kong-compose 获取代码 version: 3.9x-kong-config:&kong…

装饰器模式

参考 装饰者模式 【设计模式实战】装饰器模式 1. HistorySet的例子 HistorySet 可以在实现的Set的基础上&#xff0c;在remove时保留删除的元素。通过将方法委托给现有的Set&#xff0c;在remove时先保留被删除元素后委托给注入的set进行remove public class HistorySet<…

软件定义汽车时代的功能安全和信息安全

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 简单&#xff0c;单纯&#xff0c;喜欢独处&#xff0c;独来独往&#xff0c;不易合同频过着接地气的生活…

【Golang】GC探秘/写屏障是什么?

之前写了 一篇【Golang】内存管理 &#xff0c;有了很多的阅读量&#xff0c;那么我就接着分享一下Golang的GC相关的学习。 由于Golang的GC机制一直在持续迭代&#xff0c;本文叙述的主要是Go1.9版本及以后的GC机制&#xff0c;该版本中Golang引入了 混合写屏障大幅度地优化了S…

docker 运行 芋道微服务

jar包打包命令 mvn clean install package -Dmaven.test.skiptrue创建文件夹 docker-ai 文件夹下放入需要jar包的文件夹及 docker-compose.yml 文件 docker-compose.yml 内容&#xff1a;我这里的是ai服务&#xff0c;所以将原先的文件内容做了变更&#xff0c;你们需要用到什…

【苍穹外卖】学习

软件开发整体介绍 作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程&#xff0c; 以及软件开发过程中涉及到的岗位角色&#xff0c;角色的分工、职责&#xff0c; 并了解软件开发中涉及到的三种软件环境。那么这一小节&#xff0c;我们将从 软件开发流程、角色…

网工项目理论1.7 设备选型

本专栏持续更新&#xff0c;整一个专栏为一个大型复杂网络工程项目。阅读本文章之前务必先看《本专栏必读》。 一.交换机选型要点 制式:盒式交换机/框式交换机。功能:二层交换机/三层交换机。端口密度:每交换机可以提供的端口数量。端口速率:百兆/千兆/万兆。交换容量:交换矩阵…

前端面试技巧与实践

在当今快速发展的互联网行业中&#xff0c;前端开发已经成为了一个至关重要的角色。随着技术的不断进步和用户需求的日益复杂&#xff0c;前端工程师的职责不再仅仅是实现页面的布局和交互&#xff0c;而是需要具备全方位的技术能力和工程思维。根据2023年Stack Overflow的开发…

项目2 数据可视化--- 第十五章 生成数据

数据分析是使用代码来探索数据内的规律和关联。 数据可视化是通过可视化表示来 探索和呈现数据集内的规律。 好的数据可视化&#xff0c;可以发现数据集中未知的规律和意义。 一个流行的工具是Matplotlib&#xff0c;他是一个数据绘图库&#xff1b; 还有Plotly包&#xff…

前端常见面试题-2025

vue4.0 Vue.js 4.0 是在 2021 年 9 月发布。Vue.js 4.0 是 Vue.js 的一个重要版本&#xff0c;引入了许多新特性和改进&#xff0c;旨在提升开发者的体验和性能。以下是一些关键的更新和新特性&#xff1a; Composition API 重构&#xff1a;Vue 3 引入了 Composition API 作为…

python学opencv|读取图像(六十八)使用cv2.Canny()函数实现图像边缘检测

【1】引言 前序学习进程中&#xff0c;在对图像进行边缘识别的基础上&#xff0c;先后进行了边缘轮廓绘制&#xff0c;矩形标注、圆形标注和凸包标注。相关文章包括且不限于&#xff1a; python学opencv|读取图像&#xff08;六十四&#xff09;使用cv2.findContours()函数cv…

C语言基础16:二维数组、字符数组

二维数组 定义 二维数组本质上是一个行列式的组合&#xff0c;也就是说二维数组由行和列两部分组成。属于多维数组&#xff0c;二维数组数据是通过行列进行解读。 二维数组可被视为一个特殊的一维数组&#xff0c;相当于二维数组又是一个一维数组&#xff0c;只不过它的元素…