LLM-Mixer: 融合多尺度时间序列分解与预训练模型,可以精准捕捉短期波动与长期趋势

TimeMixer:用于时间序列预测的可分解多尺度混合模型 在时间序列预测领域,准确捕捉复杂的时间变化是关键挑战。本文介绍的“TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting”提出了创新的TimeMixer模型,在长短期预测任务中均展现卓越性能。 阅读详情

近年来,大型语言模型(Large Language Models,LLMs)在自然语言处理领域取得了显著进展。受此启发,研究人员开始探索将LLMs应用于时间序列预测任务的可能性。由于时间序列数据与文本数据在特征上存在显著差异,直接将LLMs应用于时间序列预测仍面临诸多挑战。

为了解决这一问题,Jin等人提出了一种名为LLM-Mixer的创新框架,旨在通过引入多尺度时间序列分解,使LLMs更好地适应时间序列预测任务。该研究的主要目的是提高预测精度,捕捉时间序列数据中的短期波动和长期趋势。

研究动机与挑战

时间序列预测在金融、能源管理、医疗保健等诸多领域具有重要应用价值。传统的预测模型,如ARIMA和指数平滑法,在处理复杂的非线性、非平稳的真实世界时间序列数据时,往往面临局限性。近年来,深度学习模型,如CNN和RNN,在时间序列预测任务中展现出优异表现,但它们在捕捉长期依赖关系方面仍存在不足。

与此同时,预训练的LLMs凭借其在少样本/零样本学习、多模态知识整合和复杂推理等方面的出色能力,正被广泛应用于各个领域。然而,将LLMs直接用于时间序列预测仍面临以下挑战:

  1. 时间序列数据通常呈现连续且不规则的模式,与LLMs所处理的离散文本数据存在显著差异;

  2. 时间序列数据通常具有多个时间尺度,包括短期波动和长期趋势,单一尺度的建模难以兼顾这些复杂模式;

  3. LLMs通常处理固定长度的序列,这意味着模型可能只捕捉到短期依赖关系,而忽略了长期趋势。

LLM-Mixer的创新之处

针对上述挑战,Jin等人提出的LLM-Mixer框架主要有以下创新点:

  1. 引入多尺度时间序列分解,将原始时间序列数据分解为多个时间分辨率,以更好地捕捉短期波动和长期趋势;

  2. 使用三种类型的嵌入:令牌嵌入、时间嵌入和位置嵌入,丰富多尺度时间序列的特征表示;

  3. 采用可分解历史混合(Past-Decomposable-Mixing,PDM)模块,混合不同尺度的历史信息,并将复杂的时间序列分解为独立的季节性和趋势组件;

  4. 利用预训练的LLMs处理多尺度数据和文本提示,充分利用LLMs的语义知识和多尺度信息生成预测。

图1展示了LLM-Mixer的总体框架:

图1:用于时间序列预测的LLM-Mixer框架。时间序列数据被下采样到多个尺度并用嵌入进行丰富。这些多尺度表示由可分解历史混合(Past-Decomposable-Mixing, PDM)模块处理,然后输入到预训练的LLM中,在文本描述的指引下生成预测。

技术细节

1. 数据下采样和嵌入

LLM-Mixer首先将时间序列数据下采样到多个时间分辨率,以捕捉短期波动和长期趋势。然后,使用三种类型的嵌入丰富这些多尺度序列:

  • 令牌嵌入:通过1D卷积计算得到;

  • 时间嵌入:编码日、周、月等时间信息;

  • 位置嵌入:编码序列位置信息。

这些嵌入将多尺度时间序列转换为深度特征表示。

2. 可分解历史混合(PDM)模块

多尺度表示由PDM模块处理,该模块混合不同尺度的历史信息。PDM模块将复杂的时间序列数据分解为独立的季节性和趋势组件,允许对每个组件进行有针对性的处理。

3. 预训练LLM的使用

处理后的多尺度数据,连同提供任务特定信息的文本提示,被输入到冻结的预训练LLM中。冻结的LLM利用其语义知识和多尺度信息生成预测。

4. 预测生成

最后应用一个可训练的解码器(一个简单的线性变换)于LLM的最后一个隐藏层,以预测下一组未来时间步。这一步的最终结果是输出预测,完成LLM-Mixer框架处理流程。

实验结果

