前馈网络(Feed Forward)的详细解释
在 Autoformer 架构中,前馈网络是处理分解后的时间序列数据并提取更多特征的重要组成部分。前馈网络用于对从序列分解模块(Series Decomposition)输出的趋势和季节性成分进行进一步处理,以提高模型的特征提取能力和预测性能。
前馈网络的原理
前馈网络(Feed Forward Network, FFN)通常由一系列全连接层(Fully Connected Layers)组成。其基本结构可以描述为:
FFN ( x ) = σ ( W 2 ⋅ σ ( W 1 ⋅ x + b 1 ) + b 2 ) \text{FFN}(x) = \sigma(W_2 \cdot \sigma(W_1 \cdot x + b_1) + b_2) FFN(x)=σ(W2⋅σ(W1⋅x+b1)+b2)
其中:
-
x
x
x是输入向量。
-
W
1
W_1
W1和
W
2
W_2
W2是可训练的权重矩阵。
-
b
1
b_1
b1和
b
2
b_2
b2是偏置向量。
-
σ
\sigma
σ是激活函数(如 ReLU)。
在 Autoformer 中,前馈网络主要用于对经过序列分解后的时间序列数据进行非线性变换,以提取更高层次的特征。
前馈网络的具体步骤
-
输入处理:
- 从序列分解模块输出的趋势和季节性成分作为前馈网络的输入。
-
非线性变换:
- 输入数据通过第一层全连接层,应用激活函数进行非线性变换:
h 1 = σ ( W 1 ⋅ x + b 1 ) h_1 = \sigma(W_1 \cdot x + b_1) h1=σ(W1⋅x+b1) - 这一步可以将输入数据映射到一个新的特征空间中。
- 输入数据通过第一层全连接层,应用激活函数进行非线性变换:
-
进一步处理:
- 非线性变换后的数据再通过第二层全连接层:
h 2 = W 2 ⋅ h 1 + b 2 h_2 = W_2 \cdot h_1 + b_2 h2=W2⋅h1+b2 - 第二层全连接层进一步处理和提取特征。
- 非线性变换后的数据再通过第二层全连接层:
-
输出:
- 处理后的数据作为前馈网络的输出,并传递回序列分解模块进行进一步的细化处理。
具体数据举例
假设我们有如下的时间序列数据,经过序列分解模块后得到的趋势和季节性成分如下:
月份 | 趋势 (千元) | 季节性 (千元) |
---|---|---|
2019年1月 | 160 | -60 |
2019年2月 | 165 | -45 |
2019年3月 | 170 | -40 |
2019年4月 | 175 | -25 |
2019年5月 | 180 | -10 |
2019年6月 | 185 | -5 |
2019年7月 | 190 | 0 |
2019年8月 | 195 | 5 |
2019年9月 | 200 | 20 |
2019年10月 | 205 | 25 |
2019年11月 | 210 | 30 |
2019年12月 | 215 | 45 |
在前馈网络中,我们将这些数据输入进行处理。假设每个时间点的输入向量为 x t = [ 趋势 t , 季节性 t ] x_t = [\text{趋势}_t, \text{季节性}_t] xt=[趋势t,季节性t],前馈网络的处理如下:
-
第一层全连接层:
- 对于每个输入
x
t
x_t
xt,计算:
h 1 , t = σ ( W 1 ⋅ x t + b 1 ) h_{1,t} = \sigma(W_1 \cdot x_t + b_1) h1,t=σ(W1⋅xt+b1) - 假设 W 1 W_1 W1和 b 1 b_1 b1的维度为 2 × 4 2 \times 4 2×4和 4 4 4,输出向量 h 1 , t h_{1,t} h1,t的维度为 4。
- 对于每个输入
x
t
x_t
xt,计算:
-
第二层全连接层:
- 对于
h
1
,
t
h_{1,t}
h1,t,计算:
h 2 , t = W 2 ⋅ h 1 , t + b 2 h_{2,t} = W_2 \cdot h_{1,t} + b_2 h2,t=W2⋅h1,t+b2 - 假设 W 2 W_2 W2和 b 2 b_2 b2的维度为 4 × 2 4 \times 2 4×2和 2 2 2,输出向量 h 2 , t h_{2,t} h2,t的维度为 2。
- 对于
h
1
,
t
h_{1,t}
h1,t,计算:
-
输出结果:
- 处理后的结果 h 2 , t h_{2,t} h2,t作为前馈网络的输出,并传递回序列分解模块进行进一步的处理和细化。
示例说明
假设我们在某个时间点 t t t的输入为 x t = [ 160 , − 60 ] x_t = [160, -60] xt=[160,−60],经过前馈网络处理后的步骤如下:
-
第一层全连接层:
- 计算:
h 1 , t = σ ( [ w 11 w 12 w 13 w 14 w 21 w 22 w 23 w 24 ] ⋅ [ 160 − 60 ] + [ b 11 b 12 b 13 b 14 ] ) h_{1,t} = \sigma \left( \begin{bmatrix} w_{11} & w_{12} & w_{13} & w_{14} \\ w_{21} & w_{22} & w_{23} & w_{24} \end{bmatrix} \cdot \begin{bmatrix} 160 \\ -60 \end{bmatrix} + \begin{bmatrix} b_{11} \\ b_{12} \\ b_{13} \\ b_{14} \end{bmatrix} \right) h1,t=σ [w11w21w12w22w13w23w14w24]⋅[160−60]+ b11b12b13b14 - 得到一个 4 维的中间向量 h 1 , t h_{1,t} h1,t。
- 计算:
-
第二层全连接层:
- 计算:
h 2 , t = [ w 11 ′ w 12 ′ w 21 ′ w 22 ′ w 31 ′ w 32 ′ w 41 ′ w 42 ′ ] ⋅ h 1 , t + [ b 21 b 22 ] h_{2,t} = \begin{bmatrix} w_{11}' & w_{12}' \\ w_{21}' & w_{22}' \\ w_{31}' & w_{32}' \\ w_{41}' & w_{42}' \end{bmatrix} \cdot h_{1,t} + \begin{bmatrix} b_{21} \\ b_{22} \end{bmatrix} h2,t= w11′w21′w31′w41′w12′w22′w32′w42′ ⋅h1,t+[b21b22] - 得到一个 2 维的输出向量 h 2 , t h_{2,t} h2,t。
- 计算:
总结
前馈网络在 Autoformer 中用于对分解后的趋势和季节性成分进行非线性变换,进一步提取和细化特征。通过全连接层和激活函数的处理,前馈网络能够捕捉更高层次的特征,并为后续的序列分解和预测提供更丰富的信息。这一过程增强了模型的特征提取能力,从而提高了时间序列预测的准确性。