【深度学习论文阅读】TCN:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence

article/2025/11/5 8:03:34

2018年人工智能十佳论文之一:TCN
论文地址:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling
项目地址:TCN的github链接

文章目录

        • 1. ABSTRACT
        • 2. INTRODUCTION & BACKGROUND
        • 2.1 Temporal Convolutional Networks
          • 2.2 Sequence Modeling (序列建模)
          • 2.2.1 整体构架:
          • 2.3 Casual Convolutions(因果卷积)
          • 2.4 Dilated Convolutions(膨胀卷积、空洞卷积)
          • Residual Connections
          • 2.5 Discussion
        • 3. Sequence Modeling Tasks & Experiments(序列模型任务 & 实验)
        • 4. Conclusion
        • 膨胀卷积

TCN

1. ABSTRACT

对于大多数 深度学习研究者而言,序列建模任务等价于RNN。但是最近的研究表明,在音频合成以及机器翻译等任务上,CNN的表现胜过RNN。对于新的序列建模任务,RNN还是CNN,该如何选择? 作者通过对用于RNN性能的标准任务来评估CNN的性能。结果证实,简单的CNN结构在不同的任务以及数据集上的性能优于LSTM这类典型的RNN模型。作者认为,应该重新考虑序列任务与RNN、CNN之间的联系,甚至是将CNN作为序列建模任务的起点。(作者在文中将其记做TCN)

2. INTRODUCTION & BACKGROUND

近期的研究者发现,在音频合成、单词级语言建模以及机器翻译等任务上的性能精度高于传统认为的最优解决方案的LSTM以及GRU,作者思考CNN在序列建模上的成功是针对特定领域呢,还是它在所有序列建模任务上表现都很好?
作者设计一系列序列建模任务来评估,包含复调音乐建模、单词级和字符级语言建模任务以及压力测试任务等。结果表明。CNN架构它在音频处理领域的成功并不局限于这些领域。
除此之外,尽管循环神经网络具有长期记忆的能力,但是CNN架构(文中的TCN)表现出更加长期的记忆能力。

背景部分主要是讲 序列建模领域的研究进展,包括对RNN的改进,对LSTM的改进等等,到后来对LSTM加入卷积操作等等,这里不详谈。

2.1 Temporal Convolutional Networks

