TCN(Temporal Convolutional Network)是一种用于处理序列数据的深度学习模型,最初由 Bai, Kolter 和 Kurtzfarb 在其论文中提出,旨在解决时间序列预测、序列标注等问题。与传统的循环神经网络(RNN)和长短期记忆网络(LSTM)不同,TCN使用卷积神经网络(CNN)来处理时间序列数据。

1. 网络结构 

  • 时间卷积层: TCN 通过一维卷积层来捕获序列中的时间依赖性。使用卷积层可以有效地处理长序列数据,避免了 RNN 中的梯度消失和爆炸问题。

  • 因果卷积: TCN 使用因果卷积(causal convolution),确保模型在处理当前时间步时只能访问过去的信息,而不会“偷看”未来的信息。这对于时间序列预测是至关重要的。

  • 膨胀卷积: TCN 中的卷积层可以通过膨胀卷积(dilated convolution)来扩展感受野,使得网络能够在较少的层数中捕获更长时间尺度的依赖关系。膨胀卷积的实现方法是在卷积核之间插入空洞,这样能有效增加感受野,同时保持计算量相对较小。

  • 残差连接: 为了缓解深层网络中的梯度消失问题,TCN 通常会使用残差连接,以便在训练更深的网络时保持信息流。

 ​​​​​2.参数解释

  • 过滤器(filter):这是卷积层中应用的过滤器的数量,决定了该层输出的通道数。更多的过滤器能够学习到更多的特征。

  • kernel_size:指卷积核的大小。在序列建模中,卷积核大小决定了每次看多少个时间步的数据。较大的卷积核可以捕捉到更宽的局部特征。

  • dilation_rate:膨胀率用于控制卷积核的感受野,通过在卷积核元素之间引入间隔来实现。膨胀率越大,感受野就越大,从而能够捕捉到更长时间跨度的依赖关系。

  • 举个例子:

  • https://doi.org/10.1016/j.jenvman.2024.120967

  • 第一层: 使用 8 个过滤器和卷积核大小为 3,膨胀率为 1,能够捕捉紧邻时间步的特征。
  • 第二层: 再次使用 8 个过滤器,设置膨胀率为 2,能够扩展到捕捉与之前的特征之间有间隔的关系。
  • 第三层: 输出通道数减少到 4,设置膨胀率为 4,能够进一步处理特征并捕捉长距离依赖。
  • 最后一层设置了 4 个滤波器,那么不管输入的特征维度是多少,输出就会将通道数变换为 4,且时间维度(步数)不变,故输出矩阵的形状为 (10,4)
  • TCN作用:提取到了时序中的关键特征,同时降低了数据的维度,更便于后续模块(如 Bi-LSTM、Attention 或全连接层)进行处理和预测。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