TCN时间卷积网络

简介: 翻译:《Sequence Modeling Benchmarks and Temporal Convolutional Networks 》

TCN时间卷积网络

参考使用的benchmark:
https://github.com/locuslab/TCN

包含多种分类、预测样例,基于pytorch环境。

Introduction

通常序列模型问题都是使用循环神经网络解决的,然而最近一些结果发现卷积神经网络在序列问题上可以实现超过循环神经网络的结果。一般在研究的时候都会把循环神经网络作为一个序列模型任务的起始点,但是现在我们要选择卷积神经网络。于是就产生了一个问题:卷积序列模型的成功是否和特定的应用领域有关,序列处理和循环网络之间的关联是否可以重新考虑。

论文作者通过在一系列序列模型任务上进行对卷积结构和循环结构的比较解决了这一问题。这些任务包括音乐模型、语言模型和合成测试等。作者使用时序卷积模型TCN和LSTMs GRU等模型进行比较,结果显示TCN模型超过了这些循环神经网络结构。这也证明了卷积结构最近在音频处理上的成果不代表其只适用于该领域。

Temporal Convolutional Networks

我们从一个卷积序列预测的一般架构开始。这个模型被称为时间卷积网络,这个概念指的不是一个架构,而是一种类型的架构。TCN网络的特性包括:1. 卷积中的关系是因果关系,意味着不存在从未来到过去的信息。2. 这个架构可以用任意长的序列作为输入并映射到相同长度的输出上,就像RNN一样。此外,作者强调了如何构建一个长且有效的历史大小,使用残差层和空洞卷积的技术。

sequence modeling

在定义网络结构之前,我们先解释一下序列模型任务。假设我们被给定了一个输入序列并且想要预测对应的结果。核心的制约是,预测一个输出的时候,我们只能使用这个时间之前的观察。一个序列模型网络通常指的是能产生以下映射的一个函数:$$\hat{y}_0,...,\hat{y}_T=f(x_0,...,x_T)$$
目标是找到一个网络最小化真实输出和预测之间的损失,其中输入序列和输出都遵循某个分布。这个形式包括了多种设置,比如自回归预测,目标输出是将输入平移一步得到的。而这种不适合机器翻译或者序列-序列预测,因为输入的序列中包含了“未来”状态。

causal convolutions

TCN是基于两个原则的:网络产生和输入一样长的输出,不存在从未来到现在的信息。为了实现这一点,TCN使用了1维全卷积网络架构,每个隐藏层和输入层长度都一样,并加入了padding来保持后续层的长度。

简单来说:TCN=1D FCN + causal convolutions

这个设计的主要缺点是为了实现长而有效的历史记录,我们需要一个特别深的网络或者非常大的滤波器,在这个模型刚提出来的时候以上两点都不能实现,因此接下来的部分会介绍帮助TCN模型达成这两个点的技巧。

dilated convolutions

一个简单的因果卷积只能够回顾和网络深度呈线性关系的大小的历史。这使得上述的因果卷积在序列任务上遇到挑战,尤其在要求比较长的历史记录的时候。
作者的解决办法,使用了具有扩大感受野能力的空洞卷积。对于一个1维的序列,和一个滤波器,空洞卷积在序列中每个元素s上的操作可以定义为:$$F(s)=(x*_df)(s)=\sum^{k-1}_{i=0}f(i)*x_{s=d*i}$$
d在这里是空洞因子,k是滤波器大小,s-d*i指示了过去的方向。具体不讲了空洞卷积也算是个常识。这就给了我们两个方法来提高感受野:1. 选择较大的核,2. 提供空洞因子。一个这样一层对应的有效历史是(k-1)d长,当使用空洞卷积时,这个d可以随着网络的深度指数型增长。

residual connections

一个残差块包含了一个指向transformation操作的分支F,他的输出和原始输入相加:$$o=Activation(x+F(x))$$

这句话意思理解了但是翻译不出来-this effectively allows layers to learn modifications to the identity mapping rather than entire transformation, which has repeatedly been shown to benefit very deep networks. 大致意思就是加上输入后对学习的过程有帮助。

TCN的感受野由网络深度n核核大小k和空洞因子d,对更深和更大的TCN来说稳定性是十分重要的。比如,在预测结果依赖于2的12次方大小的历史和一个高维输入序列时,需要一个12层的网络。并且每一层都有用来提取特征的多个滤波器。在TCN中输入和输出大小不一样,所以我们用了 1x1卷积使得它们具有相同的大小。

Discussion

我们列出了我们的TCN在序列模型上应用的一些优点和缺点。
以下部分是优点

  1. parallelism:
    不像RNN对后面时间戳的预测需要等前面的步骤都完成,CNN可以平行地进行,因为每一层用的是一样的滤波器。因此一个长序列可以当作一个整体进行处理,而不是像在RNN中一样按顺序进行。
  2. flexible receptive field size:
    一个TCN能够用多种方法改变它的感受野大小,比如:堆叠更多的空洞卷积层,使用更大的空洞因子,提高滤波器大小。因此TCN也能够更好的控制模型的内存大小并应用到多个领域。
    1. stable gradients:
      不像循环结构,TCN具有一个和序列时间方向不同的bp路径,因此TCN可以避免梯度爆炸梯度消失等问题,而这是RNN的主要问题之一。
    2. low memory requirement for training:
      尤其对于长序列,LSTM和GRU需要使用大量的内存来存储中间结果,然而在TCN中滤波器是共享的,bp路径只和网络的深度有关系。因此我们发现RNN通常内存占用要比TCN多几倍。
    3. variable length inputs:
      像RNN可以用变长序列作为输入,TCN也可以将任意长序列作为属于通过滑动1D卷积核。这意味着TCN可以取代RNN用来处理任意长度的有序数据。

