论文地址:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling
代码地址:https://github.com/LOCUSLAB/tcn
论文总结
本文的方法名为TCN,本文没提出什么新的东西,主要是使用Causal Conv,Dilated Conv和residual block对时序序列进行预测,同时与传统的时序模型LSTM等循环和递归网络结构进行对比。然后在多个不同的时序任务和数据集进行了思想的验证。
TCN不是一个特定的网络,而是一系列的网络结构,即使用上面所述的三个模块构建的模型,是一系列体系结构的简单描述术语。
论文介绍
TCN的特点:卷积采用的是因果卷积,即没有对“未来的信息”进行泄露和应用。同时,作者强调了深层网络和空洞卷积结合的重要性。
本文的目标,实际上想要的是输入长度和输出长度相同的模型设计,所做的假设和实验都是基于此讨论的。所以采用1D Conv全卷积网络,使用zero-padding保证输入长度和隐藏层长度是一致的。一般使用因果卷积的网络,都会使用空洞卷积来增大感受野,因为因果卷积增长感受野是线性的。
在本文的网络设计中,有两种方式增加感受野:(1)增大卷积核大小;(2)增大空洞率因子;随着网络变深,增加空洞因子d的大小。
由于不适用未来的信息,所以在不经过网络改进的情况下,是不能直接处理机器翻译和序列到序列预测等任务的,因为那些任务需要对“未来”的信息进行处理。
在网络设计的时候,使用残差块。残差块中有两个空洞卷积和非线性单元(ReLU),如下图所示。BN层采用weight normalization,使用spatial dropout在空洞卷积之后以增加正则化。

TCN的优势:
- 平行化。RNN需要循环利用同一个核,故后面的序列只能等待前面的运算先完成,而CNN可以直接输入长时间序列;
- 灵活的感受野大小。TCN更容易控制感受野大小,更好控制模型内存大小;
- 稳定的梯度。TCN相比LSTM等,梯度更稳固,较少有梯度膨胀或梯度消失;
- 在训练时需要更少的内存;
- 可变的输入长度。TCN是全卷积神经网络,可以改变输入的长度。
TCN的劣势:
- 在评估时信息的存储;RNN可以保留 h t h_t ht作为中间状态,直接对历史信息进行利用。但TCN不太行;
- 模型迁移时的问题;在感受野小的领域迁移到感受野大的领域,会出现模型本身的问题;