Jin等人在多个常用的长期和短期多元时间序列预测基准数据集上评估了LLM-Mixer的性能,并与最先进的基线模型进行了比较。对于长期预测任务,他们使用了ETT、Weather、Electricity和Traffic等数据集;而对于短期预测任务,则使用了PeMS数据集。此外他们还在ETT基准数据集上进行了单变量长期预测实验。

在实验中,作者使用RoBERTa-base作为中型语言模型,LLaMA2-7B作为大型语言模型,构建LLM-Mixer框架。所有实验均使用PyTorch实现,并在配备80GB内存的NVIDIA H100 GPU上运行。

1. 长期多元预测结果

表1展示了LLM-Mixer在长期多元预测任务上的表现。结果表明,LLM-Mixer在大多数数据集上实现了较低的均方误差(MSE)和平均绝对误差(MAE),尤其在ETTh1、ETTh2和Electricity数据集上表现出色。与TIME-LLM、TimeMixer和PatchTST等其他模型相比,LLM-Mixer展现出了优异的性能,证明了其设计在捕捉长期依赖关系方面的有效性。

表1:长期多元预测结果,以均方误差(MSE)和平均绝对误差(MAE)表示,值越低越好。红色:最佳,蓝色:次佳。

2. 短期多元预测结果

表2展示了LLM-Mixer在短期多元预测任务上的表现。结果表明,LLM-Mixer在PEMS数据集上持续达到较低的MSE和MAE值,展现出强大的短期预测能力。特别是在PEMS03、PEMS04和PEMS07数据集上,LLM-Mixer优于TIME-LLM、TimeMixer和PatchTST等多个基线模型。此外LLM-Mixer在PEMS08数据集上也表现出色,优于iTransformer和DLinear,凸显了其在捕捉短期预测任务关键时间动态方面的有效性。

表2:短期多元预测结果。

3. 单变量长期预测结果

表3展示了LLM-Mixer在ETT基准数据集上的单变量长期预测结果。LLM-Mixer在所有数据集上都达到了最低的MSE和MAE值,持续优于Linear、NLinear和FEDformer等其他方法。这些结果证实了LLM-Mixer在捕捉复杂时间依赖关系方面的能力,巩固了其在单变量长期预测任务上的优越性。

表3:长期单变量预测结果。

消融实验

1. 下采样对神经切线核(NTK)距离的影响

为了评估下采样级别对模型学习动态的影响,作者使用神经切线核(Neural Tangent Kernel,NTK)进行了消融研究。他们将具有10个下采样级别的模型作为参考,计算了训练集和测试集中每个样本对的NTK。然后,通过计算每个模型的NTK与参考模型NTK之间的Frobenius范数差异,比较了具有较少下采样级别的模型的NTK距离。

结果如图2(左)所示,随着下采样级别的降低,NTK距离逐渐增加,当只使用一个下采样级别时,距离达到最高。这表明,减少下采样会逐步改变模型的学习能力,突显了多尺度信息在保持原始NTK结构方面的关键作用。

图2:(左)NTK距离的Frobenius范数。(右)多尺度混合的池化技术。

2. 多尺度混合中的池化技术

作者还探索了不同多尺度混合技术的效果。他们考察了Min、Max、Avg和L2等方法,每种方法都采用独特的方式聚合不同尺度的下采样信息。图2(右)展示了每种下采样方法在不同数据集上的MSE表现。值得注意的是,平均池化始终产生较低的MSE,表明该方法更适合捕捉数据中的多尺度依赖关系。

总结

LLM-Mixer通过结合多尺度时间序列分解和预训练的LLMs,提高了时间序列预测的准确性。它利用多个时间分辨率有效地捕捉短期和长期模式,增强了模型的预测能力。实验表明,LLM-Mixer在各种数据集上实现了具有竞争力的性能,优于最新的最先进方法。

尽管LLM-Mixer展现出了优异的预测性能,但它仍然存在一些局限性。例如,使用预训练的语言模型可能会带来较大的计算开销,这可能限制了其在实时或大规模设置中的应用。模型的成功还取决于所使用提示的质量,这方面仍有进一步优化的空间。

总的来说,LLM-Mixer为时间序列预测任务提供了一种创新而有效的解决方案,展示了多尺度分析与LLMs相结合的巨大潜力。这项研究为进一步探索LLMs在时间序列领域的应用奠定了基础,并为未来的研究指明了方向。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