以下部分是缺点

  1. data storage during evaluation:
    在验证或测试阶段,RNNs只需要保证隐藏层状态和一个当前输入来产生一个预测,换句话说只需要一个对历史的总结,而实际的观察到的序列是可以忽略的。相反的,TCN需要放入所有的序列,因此可能需要更多的内存。
  2. potential parameter change for a transfer of domain:
    不同的领域对模型的历史的量有不同的要求,因此模型在对内存要求不一致的不同领域转换时,TCN表现可能会比较差。
相关文章
|
7月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
8月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
725 11
|
11月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化TCN-LSTM时间卷积神经网络时间序列预测算法matlab仿真
本内容展示了一种基于粒子群优化(PSO)与时间卷积神经网络(TCN)的时间序列预测方法。通过 MATLAB2022a 实现,完整程序运行无水印,核心代码附详细中文注释及操作视频。算法利用 PSO 优化 TCN 的超参数(如卷积核大小、层数等),提升非线性时间序列预测性能。TCN 结构包含因果卷积层与残差连接,结合 LSTM 构建混合模型,经多次迭代选择最优超参数,最终实现更准确可靠的预测效果,适用于金融、气象等领域。
|
机器学习/深度学习 人工智能 算法
深度解析:基于卷积神经网络的宠物识别
宠物识别技术随着饲养规模扩大而兴起,传统手段存在局限性,基于卷积神经网络的宠物识别技术应运而生。快瞳AI通过优化MobileNet-SSD架构、多尺度特征融合及动态网络剪枝等技术,实现高效精准识别。其在智能家居、宠物医疗和防走失领域展现广泛应用前景,为宠物管理带来智能化解决方案,推动行业迈向新高度。
1180 66
|
8月前
|
机器学习/深度学习 传感器 数据采集
【故障识别】基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究(Matlab代码实现)
【故障识别】基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究(Matlab代码实现)
515 0
|
10月前
|
机器学习/深度学习 人工智能 PyTorch
零基础入门CNN:聚AI卷积神经网络核心原理与工业级实战指南
卷积神经网络(CNN)通过局部感知和权值共享两大特性,成为计算机视觉的核心技术。本文详解CNN的卷积操作、架构设计、超参数调优及感受野计算,结合代码示例展示其在图像分类、目标检测等领域的应用价值。
564 7
|
12月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化TCN时间卷积神经网络时间序列预测算法matlab仿真
本内容介绍了一种基于PSO(粒子群优化)改进TCN(时间卷积神经网络)的时间序列预测方法。使用Matlab2022a运行,完整程序无水印,附带核心代码中文注释及操作视频。TCN通过因果卷积层与残差连接处理序列数据,PSO优化其卷积核权重等参数以降低预测误差。算法中,粒子根据个体与全局最优位置更新速度和位置,逐步逼近最佳参数组合,提升预测性能。
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA遗传优化TCN-GRU时间卷积神经网络时间序列预测算法matlab仿真
本项目基于MATLAB2022a开发,提供无水印算法运行效果预览及核心程序(含详细中文注释与操作视频)。通过结合时间卷积神经网络(TCN)和遗传算法(GA),实现复杂非线性时间序列的高精度预测。TCN利用因果卷积层与残差连接提取时间特征,GA优化超参数(如卷积核大小、层数等),显著提升模型性能。项目涵盖理论概述、程序代码及完整实现流程,适用于金融、气象、工业等领域的时间序列预测任务。
|
11月前
|
机器学习/深度学习 数据采集 监控
基于CNN卷积神经网络和GEI步态能量提取的步态识别算法matlab仿真,对比不同角度下的步态识别性能
本项目基于CNN卷积神经网络与GEI步态能量提取技术,实现高效步态识别。算法使用不同角度(0°、45°、90°)的步态数据库进行训练与测试,评估模型在多角度下的识别性能。核心流程包括步态图像采集、GEI特征提取、数据预处理及CNN模型训练与评估。通过ReLU等激活函数引入非线性,提升模型表达能力。项目代码兼容Matlab2022a/2024b,提供完整中文注释与操作视频,助力研究与应用开发。
|
机器学习/深度学习 算法 JavaScript
基于GA遗传优化TCN时间卷积神经网络时间序列预测算法matlab仿真
本内容介绍了一种基于遗传算法优化的时间卷积神经网络(TCN)用于时间序列预测的方法。算法运行于 Matlab2022a,完整程序无水印,附带核心代码、中文注释及操作视频。TCN通过因果卷积层与残差连接学习时间序列复杂特征,但其性能依赖超参数设置。遗传算法通过对种群迭代优化,确定最佳超参数组合,提升预测精度。此方法适用于金融、气象等领域,实现更准确可靠的未来趋势预测。