Lag-Llama:基于 LlaMa 的单变量时序预测基础模型

文章构建了一个通用单变量概率时间预测模型 Lag-Llama,在来自Monash Time Series库中的大量时序数据上进行了训练,并表现出良好的零样本预测能力。在介绍Lag-Llama之前,这里简单说明什么是概率时间预测模型。概率预测问题是指基于历史窗口内的序列值以及相关的一些协bianliang去预测一定窗口内未来值的联合分布

文章地址:https://arxiv.org/pdf/2310.08278v1.pdf

代码地址:https://github.com/kashif/pytorch-transformer-ts

在这里插入图片描述
将论文中的方案进行落地时,如果有问题,可以找我们一起来聊

技术交流

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

本文源代码已梳理完毕,建了技术交流群&星球!想要进交流群或者资料的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司,即可。然后就可以拉你进群了。

方式①、添加微信号:mlc2060,备注:来自CSDN + 技术交流
方式②、微信搜索公众号:机器学习社区,后台回复:技术交流

方案介绍

注意到上面概率预测的定义中考虑了协变量C,Lag-Llama考虑的并不是像Nbeadts或TSMixer中的外部变量,而是来自序列本身的值。通常考虑一定的时间滞后,例如季度、月度、周度、日度、小时和秒级等,选取序列值,以匹配时间序列数据的周期性变化。当然作者指出也可以将单序列分成存在重叠的多个patch作为协变量,但这些patch中的数据点可能不再遵循时间上的因果性,因此作者更推荐第一种。

Lag-Llama的backbone是最新的LlaMA [43] 架构,通过RMSNorm实现预归一化,并在每个注意力层的Q和K表示中加入了旋转位置编码(RoPE),这里就不详细说明了,大家有兴趣可以参考:

  • https://research.facebook.com/publications/llama-open-and-efficient-foundation-language-models/

  • https://ai.meta.com/blog/large-language-model-llama-meta-ai/

下面回到Lag-Llama模型,如下:图片

模型遵循自回归的模式,以历史时刻单变量的值以及对应的协变量为输入,经过M个transformer-based Decoder层,得到历史数据的表征,最后再经过一个Distribution head输出下个时刻预测值的概率分布,如上图蓝色三角形所示,最终通过最小化对数似然训练整个模型。

对于Distribution head,可以选择不同形式的分布与模型的表征能力相结合以输出任何形式的分布。文章中实验选择了student t分布,通过并通过Distribution head输出了与这个分布对应的三个参数,即其自由度、均值和尺度。在后续的工作中,大家或许可以选择更加复杂的分布形式,例如Normalizing flows概率模型、混合高斯模型、Copulas模型等。

相比于图片和语料数据,时序数据建模面临一个挑战,即量纲,数据集中的时间序列的取值可以是任意范围的。因此,文章对一定时间窗内的数据计算均值和方差,并进行归一化来去除量纲的影响,对于预测值,从指定分布采样后再对其进行反归一化来获取最终值。同时为了防止过拟合,模型在训练过程中对每个batch的数据都进行了Freq-Mix和Freq-Mask,这个大家感兴趣的可以去查看具体代码。

实验

训练数据集:

  • https://openreview.net/pdf?id=wEc1mgAjU-

  • https://arxiv.org/pdf/1906.05264.pdf

模型训练参数:

图片

零样本数据集测试结果:

图片

不同参数量的Lag-Llama模型在traffic数据集上的表现:参数量大于后,模型的性能就趋于稳定了。

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

目标检测算法改进系列之添加变核卷积AKConv模块

AKConv变核卷积 KConv的主要思想:AKConv(可变核卷积)主要提供一种灵活的卷积机制,允许卷积核具有任意数量的参数和采样形状。这种方法突破了传统卷积局限于固定局部窗口和固定采样形状的限制,从而使得卷积操作能够更加…

【栈和队列(2)】

文章目录 前言队列队列方法队列模拟实现循环队列练习1 队列实现栈 前言 队列和栈是相反的,栈是先进后出,队列是先进先出,相当于排队打饭,排第一的是最先打到饭出去的。 队列 队列:只允许在一端进行插入数据操作&…

Python练习题(二)

📑前言 本文主要是【Python】——Python练习题的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句&am…

Pytest测试攻略:探寻pytest.main()隐藏的利器

更多资料获取 📚 个人网站:ipengtao.com 在Pytest测试框架中,pytest.main()是一个重要的功能,用于启动测试执行。它允许以不同方式运行测试,传递参数和配置选项。本文将深入探讨pytest.main()的核心功能,提…

栈和队列OJ题——15.循环队列

