informer 基本原理

本文介绍了Informer算法,一种针对长序列预测和提高注意力机制效率的方法。Informer特别关注解决传统算法在长序列预测中的不足,如Transformer的计算效率问题。文章详细讨论了核心思想,包括Transformer架构、偷懒Q和ActiveQ的概念,以及自注意力Distilling的优化策略。
摘要由CSDN通过智能技术生成

1.时间序列预测

上一个序列数据,预测下一个序列。

(1)短序列预测;传统算法大多数只能依靠已知的时间序列预测未来很短的时间段
(2)趋势预测;
(3)精准长序列预测。长序列很难预测准, 首先做预测,然后用预测的结果再去预测,非常困难。

Informer 可以预测未来较长的一个序列

经典算法:
Prophet:适合预测趋势,但是不精准
Arima:短序列预测还算准确,但是趋势预测不准
上面的算法不适合长序列和多标签
Informer致力于长序列问题的解决,也可以多标签预测

LSTM:在长序列预测中,如果序列越长,速度越慢,效果越差。

2. Informer算法的核心思想

核心:transfomer架构,建立好长输入和长输出之间的关系

Transformer架构的优势与问题:
1.代码简单,并行的,注意力机制效果好
2.长序列中attention需要每一个点跟其它点计算(序列太长,效率低)
3.Decoder过程需要基于上一个预测结果推断下一个预测结果

要解决的三个问题
1.Attention计算更快
2.Decoder一次输出所有序列
3.堆叠encoder也要更快

Informer作者经过观察对于每一个Q来说,只有一小部分的K于其它关系较强,所以要找出有用的Q值。
1.偷懒的Q感觉就像均匀分布,没啥特点
2.Active的Q明显在某些位置比较活跃,权重差异较大
3.对于每一个Q,计算其与均匀分布的差异,差异越大则越活越

M ( q i , K ) = ln ⁡ ∑ j = 1 L K e q i k j ⊤ a − 1 L K ∑ j = 1 L K q i k j ⊤ d M(\mathbf{q}_{i},\mathbf{K})=\ln\sum_{j=1}^{L_{K}}e^{\frac{\mathbf{q}_{i}\mathbf{k}_{j}^{\top}}{\sqrt{a}}}-\frac{1}{L_{K}}\sum_{j=1}^{L_{K}}\frac{\mathbf{q}_{i}\mathbf{k}_{j}^{\top}}{\sqrt{d}} M(qi,K)=lnj=1LKea qikjLK1j=1LKd qikj

ProbAttention计算方法
输入序列长度为96,首先在K中进行采样,随机选25个K
现在要选出来的是一些重要的Q,正常情况需每一个Q跟96个K计算
重要的Q不用非得计算那么多,跟部分K计算的结果也可以当作其分布
例如源码输出结果:32,8,96,25表示8头注意力,96个Q分别跟25个K计算的内积

现在每一个Q有25个得分(分别跟25个K计算后得到的)

M ‾ ( q i , K ) = max ⁡ j { q i k j ⊤ d } − 1 L K ∑ j = 1 L κ q i k j ⊤ d \overline{M}(\mathbf{q}_i,\mathbf{K})=\max_j\{\frac{\mathbf{q}_i\mathbf{k}_j^\top}{\sqrt{d}}\}-\frac1{L_K}\sum_{j=1}^{L\kappa}\frac{\mathbf{q}_i\mathbf{k}_j^\top}{\sqrt{d}} M(qi,K)=jmax{d qikj}LK1j=1Lκd qikj

论文中做法,为了进一步加速,直接选最大值均匀分布算差异
在96个Q中,选出来差异最大的25个(根据序列长度来定的一个参数值)
得到的QK内积为:32,8,25,96,就是只选了25个Q
那么其它位置的Q该咋办呢?没有计算其attention
直接用V(96个,表示每一个位置的特征)的均值来替代
也就是选出来的25个会更新,其他剩余的都是均值向量

Self-attention Distilling计算方法:
做完一次attention之后还要继续推叠,只不过与传统transformer不同
会先通过1D的mapool操作来进行下采样,下次输入序列就为48了
此时Q和K的深度由于序列长度变小,也会随之变小
重复堆叠多次就是lnformer的Ercoder架构了

Decoder输入
源码中decoder输入长度为72,其中前48是真实值,后24是预测值
第一步还是做自身的ProbAttention,注意这回需要加上mask
Mask的意思就是前面的不能看到后面的(不能透题)
自身计算完Attention,再算与encoder的Attention即可

位置编码信息
绝对位置编码
跟时间相关的各种编码
Encoder与Decoder都加入了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值