TimeMixer: 可分解的多尺度混合用于时间序列预测 时间序列预测广泛应用于交通规划和天气预报等众多领域。然而,现实世界中的时间序列通常表现出复杂的时间变化,使得预测极具挑战性。超越简单分解和多周期分析的主流范式,我们从多尺度混合的新视角分析时间变化,这一视角基于一个直观但重要的观察:时间序列在不同的采样尺度上呈现出不同的模式。微观和宏观信息分别在细尺度和粗尺度中反映,从而复杂的变化可以本质上被解开。 阅读详情

相关推荐

时序预测模型TimeMixer复现

下载和安装miniconda:https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh。这里torch==1.7.1,则选择cudatoolkit=11.0.3。安装依赖[使用以下的依赖文件,原project的依赖有问题]根据torch和cuda对应版本做出选择,安装cudatoolkit=11.0.3。【二、安装conda和python依赖】【三、模型训练、推理】【一、安装cuda】

linger(心怀梦想,活在当下,知乎ID:linger liu) 756

TIMEMIXER: DECOMPOSABLE MULTISCALE MIXING FOR TIME SERIES FORECASTING

时间序列预测广泛应用于交通规划和天气预报等广泛应用中。然而,现实世界的时间序列通常呈现复杂的时间变化,使得预测极具挑战性。超越简单分解和多周期分析的主流范式,我们以多尺度混合的新颖观点分析时间变化,该观点基于直观但重要的观察,即时间序列在不同采样尺度下呈现不同的模式。微观和宏观信息分别反映在精细和粗尺度上,从而可以从本质上理清复杂的变化。

weixin_45731480的博客 2449

从零到一:在Ubuntu 20.04上搭建ROS1与PX4无人机开发环境

本文详细指导如何在Ubuntu 20.04系统上搭建完整的ROS1与PX4无人机开发环境。内容涵盖ROS Noetic安装、PX4固件源码编译、MAVROS通信桥接以及QGroundControl地面站的配置,并通过Gazebo仿真完成全链路联调测试,为无人机算法开发与验证提供稳定可靠的基础平台。

weixin_29292431的博客 165

TIMEMIXER论文笔记✍

TimeMixer论文笔记✍

wrj4055的博客 2535

MT6826SGT-STD-R绝对值编码器深度解析:精准控制+灵活编程

本文详细介绍MT品牌的高性能绝对值编码器——MT6826SGT-STD-R。:区别于传统增量式编码器,绝对值输出无需掉电归零,开机即获准确位置数据。的核心优势,结合应用场景与选型指南,为工程师提供一站式解决方案参考。MT6826SGT-STD-R是一款专为工业级精密控制设计的。该设备广泛应用于伺服系统、机器人关节校准、自动化产线等领域。:15bit分辨率实现细腻的位置反馈;:通过专用编写器可自定义多项关键参数;:优化电路设计,适应复杂电磁环境。

2501_93066786的博客 675

【自然语言处理】【聚类】TELL:可解释神经聚类

超越分类的XAI:可解释神经聚类 《XAI Beyond Classification: Interpretable Neural Clustering》 论文地址:https://www.jmlr.org/papers/volume23/19-497/19-497.pdf 一、简介 ​ 本文研究了可解释AI(XAI\text{XAI}XAI)和数据聚类这两个挑战性问题。第一个问题是如何设计一种具有固定可解释性的神经网络,而不是给出一个黑盒模型的事后解释。第二个问题是,使用可微分神经网络来实现离散的k-me

bqw的博客 4133

kaggle竞赛宝典 | LLM-Mixer: 融合多尺度时间序列分解与预训练模型,可以精准捕捉短期波动与长期趋势

LLM-Mixer通过结合多尺度时间序列分解和预训练的LLMs,提高了时间序列预测的准确性。它利用多个时间分辨率有效地捕捉短期和长期模式,增强了模型的预测能力。实验表明,LLM-Mixer在各种数据集上实现了具有竞争力的性能,优于最新的最先进方法。

csdn_xmj的博客 960

【华为Hilink SDK Linux系统开发】目录 开源一小步