我们首先描述卷积序列预测的一般架构。我们的目标是将卷积网络设计中的最佳实践提炼为一个简单的架构,它可以作为一个方便而强大的起点。我们将提出的体系结构称为时间卷积网络(TCN),并强调我们采用这个术语并不是作为一个真正的新体系结构的标签,而是作为一个简单的描述一系列体系结构的术语。TCNs的显著特点是:1)结构上的卷积是因果关系,即没有从未来到过去的信息泄漏;2)体系结构可以获取任意长度的序列,并将其映射到相同长度的输出序列,就像使用RNN一样。除此之外,我们强调如何构建非常长的有效历史规模(即通过结合非常深的网络(用剩余层增强)和膨胀的卷积,网络能够看到非常遥远的过去并做出预测

我们的体系结构借鉴了最近的卷积序列数据体系结构(van den Oord et al., 2016;Kalchbrenner等,2016;Dauphin等,2017;Gehring等人,2017a;例如,TCN比wavenet (van den Oord et al., 2016)简单得多(没有跨层的跳过连接、条件设置、上下文叠加或门控激活)。
与Dauphin等人(2017)的语言建模体系结构相比,TCNs不使用门控机制,内存更长。

2.2 Sequence Modeling (序列建模)

对于某一个输入序列{ X 0 , X 1 , X 3 , . . . , X t − 1 , X t , X t + 1 , X t + 2 {X_0,X_1,X_3,...,X_{t-1},X_t,X_{t+1},X_{t+2}} X0,X1,X3,...,Xt1,Xt,Xt+1,Xt+2},希望预测一些相应的输出{ Y 0 , Y 1 , Y 2 , . . . , Y t − 1 , Y t , Y t + 1 , Y t + 2 Y_0,Y_1,Y_2,...,Y_{t-1},Y_t,Y_{t+1},Y_{t+2} Y0,Y1,Y2,...,Yt1,Yt,Yt+1,Yt+2}。如果我们将这样一个问题试做序列问题,其中最关键的一点是,假如要预测 t t t时刻的输出,那么我们只能使用 t t t时刻之前的记录作为输入,如{ X 0 , X 1 , X 3 , . . . , X t − 1 , X t {X_0,X_1,X_3,...,X_{t-1},X_t} X0,X1,X3,...,Xt1,Xt},也就是找到一个从输入到输出的映射,表示如下:
mapping
对于每个时刻的输出,都计算与真实值之间的差异,并且尽可能的减少这个差异,也即最小化这个损失函数:
minfunc
上述的模型类似于自回归预测,但是不同于机器翻译等问题,因为在机器翻译、机器推理等问题中,均以所有时刻的取值作为输入。

2.2.1 整体构架:

TCN architect
TCN特点在于:

  • 网络的上一层到下一层,输入与输出的长度相同
  • 不存在利用将来信息的情形

文中的做法是:

  1. 针对第一点使用Full-Convolutional ,全卷积神经网络FCN架构。
  2. 使用casual convolution
2.3 Casual Convolutions(因果卷积)

因果卷积只是个叫法,保证t时刻的输出只与前一层t时刻以及更早的元素进行卷积。(我感觉就是传统的卷积操作)
回顾一下以前模型中VGG里面说2个3 * 3filter等价于一个5 * 5filter、3个3 * 3filter等价于一个7*7filter。假如这3个filter相邻,最后得到的感受野大小即是7 * 7,计算公式是:receptive field = (filter_size -1) * num+1 = (3-1)*3+1
但这种做法存在的问题是,如果整个网络需要记录非常多的信息,那么势必会导致网络模型的深度急剧增加。为此作者的做法是使用Dilated Convolution。

2.4 Dilated Convolutions(膨胀卷积、空洞卷积)

一个简单的因果卷积只能用网络深度的线性大小来回顾历史。这使得将上述因果卷积应用于序列任务非常困难,特别是对于需要长期记忆的问题,如机器翻译、逻辑推理等。

作者的做法是采用dilated convolution,又称膨胀卷积、空洞卷积,下称膨胀卷积,能够以指数形式增加感受野,对于一维的输入序列 X X X、卷积核 f : f: f:{ 0 , 1 , 2 , . . . , k − 1 {0,1,2,...,k-1} 0,1,2,...,k1},膨胀卷积操作可表示为:
dilated operation
其中d是膨胀系数,k是卷积核大小, X s − d ⋅ i X_{s-d·i} Xsdi代表过去的数据。

看公式看不太明白,在文末解释dilated convlution

Residual Connections

ResNet中的快速通道使得模型学习差异信息,这一点在深层网络中十分有效且十分必要。p
这有效地允许层学习对标识映射的修改,而不是整个转换,这已多次被证明有利于非常深入的网络。对于本文中的TCN模型,如果想要使模型记录非常多的历史信息,就要求模型最后的感受野足够的大,感受野大小又依赖于网络深度、滤波器大小以及扩张系数。例如预测可能依赖于 2 12 2^{12} 212的历史记录以及高纬度的输入序列,那么则需要多大12层的网络,所以TCN采用了ResNet构架。
residual block
其中包含每一个Residual block模块包含两层Dilated conv,ReLU,BN操作采用weight normalization,此外在激活函数之后还使用spatial dropout
而对于ResNet中可能存在的输入输出的长度不一致时,增加了1*1 conv以确保元素内积得到同样大小的tensor。

2.5 Discussion

TCN包含以下优点:

  1. 并行 RNN模型某一时刻的计算需依赖于上一层的计算结束,但是由于卷积核一致,CNN中卷积操作可以并行计算。因此,无论是在训练还是评估中,TCN都能够保存更加长期的记忆。
  2. 感受野的大小灵活 TCN可以通过叠加更多的扩张卷积层、使用更大的扩张因子或者使用更大的卷积核来增加感受野,所以TCN能够更加灵活的空值模型的内存大小,并且容易迁移到其它领域中。
  3. 梯度稳定 TCN具有不同于序列时间方向的反向传播路径,避免了RNN中的梯度爆炸和梯度消失问题。
  4. 训练时内存需求低 输入序列非常长的情况下,LSTM和GRU需要使用大量的内存来存储门结构的结果。而TCN中卷积核是跨层贡献的,反向传播的路径仅仅依赖于网络的深度。
  5. 可变长度的输入 与RNN一样,TCN也可以通过滑动一维卷积核来接收任意长度的输入

同样的TCN也有以下两个缺点:

  • 评估期间的数据存储 在评估/测试中,为了生成预测,RNNs只需要保持一个隐藏状态并接受一个当前输入 x t x_t xt。也即整个历史的总结是由固定长度的 h t h_t ht向量表示,实际观测到的序列可以被丢弃。相比之下,TCN需要将原始序列保留到有效历史长度,因此在评估时可能需要更多的内存
  • 领域转化时潜在的参数变化。为了进行预测,不同的领域可能对模型所需的历史记忆有不同的需求。所以,当其记忆长度由短变长时,TCN可能表现不好,因为没有足够大的感知域。

3. Sequence Modeling Tasks & Experiments(序列模型任务 & 实验)

包含如下模型序列任务:

  • adding problem. 加法问题,每个输入由一个深度为2的序列组成,所有值从[0,1]中随机选取。在第二维度中,除第一维被标记为1的元素外,其余数均为0。将两个随机值相加,如果为1,则其MSE为0.1767。被用于序列模型的压力测试。
  • Sequential MNIST and P-MNIST. Sequential MNIST用来测试一个循环网络保留遥远过去信息的能力
  • Copy memory. 每个输入序列的长度为 T + 20 T+20 T+20,前十个是是从{ 1 , 2 , . . . , 8 1,2,...,8 1,2,...,8}中随机选取的,除最后11个被置为9外,全部为0。目的是生成一个长度相同的输出。除分隔符之后的10个值外,其余数值全部是0.
    这里感觉写了没什么太大意思,不写了。
  • JSB Chorales and Nottingham
  • PennTreebank
  • Wikitext-103
  • LAMBADA
  • text8

实验中所使用的扩张系数为 d = 2 i d=2^i d=2i,其中 i i i是第 i i i层。模型中使用Adam optimizer并且设置learning rate=0.002
experiments

4. Conclusion

实验结果表明,TCN模型的性能明显优于LSTMs和GRUs等一般的递归体系结构。并且针对于卷积神经网络与循环神经网络的长期记忆能力,在实际应用中,RNN的无限记忆的优势并不存在。与之相比,相同大小的TCN模型表现出更加出色的长期记忆。

膨胀卷积

传统的卷积操作存在一些缺点,较为著名的是 up-sampling 和 pooling layer 。
主要包含:

  • Up-sampling / pooling layer (e.g. bilinear interpolation) is deterministic. (参数不可学习)
  • 内部数据结构丢失;空间层级化信息丢失。
  • 小物体信息无法重建 (假设有四个pooling layer 则 任何小于 2^4 = 16 pixel 的物体信息将理论上无法重建。)
    在这样问题的存在下,语义分割问题一直处在瓶颈期无法再明显提高精度, 而 dilated convolution 的设计就良好的避免了这些问题。

想了想,这里还是另起一篇文章系统讲述卷积、反卷积、空洞卷积。


http://chatgpt.dhexx.cn/article/V9Lm6xnX.shtml

相关文章

wavenet及TCN

一切皆卷积——包括时序相关任务 1.wavenet1.1 wavenet的pytorch实现1.1.1 wavenet类1.1.2 ResidualConv1dGLU 1.2 wavenet在纳米孔测序中的应用 2.Temporal Convolutional Network(TCN)2.1 TCN模型介绍2.3 TCN代码实现及可视化 3.wavenet/TCN的优点参考…

时序模型(一)—— TCN 时间卷积网络

一、 概述 TCN是18年提出的时序卷积神经网络模型。 时序问题建模,通常采用RNN循环神经网络及其相关变种,比如LSTM、GRU等,这里将卷积神经网络通过膨胀卷积达到抓取长时依赖信息的效果,TCN在一些任务上甚至能超过RNN相关模型。 …

【学习日志】【TCN】时间序列卷积神经网络(1)

1. ask bing(Temporal Convolutional Network) 问:“我对CNN、RNN、TCN等神经网络没有任何基础,你能直观地给我讲一下TCN的结构、输入输出和原理吗?” bing对TCN的解释如下: TCN是一种用于处理序列数据的神…

LSTM的备胎,用卷积处理时间序列——TCN与因果卷积(理论+Python实践)

什么是TCN TCN全称Temporal Convolutional Network,时序卷积网络,是在2018年提出的一个卷积模型,但是可以用来处理时间序列。 卷积如何处理时间序列 时间序列预测,最容易想到的就是那个马尔可夫模型: P ( y k ∣ x…

python深度学习之TCN实例

1.TCN的介绍 近些年,关于时间序列、自然语言处理等任务大家一般都会想到RNN、LSTM、GRU,一维CNN以及后面延伸出的Bi-Lstm、ConvLstm等等,这是因为RNN天生可以记住以前时段的信息,而传统的神经网络并不具有这个功能。卷积神经网络…

时间卷积网络TCN:时间序列处理的新模型

这篇文章回顾了基于TCN的解决方案的最新创新。我们首先介绍了一个运动检测的案例研究,并简要回顾了TCN架构及其相对于传统方法的优势,如卷积神经网络(CNN)和递归神经网络(RNN)。然后,我们介绍了一些使用TCN的应用,包括改进交通预测…

TCN论文及代码解读总结

前言:传统的时序处理,普遍采用RNN做为基础网络模型,如其变体LSTM、GRU、BPTT等。但是在处理使用LSTM时时序的卷积神经网络 目录 论文及代码链接一、论文解读1、 摘要2、引言(摘)3、时序卷积神经网络(Temporal Convolutional Networks)3.1 因果…

轨道交通中TCN、TRDP、TSN的理解

轨道交通中TCN、TSN、TRDP的理解 1 TCN2 TSN3 TRDP———————————————————————— 1 TCN TCN(Train Communication Network)是列车通信网络,是列车通信网络的总称。 在IEC 61375-1 以及GB/T 28029.1中都详细的介绍了列车…

深度学习 + 论文详解: TCN_时间卷积网络_原理与优势

论文链接 TCN: https://arxiv.org/pdf/1803.01271.pdf p.s. TCN stands for Temporal Convolutional Network. 它是除了 RNN architecture 之外的第二种可以分析时间性数据的架构 更多文章将在公众号:AI 算法辞典 首发! 前言 RNN 从最一开始发展以来…

【python量化】用时间卷积神经网络(TCN)进行股价预测

写在前面 下面这篇文章首先主要简单介绍了目前较为先进的时间序列预测方法——时间卷积神经网络(TCN)的基本原理,然后基于TCN的开源代码,手把手教你如何通过时间卷积神经网络来进行股价预测,感兴趣的读者也可以基于此模…

时域卷积网络(Temporal Convolutional Network,TCN)

TCN基本结构 时域卷积网络(Temporal Convolutional Network,TCN)由Shaojie Bai et al.在2018年提出的,可以用于时序数据处理,详细内容请看论文。 1.因果卷积(Causal Convolution) 因果卷积如上…

时域卷积网络TCN详解:使用卷积进行序列建模和预测

CNN经过一些简单的调整就可以成为序列建模和预测的强大工具 尽管卷积神经网络(CNNs)通常与图像分类任务相关,但经过适当的修改,它已被证明是进行序列建模和预测的有价值的工具。在本文中,我们将详细探讨时域卷积网络(TCN)所包含的基本构建块&…

TCN代码详解-Torch (误导纠正)

1. 绪论 TCN网络由Shaojie Bai, J. Zico Kolter, Vladlen Koltun 三人于2018提出。对于序列预测而言,通常考虑循环神经网络结构,例如RNN、LSTM、GRU等。他们三个人的研究建议我们,对于某些序列预测(音频合…

时序CNN基础——TCN

自用~~笔记~~ 知识补充: 空洞卷积(膨胀卷积)——Dilated Conv 在标准卷积的基础上注入空洞,以此来增加感受野(reception field)。因此增加一个超参:膨胀率,指kernel的间隔数量。 因…

时间卷积网络(TCN):结构+pytorch代码

文章目录 TCNTCN结构1-D FCN的结构因果卷积(Causal Convolutions)膨胀因果卷积(Dilated Causal Convolutions)膨胀非因果卷积(Dilated Non-Causal Convolutions)残差块结构 pytorch代码讲解 TCN TCN(Temporal Convolutional Network)是由Shaojie Bai et al.提出的,p…

时间序列预测——时序卷积网络(TCN)

本文展示了使用时序卷积网络(TCN)进行时间序列预测的全过程,包含详细的注释。整个过程主要包括:数据导入、数据清洗、结构转化、建立TCN模型、训练模型(包括动态调整学习率和earlystopping的设置)、预测、结…

TCN-时间卷积网络

目录 一、引言 二、时序卷积神经网络 2.1 因果卷积(Causal Convolution) 2.2 膨胀卷积(Dilated Convolution) 2.3 残差链接(Residual Connections) 三、讨论和总结 1. TCN的优点 2. TCN的缺点 参考…

时间卷积网络TCN:CNN也可以处理时序数据并且比LSTM更好

本文回顾了 Shaojie Bai、J. Zico Kolter 和 Vladlen Koltun 撰写的论文:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling。 TCN源代码:https://github.com/locuslab/TCN 文章目录 1. 序列建模2. 因果…

TCN(Temporal Convolutional Network,时间卷积网络)

1 前言 实验表明,RNN 在几乎所有的序列问题上都有良好表现,包括语音/文本识别、机器翻译、手写体识别、序列数据分析(预测)等。 在实际应用中,RNN 在内部设计上存在一个严重的问题:由于网络一次只能处理一个…

机器学习进阶之 时域/时间卷积网络 TCN 概念+由来+原理+代码实现

TCN 从“阿巴阿巴”到“巴拉巴拉” TCN的概念(干嘛来的!能解决什么问题)TCN的父母(由来)TCN的原理介绍上代码! 1、TCN(时域卷积网络、时间卷积网络)是干嘛的,能干嘛 主…