对RNN和CNN进行比较
时间卷积网络TCN代码:GitHub - locuslab/TCN: Sequence modeling benchmarks and temporal convolutional networks
TCN的显着特征:1)体系结构中的卷积是因果关系的,这意味着从未来到过去都不会发生信息“泄漏”; 2)可以采用任意长度的序列并将其映射到相同长度的输出序列,像RNN一样。
除此之外,我们强调如何结合使用非常深的网络(使用残差层增强)和扩张的卷积来构建非常长的有效历史记录大小(即,网络可以很远地看过去进行预测的能力)。

序列建模
给定序列,期望每个时刻得到对应输出
.
只依赖于
。序列建模的目的就是寻找到一个网络
最小化真实值和预测值的误差。
因果卷积
如上,TCN基于两个原则:1.网络产生与输入长度相同的输出,2.从将来到过去都不会泄漏的事实。 为完成1,TCN使用一维全卷积网络(FCN)架构,其中每个隐藏层的长度与输入层的长度相同,并且zero-padding长度(kernel size-1)被添加以保持后续层与先前层的长度相同。 为了达到2,TCN使用因果卷积,即在卷积中,时间的输出仅与时间
或更早的上一层中的元素卷积。
TCN = 1D FCN + 因果卷积.
空洞卷积dilated convolutions
简单的因果卷积只能回顾网络深度为线性的历史。 这使得将上述因果卷积应用于序列任务(尤其是需要较长历史记录的任务)具有挑战性。在这里采用空洞卷积,以实现指数级大的接收场。
对于一个1-D序列输入,一个过滤器
,那么对于序列元素
的空洞卷积操作
定义为:
.
为空洞因子,
为过滤器大小,
表示过去方向。
因此,空洞相当于在每两个相邻的filter taps之间引入一个固定的step。 当d = 1时,空洞卷积为常规卷积。 使用较大的dilation可使顶层的输出代表更大范围的输入,从而有效地扩展了ConvNet的接受野。
两种增加TCN接收野的方法:1.选择较大的filter size 和增大空洞系数
,其中一层为(k-1)d。随着网络深度的增加,d呈指数增长(在网络第i 层
)。
残差连接
残差块包含一个分支,该分支通向一系列变换,其输出被添加到块的输入x中:
在残差块内,TCN有两层空洞因果卷积和非线性ReLU。 为了归一化,对卷积滤波器应用了权重归一化。 另外,在每个空洞的卷积后进行正则化:在每个训练步骤中,整个通道都被清零。
在TCN中,输入和输出的宽度可能不同。 为了解决输入输出宽度的差异,使用额外的1x1卷积,确保逐元素加法⊕接收到相同形状的张量(图b,c)。
总结:
文章用一系列综合的序列建模任务对通用卷积和循环体系结构的实证评估。
TCN结合了最佳实践(如dilation和残差连接)以及自回归预测所需的因果卷积。 实验结果表明,TCN模型的性能明显优于通用RNN体系结构,如LSTM和GRU。 进一步研究了卷积网络和递归网络中的远程信息传播,并表明RNN的“无限记忆”优势在实践中基本上不存在。 与具有相同容量的循环体系结构相比,TCN具有更长的内存。