15.循环队列 622. 设计循环队列 - 力扣(LeetCode) * 解题思路: 通过一个定长数组实现循环队列 入队:首先要判断队列是否已满,再进行入队的操作,入队操作需要考虑索引循环的问题,当索引越界&…

Qt/QML编程学习之心得:如何添加资源文件到QML工程(十一)

Qt作为一种GUI界面编辑工具,在嵌入式编程中也大受欢迎,而进一步QML出现了,QML我理解也是一种资源文件,因为像其他资源文件一样添加进工程的。那么一个图片如何增加进资源文件呢?这个的确很基础,就是把资源文…

IdleStateHandler 心跳机制源码详解

优质博文:IT-BLOG-CN 一、心跳机制 Netty支持心跳机制,可以检测远程服务端是否存活或者活跃。心跳是在TCP长连接中,客户端和服务端定时向对方发送数据包通知对方自己还在线,保证连接的有效性的一种机制。在服务器和客户端之间一…

C++实现DFS、BFS、Kruskal算法和Prim算法、拓扑排序、Dijkstra算法

背景: 实现要求: 根据图的抽象数据类型的定义,请采用邻接矩阵来存储图1,采用邻接表来存储图2,并完成如下操作:对图1无向图进行深度优先遍历和广度优先遍历。对图1无向图采用Kruskal算法和Prim算法得出最小…

<蓝桥杯软件赛>零基础备赛20周--第8周第2讲--排序的应用

报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 每周发1个博客,共20周(读者可以按…

c语言-归并排序

目录 1、归并排序基本思想 2、归并排序的实现(递归法) 2.1 代码实现递归法归并排序 3、归并排序的实现(非递归法) 3.1 修正边界问题 3.2 代码实现非递归法归并排序 结语: 前言: 归并排序是一种把数…

万界星空科技灯具行业MES介绍

中国是LED照明产品最大的生产制造国,如今,我国初步形成了包括LED外延片的生产、LED芯片的制备、LED芯片的封装以及LED产品应用在内的较为完超为产业链,随着LED照明市场渗诱率的快速警升,LED下游应用市场将会越来越广阔。这也将推动…

硬件基础:二极管

基本定义 二极管的内部其实就是一个PN结。 把PN结封装起来,两边加上两个电极,就组成了半导体二极管。简称二极管(Diode) 二极管和PN结一样,具有单向导通性: 外观和正负极 常见芯片封装如下: 一般…

MDETR 论文翻译及理解

题目Abstract1. Introduction2. Method2.1. Background2.2. MDETR2.2.1 Architecture2.2.2 Training 3. Experiments3.1. Pre-training Modulated Detection 预训练调制检测3.2. Downstream Tasks3.2.1 Few-shot transfer for long-tailed detection 4. Related work5. Conclus…

飞行员兄弟

飞行员兄弟 思路: 这里一共有16个格子,如果暴力的话也就是2^16次方种排列组合。 这题和之前的开关不一样,这题是会影响到周围很多格子,而开关那题可以利用上方只改变一个的操作来解题,这题我想到的就是暴搜&#xff…

Prefix-Tuning 论文概述

Prefix-Tuning 论文概述 前缀调优:优化生成的连续提示前言摘要论文十问实验数据集模型实验结论摘要任务泛化性能 前缀调优:优化生成的连续提示 前言 大规模预训练语言模型(PLM)在下游自然语言生成任务中广泛采用fine-tuning的方法进行adaptation。但是f…

Redis 数据结构详解

分类 编程技术 Redis 数据类型分为:字符串类型、散列类型、列表类型、集合类型、有序集合类型。 Redis 这么火,它运行有多块?一台普通的笔记本电脑,可以在1秒钟内完成十万次的读写操作。 原子操作:最小的操作单位&a…

基于Java SSM框架实现实现四六级英语报名系统项目【项目源码+论文说明】

基于java的SSM框架实现四六级英语报名系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个高校四六级报名管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作…

HarmonyOS开发(九):数据管理

1、概述 1.1、功能简介 数据管理为开发者提供数据存储、数据管理能力。 它分为两个部分: 数据存储:提供通用数据持久化能力,根据数据特点,分为用户首选项、键值型数据库和关系型数据库。数据管理:提供高效的数据管…

LeedCode刷题---子数组问题

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、最大子数组和 题目链接:最大子数组和 题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连…

Microsoft Expression Web - 网页布局

在本章中,我们将介绍网页的基本布局。在创建我们的网页布局之前,我们需要考虑我们的内容,然后设计我们希望如何呈现该内容,因为它是在我们的网站上可见的内容。 由我们如何呈现我们的内容,以便我们的观众找到我们的网…