目录 【华为Hilink开发】第一章:华为hilink平台简介及开发流程 【华为Hilink开发】第二章:华为hilink SDK网络适配、网关添加删除 【华为Hilink开发】第三章:华为hilink SDK子设备添加、删除 【华为Hilink开发】第四章:华为hilink SDK子设备控制及同步 【华为Hilink开发】第五章:华为hilink SDK适配遇到的问题 ...

开源一小步 3618

探索未来趋势:TimeMixer——时间序列预测的崭新里程碑

探索未来趋势:TimeMixer——时间序列预测的崭新里程碑 TimeMixer[ICLR 2024] Official implementation of "TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting"项目地址:https://gitcode.com/gh_mirrors/ti/TimeMixer ...

gitblog_00047的博客 1466

Microchip Studio 7.0 从零开始:下载、安装到首个AVR工程实战

本文为AVR单片机开发新手提供了Microchip Studio 7.0的完整入门指南。从官方下载、避坑安装,到创建首个GCC C工程、编写LED闪烁代码,再到项目配置、仿真调试与程序烧录,手把手带你完成从零到一的实战过程,是掌握AVR开发环境的必备教程。

weixin_29200741的博客 517

【AI工具】免费获取各类AI大模型APIKEY的使用教程,以硅基流动+Deepseek为例

【AI工具】免费获取各类AI大模型APIKEY的使用教程,以硅基流动+Deepseek为例

funfan的博客 4261

TimeMixer论文解析

优点多尺度特性利用充分:TimeMixer 通过多尺度混合,成功捕捉并分离了微观季节信息和宏观趋势信息,显著提高了预测性能。高效的未来预测:FMM 模块通过组合多个尺度下的预测器,提升了短期和长期预测任务中的整体预测准确性。适应多种时间序列任务:该模型能够在各种复杂的短期和长期预测任务中表现出一致的领先性能,展示了良好的泛化能力。缺点计算复杂度较高:尽管模型在捕捉多尺度信息方面表现出色,但引入多个尺度和模块的设计可能导致在大规模数据集上的计算复杂度增加。依赖数据的完整性。

w1191474296的博客 1622

Vue Vben Admin 登录页修改全攻略:从登录界面定制到接口对接全流程配置

方式一:修改国际化文件找到对应的语言包文件,修改和的值。方式二:直接传递文本page-description="现代化的后台管理系统模板"page-title="欢迎使用 Vue Vben Admin"从上面的代码可以看出,登录表单使用了的方式来定义表单字段,这种方式提供了极大的灵活性。如果你想要自定义表单,可以修改formSchema数组。如果你的登录需求非常特殊,现有的组件无法满足,你可以完全自定义表单。只需在login.vue中替换<template><h2>自定义登录</h2>

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 478

清华联合蚂蚁提出TimeMixer,可分解多尺度融合的时序预测模型 | ICLR 2024

©PaperWeekly 原创 ·作者 |杜大钊单位 |中科院软件所研究方向 |时序建模本文介绍清华和蚂蚁集团在今年发表在 ICLR 2024 上的一篇文章,也是基于 MLP 来做时间序列预测任务的。论文标题:TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting论文链接:https://openrevie...

Paper weekly 1725

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ICLR 2024 时间序列(Time Series)论文

ICLR 2024(International Conference on Learning Representations)在5月7日-11日在奥地利维也纳举行。今年,ICLR共收到7262篇投稿,总体录用率在31%。 本文总结了2024 ICLR录用的有关时间序列论文,其中包含了时间序列预测,分类,插补以及气象预测,大模型在时间序列建模等的应用。供大家学习,欢迎大家补充。

suzukiwudi的博客 5988

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

TimeMixer时间序列预测模型复现经验分享

在复现TimeMixer论文结果的过程中,多位研究者遇到了模型在ETTh1数据集上表现不佳的问题。通过深入分析和实验验证,我们发现了一些影响模型性能的关键因素,这些发现对于理解TimeMixer模型的实际应用具有重要意义。 ## 参数调整的重要性 原始论文中提供的参数配置在某些环境下可能无法达到最佳效果。经过多次实验验证,我们发现以下参数调整策略能够显著提升模型性能: 1. **学习率调整*...

gitblog_07015的博客 722

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

TimeMixer 代码整理

