时空卷积网络TCN

1.写在前面

实验代表,RNN 在几乎全部的序列问题上都有良好表现,包括语音/文本识别、机器翻译、手写体识别、序列数据分析(预测)等。网络

在实际应用中,RNN 在内部设计上存在一个严重的问题:因为网络一次只能处理一个时间步长,后一步必须等前一步处理完才能进行运算。这意味着 RNN 不能像 CNN 那样进行大规模并行处理,特别是在 RNN/LSTM 对文本进行双向处理时。这也意味着 RNN 极度地计算密集,由于在整个任务运行完成以前,必须保存全部的中间结果。架构

CNN 在处理图像时,将图像看做一个二维的“块”(m*n 的矩阵)。迁移到时间序列上,就能够将序列看做一个一维对象(1*n 的向量)。经过多层网络结构,能够得到足够大的感觉野。这种作法会让 CNN 很是深,可是得益于大规模并行处理的优点,不管网络多深,均可以进行并行处理,节省大量时间。这就是 TCN 的基本思想。app

2 CNN 扩展技术

TCN 模型以 CNN 模型为基础,并作了以下改进:ide

  1. 适用序列模型:因果卷积(Causal Convolution)
  2. 记忆历史:空洞卷积/膨胀卷积(Dilated Convolution),残差模块(Residual block)

下面将分别介绍 CNN 的扩展技术。函数

2.1 因果卷积(Causal Convolution)

由于要处理序列问题(时序性),就必须使用新的 CNN 模型,这就是因果卷积。序列问题能够转化为:根据 [公式] 去预测 [公式] 。下面给出因果卷积的定义,滤波器 [公式] ,序列 [公式] ,在 [公式] 处的因果卷积为: [公式] 。下图为一个因果卷积的实例,假设输入层最后两个节点分别为 [公式] ,第一层隐藏层的最后一个节点为 [公式] ,滤波器 [公式] ,根据公式有 [公式] 。性能

因果卷积有两个特色:学习

  1. 不考虑将来的信息。给定输入序列 [公式],预测 [公式]。可是在预测 [公式]时,只能使用已经观测到的序列 [公式],而不能使用 [公式] 。
  2. 追溯历史信息越久远,隐藏层越多。上图中,假设咱们以第二层隐藏层做为输出,它的最后一个节点关联了输入的三个节点,即 [公式] ;假设以输出层做为输出,它的最后一个节点关联了输入的四个节点,即 [公式] 

2.2 空洞卷积/膨胀卷积(Dilated Convolution)

标准的 CNN 经过增长 pooling 层来得到更大的感觉野,而通过 pooling 层后确定存在信息损失的问题。空洞卷积是在标准的卷积里注入空洞,以此来增长感觉野。空洞卷积多了一个超参数 dilation rate,指的是 kernel 的间隔数量(标准的 CNN 中 dilatation rate 等于 1)。空洞的好处是不作 pooling 损失信息的状况下,增长了感觉野,让每一个卷积输出都包含较大范围的信息。下图展现了标准 CNN (左)和 Dilated Convolution (右),右图中的 dilatation rate 等于 2 。测试

下面给出空洞卷积的定义,滤波器 [公式] ,序列 [公式],在 [公式] 处的 dilatation rate 等于 d 的空洞卷积为:
[公式] ,下图为一个空洞卷积的实例,假设第一层隐藏层最后五个节点分别为 [公式] ,第二层隐藏层的最后一个节点为 [公式] ,滤波器 [公式] ,根据公式有 [公式] 。翻译

空洞卷积的感觉野大小为 [公式] ,因此增大 [公式] 或 [公式] 均可以增长感觉野。在实践中,一般随网络层数增长, [公式] 以 [公式] 的指数增加,例如上图中 [公式] 依次为 [公式] 。设计

2.3 残差模块(Residual block)

CNN 可以提取 low/mid/high-level 的特征,网络的层数越多,意味着可以提取到不一样 level的特征越丰富。而且,越深的网络提取的特征越抽象,越具备语义信息。

若是简单地增长深度,会致使梯度消失或梯度爆炸。对于该问题的解决方法是权重参数初始化和采用正则化层(Batch Normalization),这样能够训练几十层的网络。解决了梯度问题,还会出现另外一个问题:网络退化问题。随着网络层数的增长,在训练集上的准确率趋于饱和甚至降低了。注意这不是过拟合问题,由于过拟合会在训练集上表现的更好。下图是一个网络退化的例子,20 层的网络比 56 层的网络表现更好。

