时序卷积网络(Temporal convolutional network, TCN)的提出是为了是卷积神经网络具备时序特性,与多种RNN结构相对比,发现在多种任务上TCN都能达到甚至超过RNN模型。
TCN主要基于因果卷积和膨胀卷积(Dilated Convolution)
因果卷积
从直观上来说,它类似于将卷积运算「劈」去一半,令其只能对过去时间步的输入进行运算。对于 TCN 所使用的一维卷积来说,因果卷积可以简单将一般卷积的输出移动几个时间步而实现。TCN使用因果卷积,其中时间t的输出仅与来自前一层中的时间t和更早的元素卷积。
因果卷积可以用上图直观表示。 即对于上一层t时刻的值,只依赖于下一层t时刻及其之前的值。和传统的卷积神经网络的不同之处在于,因果卷积不能看到未来的数据,它是单向的结构,不是双向的。也就是说只有有了前面的因才有后面的果,是一种严格的时间约束模型,因此被成为因果卷积。
膨胀卷积(Dilated Convolution)
单纯的因果卷积还是存在传统卷积神经网络的问题,即对时间的建模长度受限于卷积核大小的,如果要想抓去更长的依赖关系,就需要线性的堆叠很多的层。为了解决这个问题,研究人员提出了膨胀卷积。如下图所示。
和传统卷积不同的是,膨胀卷积允许卷积时的输入存在间隔采样,采样率受图中的d控制。 最下面一层的d=1,表示输入时每个点都采样,中间层d=2,表示输入时每2个点采样一个作为输入。一般来讲,越高的层级使用的d的大小越大。所以,膨胀卷积使得有效窗口的大小随着层数呈指数型增长。这样卷积网络用比较少的层,就可以获得很大的感受野。