例如:在 Transformer 结构中,数据通常是 (batch, seq_len, feature_dim) 格式;在 1D CNN 或 特定 RNN 结构 中,有时需要 (batch, feature_dim, seq_len) 格式,使得时间步长成为最后一维,便于在通道维度(feature_dim)上进行卷积操作。::self.configs.down_sampling_window是跳步取值,即每 down_sampling_window 取一个时间步,减少时间序列长度。

hldsddy_s的博客 1030

时间序列预测机器TimeMixer++代码详解

时间序列预测利器TimeMixer++代码详细解读

Yubo1214的博客 1248

【亲测免费】 TimeMixer 项目安装和配置指南

### 项目基础介绍 TimeMixer 是一个用于时间序列预测的开源项目,由 Shiyu Wang 等人开发。该项目在 ICLR 2024 上被接受,并提供了一个基于 MLP(多层感知器)的架构,旨在通过分解多尺度时间序列来实现一致的 SOTA(最先进)性能。TimeMixer 不仅在长期和短期预测任务中表现出色,而且在运行效率方面也具有优势。 ### 主要编程语言 TimeMixer 项目主...

gitblog_09274的博客 1265

论文精读 | 2024 [ICLR] TimeMixer: 可分解多尺度融合的时间序列预测

TimeMixer模型针对时间序列预测的复杂性提出了一个多尺度混合架构,旨在利用过去可分解混合(PDM)模块提取过去的关键信息,并通过未来多预测器混合(FMM)模块进行未来序列的预测。具体来说,TimeMixer首先通过平均下采样生成多尺度观测,然后PDM采用可分解设计更好地处理季节性和趋势变化的不同属性,通过在精细到粗略和粗略到精细方向上分别混合多尺度季节性和趋势组件。FMM在预测阶段集成多个预测器,利用多尺度观测中的互补预测能力。

suzukiwudi的博客 2万+

TimeMixer 可分解多尺度融合的时间序列预测 | ICLR2024 论文笔记

时间序列预测在交通规划和天气预报等领域有着广泛的应用。然而,现实世界的时间序列通常呈现出复杂的时间变化,这使得预测极具挑战性。超越了平面分解和多周期分析的主流范式,作者以一种新的多尺度混合视角分析了时间变化,即时间序列在不同的采样尺度上呈现出不同的模式。微观和宏观信息分别反映在细尺度和粗尺度上,从而可以内在地解开复杂的变化。基于这一观察,作者提出TimeMixer作为一种完全基于MLP的架构,具有过去可分解混合(PDM)和未来多预测混合(FMM)块,以充分利用过去提取和未来预测阶段的解纠缠多尺度序列。

还是学不会____还是学不会 2107

TimeMixer终极指南:革命性时间序列预测框架解析

在当今数据驱动的世界中,时间序列预测已成为金融、气象、能源等众多领域不可或缺的技术。今天我们要介绍的TimeMixer,作为ICLR 2024的突破性研究成果,正在重新定义时间序列预测的边界!🚀 这款全新的时间序列预测框架以其创新的全MLP架构,在18个真实世界基准测试中展现出了卓越的性能表现。 ## 什么是TimeMixer时间序列预测框架? TimeMixer是一个基于分解多尺度混合思想

gitblog_00809的博客 1069

ICLR 2025 | 时间序列(Time Series)高分论文总结

ICLR2025已经结束了讨论阶段,进入了meta-review阶段,分数应该不会有太大的变化了,本文总结了其中时间序列(Time Series)高分的论文。如有疏漏,欢迎大家补充。:均分要大于等于6(≥6,即使有3,但是有8或者更高的分拉回来也算):预测,插补,分类,生成,因果分析,异常检测,LLM以及基础模型(还有KAN和Mamba各一篇)等内容。

suzukiwudi的博客 7278

TimeMixer:可分解多尺度混合的时间序列预测模型

TimeMixer是ICLR 2024会议上提出的一种创新的时间序列预测方法,采用全MLP架构,通过解耦多尺度时间序列信息,在长期和短期预测任务中都实现了最先进的性能表现。 ## 技术原理与核心设计 TimeMixer的核心创新在于其两个关键组件:Past-Decomposable-Mixing(PDM)和Future-Multipredictor-Mixing(FMM)。 ### Past

gitblog_00583的博客 640
上一篇: 中国电信推出开源大模型 TeleChat2 - 115B:全国产化万卡集群训练的创举
下一篇: 打造自己的RAG解析大模型:(可商用)智能文档服务上线部署
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2826原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值