理论上 56 层网络的解空间包括了 20 层网络的解空间,所以 56 层网络的表现应该大于等于20 层网络。可是从训练结果来看,56 层网络不管是训练偏差仍是测试偏差都大于 20 层网络(这也说明了为何不是过拟合现象,由于 56 层网络自己的训练偏差都没有降下去)。这是由于虽然 56 层网络的解空间包含了 20 层网络的解空间,可是咱们在训练中用的是随机梯度降低策略,每每获得的不是全局最优解,而是局部最优解。显然 56 层网络的解空间更加的复杂,因此致使使用随机梯度降低没法获得最优解。

 

假设已经有了一个最优的网络结构,是 18 层。当咱们设计网络结构时,咱们并不知道具体多少层的网络拥有最优的网络结构,假设设计了 34 层的网络结构。那么多出来的 16 层实际上是冗余的,咱们但愿训练网络的过程当中,模型可以本身训练这 16 层为恒等映射,也就是通过这16 层时的输入与输出彻底同样。可是每每模型很难将这 16 层恒等映射的参数学习正确,这样的网络必定比最优的 18 层网络表现差,这就是随着网络加深,模型退化的缘由。

所以解决网络退化的问题,就是解决如何让网络的冗余层产生恒等映射(深层网络等价于一个浅层网络)。一般状况下,让网络的某一层学习恒等映射函数 [公式] 比较困难,可是若是咱们把网络设计为 [公式] ,咱们就能够将学习恒等映射函数转换为学习一个残差函数 [公式] ,只要 [公式] ,就构成了一个恒等映射 [公式] 。在参数初始化的时候,通常权重参数都比较小,很是适合学习 [公式] ,所以拟合残差会更加容易,这就是残差网络的思想。

下图为残差模块的结构,该模块提供了两种选择方式,也就是 identity mapping(即 [公式] ,右侧“弯弯的线",称为 shortcut 链接) 和 residual mapping(即 [公式] ),若是网络已经到达最优,继续加深网络,residual mapping 将被 push 为 0,只剩下 identity mapping,这样理论上网络一直处于最优状态了,网络的性能也就不会随着深度增长而下降了。

这种残差模块结构能够经过前向神经网络 + shortcut 链接实现。并且 shortcut 链接至关于简单执行了同等映射,不会产生额外的参数,也不会增长计算复杂度,整个网络依旧能够经过端到端的反向传播训练。

上图中残差模块包含两层网络。实验证实,残差模块每每须要两层以上,单单一层的残差模块 并不能起到提高做用。shortcut 有两种链接方式:

(1)identity mapping 同等维度的映射( [公式] 与 [公式] 维度相同):

[公式]

(2)identity mapping 不一样维度的映射( [公式] 与 [公式] 维度不一样):

[公式]

以上是基于全链接层的表示,实际上残差模块能够用于卷积层。加法变为对应 channel 间的两个 feature map 逐元素相加。

设计 CNN 网络的规则:

(1)对于输出 feature map 大小相同的层,有相同数量的 filters,即 channel 数相同;

(2)当 feature map 大小减半时(池化),filters 数量翻倍;

对于残差网络,维度匹配的 shortcut 链接为实线,反之为虚线。维度不匹配时,同等映射(identity mapping)有两种可选方案:

(1)直接经过 zero padding 来增长 channels(采用 zero feature map 补充)。

(2)增长 filters,直接改变 1x1 卷积的 filters 数目,这样会增长参数。

在实际中更多采用 zero feature map 补充的方式。

在残差网络中,有不少残差模块,下图是一个残差网络。每一个残差模块包含两层,相同维度残差模块之间采用实线链接,不一样维度残差模块之间采用虚线链接。网络的 二、3 层执行 3x3x64 的卷积,他们的 channel 个数相同,因此采用计算: [公式] ;网络的 四、5 层执行 3x3x128 的卷积,与第 3 层的 channel 个数不一样 (64 和 128),因此采用计算方式: [公式] 。其中 [公式] 是卷积操做(用 128 个 3x3x64 的 filter),用来调整 x 的 channel 个数。

 

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

由于研究对象是时间序列,TCN 采用一维的卷积网络。下图是 TCN 架构中的因果卷积与空洞卷积,能够看到每一层 [公式] 时刻的值只依赖于上一层 [公式] 时刻的值,体现了因果卷积的特性;而每一层对上一层信息的提取,都是跳跃式的,且逐层 dilated rate 以 2 的指数增加,体现了空洞卷积的特性。因为采用了空洞卷积,所以每一层都要作 padding(一般状况下补 0),padding 的大小为 [公式] 。

下图是 TCN 架构中的残差模块,输入经历空洞卷积、权重归一化、激活函数、Dropout(两轮),做为残差函数 [公式] ;输入经历 1x1 卷积 filters,做为 shortcut 链接的 [公式] 。

下图是 TCN 的一个例子,当 [公式] 时,空洞卷积退化为普通卷积。

     

 转自知乎:https://zhuanlan.zhihu.com/p/69919158      

相关文章
相关标签/搜索