ModernTCN: A Modern Pure Convolution Structure for General Time Series Analysis
·

大核卷积改进Transformer

这个现代卷积块的设计思想源于用纯卷积结构来模拟并提升 Transformer Block 的性能,其核心是借鉴了 ConvNeXt 等先进卷积网络的设计理念。
主要的改进点如下:
1. 用深度卷积 (DWConv) 替代自注意力 (Self-Attention)
这是最核心的改变。
- Transformer Block: 使用自注意力机制来捕捉序列中不同位置之间的依赖关系。自注意力的优点是拥有全局感受野,能捕捉长距离依赖,但其计算复杂度与序列长度
N的平方成正比 (O(N²)), 当序列很长时,计算开销巨大。 - Modern Convolution Block: 使用深度卷积 (DWConv) 来替代。
- 提升效率: 深度卷积的计算复杂度与序列长度
N呈线性关系 (O(N)),对于长序列数据(如时间序列预测),这极大地降低了计算量和内存消耗。 - 模拟全局感受野: 现代卷积网络通常会使用非常大的卷积核 (Large Kernel)。一个大核的深度卷积可以拥有非常大的感受野,从而在效率更高的情况下,模拟出自注意力机制捕捉长距离依赖的能力。
- DWConv: 对输入的每个通道独立地应用一个卷积核。这意味着它只在空间/时间维度上(即序列长度 N 这个维度)混合信息,而不会混合不同通道的信息。这与 Self-Attention 的行为非常相似:自注意力也是在处理 (N, D) 的序列时,在 N 这个维度上混合信息,而通道 D 维度的信息融合是由后续的 FFN(前馈网络)来完成的。
- DW卷积与自注意力还有一点根本的不同。Self-Attention: 创建了一个单一的、共享的空间混合模式(注意力矩阵 A),这个模式被同等地应用到所有 D 个特征通道上。DWConv: 为每一个特征通道创建了一个独特的、独立的空间混合模式(每个通道都有自己专属的卷积核)。其实这么说来DW卷积解决了自注意力机制应用在时序维度上带来的问题:两个点之间计算相似度,使用所有变量的信息最终计算得到一个值,而变量信息被全部压缩。而每个变量单独应用一种混合模式就能避免这种问题。
- 提升效率: 深度卷积的计算复杂度与序列长度
2. 用卷积前馈网络 (ConvFFN) 替代标准前馈网络 (FFN)
- Transformer Block: FFN 通常由两个全连接层 (Linear Layer) 实现。
- Modern Convolution Block: 使用 ConvFFN 替代。从图 © 可以看出,ConvFFN 是由两个 1x1 的逐点卷积 (Pointwise Conv) 实现的。
- 其实和MLP的FFN是完全等价的。
3. 引入批标准化 (Batch Normalization, BN)
- Transformer Block: 通常使用层标准化 (Layer Normalization, LN)。为了防止token之间分布差异过大,因此对每个token单独标准化。
- Modern Convolution Block: 在 DWConv 之后明确地加入了一个 BN 层。这是现代高性能卷积网络中的一个标准组件,可以帮助稳定和加速训练过程。卷积中没有token之间计算相似度的运算因此用BN效果更好。此外BN 的计算依赖于当前 mini-batch 内的其他样本。这意味着对于同一个样本,它在不同批次中的归一化结果是略有不同的,这给模型的训练带来了一种微小的噪声,起到了隐式的正则化 (implicit regularization) 作用,有助于提高模型的泛化能力。
4. 简化的残差结构
- Transformer Block: 有两个并行的残差连接,分别围绕 Self-Attention 和 FFN。
- Modern Convolution Block: 将其简化为一个单一的残差连接,直接将输入
Zᵢ加到整个块(DWConv -> BN -> ConvFFN)的输出上。这种将残差连接放在一个更大模块(stage)上的设计,是 ResNet 之后的主流范式,可以改善信息流动,让梯度传播更顺畅。
ModernTCN的卷积block

- 作者将modern conv block应用到时序领域,发现效果并没提升,因此分析并设计了ModernTCN block:**“上述设计(指CV领域的现代卷积块)没有考虑到时间序列的特性。除了特征维度和时间维度,时间序列还有一个变量维度。而由那种卷积块堆叠的主干网络无法妥善处理这个变量维度。”**单独设计结构来学习跨变量之间的关系是至关重要的。
- ConvFFN1使用组卷积,group数等于变量个数,用来进行变量内部特征的更新(FFN);ConvFFN2使用组卷积,group数等于特征维度,用来进行变量间的特征交互。
更多推荐


所有评论(0)