Autoformer的Model inputs

模型输入

Autoformer 的输入结构复杂且独特,结合了编码器和解码器的输入需求。为了详细解释这个过程,我们将从输入数据、分解处理及初始化方法的角度逐步展开。

编码器部分的输入

编码器的输入是过去 I I I个时间步的数据 X e n ∈ R I × d X_{en} \in \mathbb{R}^{I \times d} XenRI×d,其中 d d d是每个时间步的数据维度。

解码器部分的输入

解码器的输入包含了季节性部分 X d e s ∈ R ( I 2 + O ) × d X_{des} \in \mathbb{R}^{(\frac{I}{2} + O) \times d} XdesR(2I+O)×d和趋势-周期性部分 X d e t ∈ R ( I 2 + O ) × d X_{det} \in \mathbb{R}^{(\frac{I}{2} + O) \times d} XdetR(2I+O)×d,需要进一步精炼。每个初始化部分包含以下两部分:

  1. 编码器输入 X e n X_{en} Xen后半部分(长度为 I 2 \frac{I}{2} 2I)进行分解,提供最近信息。
  2. 长度为 O O O的占位符(placeholder),用标量填充。

具体过程如下:

  1. 从编码器输入中提取后半部分并进行分解
    - X e n s , X e n t = SeriesDecomp ( X e n [ I 2 : I ] ) X_{ens}, X_{ent} = \text{SeriesDecomp}(X_{en}[\frac{I}{2} : I]) Xens,Xent=SeriesDecomp(Xen[2I:I])

    • 其中 X e n s X_{ens} Xens是季节性部分, X e n t X_{ent} Xent是趋势-周期性部分。
  2. 初始化解码器输入

    • 季节性部分初始化:
      X d e s = Concat ( X e n s , X 0 ) X_{des} = \text{Concat}(X_{ens}, X_0) Xdes=Concat(Xens,X0)
      其中 X 0 X_0 X0是用标量(通常为零)填充的占位符。

    • 趋势-周期性部分初始化:
      X d e t = Concat ( X e n t , X Mean ) X_{det} = \text{Concat}(X_{ent}, X_{\text{Mean}}) Xdet=Concat(Xent,XMean)
      其中 X Mean X_{\text{Mean}} XMean是用输入数据的均值填充的占位符。

具体数据示例

假设我们有如下的时间序列数据,表示某个商店的月度销售额(单位:千元),时间步长度 I = 12 I = 12 I=12

月份销售额 (千元)
1月100
2月120
3月130
4月150
5月170
6月180
7月190
8月200
9月220
10月230
11月240
12月260

预测的时间步长度 O = 6 O = 6 O=6

编码器部分

编码器的输入 X e n X_{en} Xen是前 12 个月的数据:
X e n = [ 100 , 120 , 130 , 150 , 170 , 180 , 190 , 200 , 220 , 230 , 240 , 260 ] X_{en} = [100, 120, 130, 150, 170, 180, 190, 200, 220, 230, 240, 260] Xen=[100,120,130,150,170,180,190,200,220,230,240,260]

解码器部分
  1. 提取编码器输入的后半部分(后6个月)并进行分解

    • 编码器后半部分 X e n [ I 2 : I ] = [ 190 , 200 , 220 , 230 , 240 , 260 ] X_{en}[\frac{I}{2} : I] = [190, 200, 220, 230, 240, 260] Xen[2I:I]=[190,200,220,230,240,260]
    • 通过序列分解模块得到:
      • 季节性部分 X e n s = [ − 10 , − 10 , 0 , 10 , 10 , 20 ] X_{ens} = [-10, -10, 0, 10, 10, 20] Xens=[10,10,0,10,10,20]
      • 趋势-周期性部分 X e n t = [ 200 , 210 , 220 , 220 , 230 , 240 ] X_{ent} = [200, 210, 220, 220, 230, 240] Xent=[200,210,220,220,230,240]
  2. 初始化解码器输入

    • 季节性部分初始化 X d e s X_{des} Xdes
      X d e s = Concat ( [ − 10 , − 10 , 0 , 10 , 10 , 20 ] , [ 0 , 0 , 0 , 0 , 0 , 0 ] ) X_{des} = \text{Concat}([-10, -10, 0, 10, 10, 20], [0, 0, 0, 0, 0, 0]) Xdes=Concat([10,10,0,10,10,20],[0,0,0,0,0,0])
      最终 X d e s = [ − 10 , − 10 , 0 , 10 , 10 , 20 , 0 , 0 , 0 , 0 , 0 , 0 ] X_{des} = [-10, -10, 0, 10, 10, 20, 0, 0, 0, 0, 0, 0] Xdes=[10,10,0,10,10,20,0,0,0,0,0,0]

    • 趋势-周期性部分初始化 X d e t X_{det} Xdet
      X d e t = Concat ( [ 200 , 210 , 220 , 220 , 230 , 240 ] , [ 210 , 210 , 210 , 210 , 210 , 210 ] ) X_{det} = \text{Concat}([200, 210, 220, 220, 230, 240], [210, 210, 210, 210, 210, 210]) Xdet=Concat([200,210,220,220,230,240],[210,210,210,210,210,210])
      最终 X d e t = [ 200 , 210 , 220 , 220 , 230 , 240 , 210 , 210 , 210 , 210 , 210 , 210 ] X_{det} = [200, 210, 220, 220, 230, 240, 210, 210, 210, 210, 210, 210] Xdet=[200,210,220,220,230,240,210,210,210,210,210,210]

总结

通过这个具体数据示例,我们展示了 Autoformer 的编码器和解码器输入如何初始化和处理。编码器处理过去的时间步数据,而解码器使用分解后的近期数据和占位符初始化,以逐步提取和精炼时间序列的长期趋势和季节性成分。这样的方法有助于在长期时间序列预测中捕捉复杂的时间模式,提高预测准确性。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值