0%

精选翻译 Temporal Convolutional Networks(时间卷积网络)

卷首语

最近在忙着写大论文,论文里用到了TCN模型,对于这个模型的初步认知和熟悉过程中,发现了这篇文章,可以对TCN网络有一个比较完整的初步认知,故译为中文,希望可以帮助到同样需要基础了解的人吧。

原文链接:TEMPORAL CONVOLUTIONAL NETWORKS

有效并高效地学习序列(译文)

时至今日,对于序列建模任务的选择仍然是RNN为主的循环神经网络,这都得益于其独有的时序性数据间依赖关系的捕捉能力。现如今也有了如LSTM、GRU等变种RNN,它们具有序列中长时依赖的捕捉能力,并且在Seq2Seq任务中也达到了业界先进的水平。

最近,深度学习的实践者们也开始使用变种的卷积神经网络结构来应对序列建模任务,这种网络成为时间卷积网络。这一名称也是作为这一系列相关的模型结构的简约描述。

Google DeepMind团队发表的文章像素化循环神经网络里介绍了通过固定的依赖范围来使用CNN构建序列模型的概念。这样的做法只将当前时间戳的元素或者当前元素之前层级的元素进行卷积。在DeepMind团队发表的另一篇文章线性时间中的神经机器翻译也是受上文的思路启发从而在英语-德语翻译任务中使用TCN模型超过了具有池化注意力机制的RNN模型,成为最佳表现的拥有者。

TCN的特点主要为:

  • TCN模型的结构能够接收任意长度的时间序列输入并且能够将其映射成相同长度的输出序列,这一点与RNN保持一致。

  • 卷积层的结构是具有因果关系的,这就意味着从头到尾的信息都不会存在“泄露(丢失)”。

为了完成第一个特点设计,TCN模型使用了一个1维的完全卷积网络结构(FCN),这个网络中的每一层隐藏层都有与输入层相同的长度,并且0填充(zero padding)的长度为卷积核大小-1(kernal size - 1)会默认进行添加,以保证子序列层具有与初始序列相同的长度。为了达到第二个特点,TCN模型使用因果卷积来进行设计,$t$时刻的卷积层输出只会对到从$t$时刻和$t$时刻之前的层级机进行过卷积。

简言之, TCN = 1维 FCN + 因果卷积

随着网络层级和滤波器大小的线性变化,这样的基础结构就可以回看历史(学习时间序列的特征)了。

扩张卷积

对于1维的序列输入$x \in R^n$以及滤波器$f$:${0, \dotsb, k-1} \rightarrow R$,膨胀卷积操作&F&对序列中的元素&s&定义如下:

$$F(s) = (X \ast df)(s)=\sum^{k-1}{i=0}f(i) \cdot X_{s-d \cdot i}$$

在上述公式中,因果卷积的评价标准只关注使用非负数值的$i$。这证明了正常的卷积可能只一个大小为1的膨胀卷积。对于扩张卷积更多的细节讲解可以参照这篇文章

扩张因子d=1,2,4以及滤波器大小k=3的扩张因果卷积

使用TCN做时序建模的优势

  • 并行性:不像RNN模型在预测之后时间步必须要等待之前的输入处理完,卷积结构可以并行进行这一过程,这是由于每一层的卷积都共享同一个滤波器。因此在训练和评估过程中,较长的输入序列都可以在TCN中作为一个整体来处理,相反RNN则必须按照时序顺序来处理。

  • 可调整的感知野大小:TCN模型可以通过多种方式进行感知野大小的调整。列入,堆叠更多的扩张(膨胀)卷积层,使用更大的扩张因子或者增加滤波器的大小,这些方式都是可行的(当然这也会使得模型的解释性不同)。

  • 训练时的低内存要求:尤其对于长输入序列而言,LSTM和GRU模型都可以用各种门限来保存隐藏层数据从而使你的内存起飞。但在TCN中由于滤波器和权重共享机制,反向传播的路径也仅仅只由模型深度决定,这样的问题也就不存在。因此在实际实验中,RNN的内存占用一般是TCN的几倍。

  • 捕捉局部信息的能力:使用卷积操作能够帮助模型捕捉到局部信息中的时序信息。

结语

扩张卷积的反向传播过程可以理解为转置的卷积操作

因为TCN的感知野依赖于模型的深度$n$、滤波器大小$k$以及扩张因子$d$,所以在深度和体积都不断扩张的TCN中稳定性变得尤为重要。因此,一种通用的残差模型也可以用于替代卷积层。

参考文献

  • Bai, S., Kolter, J. Z., & Koltun, V. (2018). An empirical evaluation of generic convolutional and recurrent networks for sequence modeling. arXiv preprint arXiv:1803.01271.

  • Lea, C., Vidal, R., Reiter, A., & Hager, G. D. (2016, October). Temporal convolutional networks: A unified approach to action segmentation. In European Conference on Computer Vision(pp. 47–54). Springer, Cham.

  • Kalchbrenner, N., Espeholt, L., Simonyan, K., Oord, A. V. D., Graves, A., & Kavukcuoglu, K. (2016). Neural machine translation in linear time. arXiv preprint arXiv:1610.10099.