傅里叶特征生成器是一种将原始时间序列数据转换为周期性特征表示的神经网络组件,它通过可学习的线性变换和正弦函数实现,属于参数化傅里叶特征的一种变体。下面详细解释其架构和原理:
傅里叶特征生成器的核心思想
传统傅里叶变换使用固定的基函数(如正弦和余弦)分解信号,但参数化傅里叶特征通过神经网络学习适合特定数据的基函数,使模型能自适应地捕捉数据中的周期性模式。
在LSTM
中,傅里叶特征生成器的作用是:
- 从原始输入序列(windows,1)中提取与周期相关的信息。
- 将这些信息转换为一组可解释的周期性特征。
- 与 LSTM 提取的时序特征融合,增强模型对季节性模式的建模能力。
傅里叶特征生成器的架构组件
-
线性变换层
- 输入维度:
window_size
(时间序列长度) - 输出维度:4(生成 4 个周期特征)
- 作用:将原始时间序列映射到一个低维空间,学习数据中的潜在周期模式。
- 输入维度:
-
正弦激活函数 (
torch.sin()
)- 将线性变换的输出转换为周期性特征。
- 正弦函数的周期性特性使模型能够捕捉数据中的重复模式。
-
输出特征
- 生成 4 个周期性特征,每个特征代表不同频率的周期模式。
- 这4个特征与 LSTM 提取的时序特征(假设x维)拼接后,输入到最终的预测层(x+4维)。
数学原理与优势
傅里叶特征生成器的核心公式为:
FourierFeatures(x)=sin(W⋅x+b)
其中:
- x 是输入序列(维度:
window_size
) - W 和 b 是线性层的可学习权重和偏置
- sin 函数将输出转换为周期性模式
优势
- 自适应周期捕捉:通过学习参数 W 和 b,模型可以自动发现数据中存在的主要周期,无需手动指定。
- 特征稳定性:周期性特征在不同时间步之间具有一致性,有助于模型学习长期依赖。
- 可解释性:每个傅里叶特征对应不同频率的周期,便于理解模型捕捉到的周期性模式。
为什么选择 4 个特征?
代码中选择生成 4 个傅里叶特征,这通常是基于以下考虑:
- 计算效率:过多的周期特征会增加模型复杂度和计算成本。
- 典型周期模式:许多时间序列数据(如日 / 周 / 月 / 季度)的主要周期可由 4 个特征近似表示。
- 特征融合平衡:需要与 LSTM 提取的 64 维时序特征在维度上平衡,避免一方主导。