首页 > 其他分享 >TCN时间卷积网络——解决LSTM的并发问题

TCN时间卷积网络——解决LSTM的并发问题

时间:2023-07-07 17:32:42浏览次数:46  
标签:卷积 网络 残差 TCN 扩张 LSTM 因果

TCN是指时间卷积网络,一种新型的可以用来解决时间序列预测的算法。在这一两年中已有多篇论文提出,但是普遍认为下篇论文是TCN的开端。

论文名称:

An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling

作者:Shaojie Bai 1 J. Zico Kolter 2 Vladlen Koltun 3

自从TCN提出后引起了巨大反响,有人认为

时间卷积网络(TCN)将取代RNN成为NLP或者时序预测领域的王者。

William Vorhies给出的原因如下:

RNN耗时太长,由于网络一次只读取、解析输入文本中的一个单词(或字符),深度神经网络必须等前一个单词处理完,才能进行下一个单词的处理。这意味着 RNN 不能像 CNN 那样进行大规模并行处理。

并且TCN的实际结果也要优于RNN算法。

所以本教程未来几次更新将集中介绍TCN的算法含义与代码解读。

 

2

什么是TCN?

TCN中涉及到了最简单的CNN和RNN,此处暂不赘述。还涉及到了一维卷积,扩张卷积,因果卷积,残差卷积的跳层连接等其他知识点。为了能够更准确的了解,我们将结合论文逐步介绍每个部分。

一维卷积


TCN时间卷积网络——解决LSTM的并发问题_安全分析

以下图为例:图中的输入的数据维度为8,过滤器的维度为5。那么卷积后输出的数据维度为8−5+1=4

如果过滤器数量为1,输入数据的channel数量变为,即输入数据维度为8×32。这里channel的概念相当于自然语言处理中的embedding,而该输入数据代表8个单词,其中每个单词的词向量维度大小为32。在这种情况下,过滤器的维度由5变为5×32,最终输出的数据维度仍为4。

如果过滤器数量为n,那么输出的数据维度就变为4×n。

其实可以看出模型基本上与二维卷积相同,非常容易理解。

扩张卷积

扩张卷积与普通的卷积相比,除了卷积核的大小以外,还有一个扩张率(dilation rate)参数,主要用来表示扩张的大小。

扩张卷积与普通卷积的相同点在于,卷积核的大小是一样的,神经网络中的参数数量不变。

两者区别区别在于扩张卷积具有更大的感受野。感受野是卷积核在图像上看到的大小,例如3×3卷积核的感受野大小为9。

例如下图是普通卷积,卷积核的感受野为3×3=9。


TCN时间卷积网络——解决LSTM的并发问题_卷积_02

例如下图是扩张卷积,卷积核的感受野为7×7=49


TCN时间卷积网络——解决LSTM的并发问题_卷积_03

下次更新将介绍因果卷积,残差卷积的跳层连接,并结合论文讲解TCN。

 

TCN

 

上次初步介绍了TCN,时间卷积网络,一种新型的可以用来解决时间序列预测的算法。TCN中涉及到了一维卷积,扩张卷积,因果卷积,残差卷积的跳层连接等其他知识点。

每天三分钟之Pytorch编程-5:RNN的新对手TCN(1)

上次也介绍了一维卷积和扩张卷积。

需要补充的是扩张卷积的好处是不做pooling损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息。

下面来介绍因果卷积,残差卷积的跳层连接

因果卷积

因果卷积的理解可以认为是:不管是自然语言处理领域中的预测还是时序预测,都要求对时刻t 的预测yt只能通过t时刻之前的输入x1到xt-1来判别。这种思想有点类似于马尔科夫链。

残差卷积的跳层连接

微软的残差网络 ResNet 就是经典的跳层连接(skip-connection),如下图所示。


TCN时间卷积网络——解决LSTM的并发问题_安全分析_04

上一层的特征图 x 直接与卷积后的 F(x)对齐加和,变为 F(x)+x (特征图数量不够可用 0 特征补齐,特征图大小不一可用带步长卷积做下采样)。

这样在每层特征图中添加上一层的特征信息,可使网络更深,加快反馈与收敛。

但是 ResNet 也有明显的缺陷:无法证明把每一层特征图硬连接到下一层都是有用的;并且实验证明把 ResNet 变深,不如把 ResNet 变宽, 即到了一定深度,加深网络已经无法使 ResNet 准确度提升了(还不如把网络层像 Inception 那样变宽)。

全卷积网络

时间卷积网络也用到了全卷积网络,全卷积网络(FCN)是在下篇论文中提出的:

论文 : Fully Convolutional Networks for Semantic Segmentation

 

FCN与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类不同,FCN可以接受任意尺寸的输入,采用卷积层对最后一个卷积层的feature map进行上采样, 使它恢复到与输入相同的尺寸,再进行预测。

TCN时间卷积网络

下面将介绍时间卷积网络中的一维卷积,扩张卷积,因果卷积,残差卷积的跳 层连接是如何体现的,以及之间的关联。


TCN时间卷积网络——解决LSTM的并发问题_卷积核_05

(a)图为空洞系数 d=1, 2, 4、卷积核大小 k=3 的扩张卷积,感受野能覆盖输入序列中的所有值。


TCN时间卷积网络——解决LSTM的并发问题_安全分析_06

上式即为扩张卷积的计算公式,d为扩展系数。


TCN时间卷积网络——解决LSTM的并发问题_安全分析_07

(b)为 TCN 残差块,当残差输入和输出有不同的维度,会往其中添加一个 1x1 的卷积。

(c)为 残差连接的示例,蓝线为残差函数中的卷积核,绿线为恒等映射。

 

TCN 的卷积层结合了扩张卷积因果卷积两种结构。使用因果卷积的目的是为了保证前面时间步的预测不会使用未来的信息,因为时间步 t 的输出只会根据 t-1 及之前时间步上的卷积运算得出。

可以看出,TCN的卷积和普通的一维卷积非常类似,只不过最大的不同是用了扩张卷积,随着层数越多,卷积窗口越大,卷积窗口中的空孔会越多。

值得一提的是在 TCN 的残差模块内(即图b)有两层扩张卷积和 ReLU 非线性函数,且卷积核的权重都经过了权重归一化。此外TCN 在残差模块内的每个空洞卷积后都添加了 Dropout 以实现正则化。

 

论文中跳层连接时直接将下层的特征图跳层连接到上层,这样的话对应的通道数channel不一致,所以不能直接做加和操作,于是,为了两个层加和时特征图数量,即通道数数量相同,作者通过用1×1卷积进行元素合并来保证两个张量的形状相同。

总结来讲,时间卷积网络是:

同时用到一维因果卷积和扩张卷积作为标准卷积层,并将每两个这样的卷积层与恒等映射可以封装为一个残差模块(包含了relu函数)。再由残差模块堆叠起深度网络,并在最后几层使用全卷积层代替全连接层。

由于TCN涉及内容较多,所以本次更新简要介绍整体框架,下次将着重对其中部分细节解释,并开始详解代码。

标签:卷积,网络,残差,TCN,扩张,LSTM,因果
From: https://blog.51cto.com/u_11908275/6654847

相关文章

  • 【学习笔记】狄利克雷卷积与高级筛法
    狄利克雷卷积概念对于数论函数\(f,g\),定义其狄利克雷卷积\(h=f*g\),满足:\[h(n)=(f*g)(n)=\sum_{d\midn}f(d)g\left(\dfrac{n}{d}\right)\]运算律:满足交换律,显然具有对称性。满足结合律,等价于三个\(d_i\)贡献到\(n\)。满足加法的分配率。常见数论函数:\(\m......
  • 【学习笔记】狄利克雷卷积与高级筛法
    狄利克雷卷积概念对于数论函数\(f,g\),定义其狄利克雷卷积\(h=f*g\),满足:\[h(n)=(f*g)(n)=\sum_{d\midn}f(d)g\left(\dfrac{n}{d}\right)\]运算律:满足交换律,显然具有对称性。满足结合律,等价于三个\(d_i\)贡献到\(n\)。满足加法的分配率。常见数论函数:\(\m......
  • 时间序列预测-基于LSTM-CNN的人体活动识别
    本文主要利用LSTM和CNN来处理移动传感器产生的数据识别人类活动。传感器数据集数据组成这个项目使用了WISDM(WirelessSensorDataMining)Lab实验室公开的Actitracker的数据集其中数据:测试记录:1,098,207条行为类型:6种走路慢跑上楼梯下楼梯坐站立传感器类......
  • Tensorflow整理[6].卷积神经网络
    概述对CIFAR-10数据集的分类是机器学习中一个公开的基准测试问题,其任务是对一组32x32RGB的图像进行分类,这些图像涵盖了10个类别:飞机,汽车,鸟,猫,鹿,狗,青蛙,马,船以及卡车。重点CIFAR-10教程演示了在TensorFlow上构建更大更复杂模型的几个种重要内容:相关核心数学对象,如卷积、修正......
  • TensorFlow11.5 循环神经网络RNN-LSTM、LSTM实战
    LSTM的产生我们之前在求RNN的loss的时候很容易出现梯度弥散或者梯度爆炸。这个LSTM的出现很大程度上减少了梯度弥散的情况。还有一个很重要的就是RNN只能够记住一个比较短的序列,如果一个句子单词很多的话,它学到最后一个的时候可能它的前面的就忘记了。而这个LSTM能够改善这问题......
  • TensorFlow10.4 卷积神经网络-ResNet与DenseNet及ResNet实战
    1ResNet我们是实验发现在我们堆叠更多的网络结构的时候,我们并不能又一个很好的结果,就是它网络层次变多了之后他会产生一个多层的loss的堆叠,使得梯度爆炸,或者梯度弥散。然后我们想了一个办法,就是我们比如说设置了一个30层的神经网络,我们在差也不能比22层的差。就是我们设置了一......
  • 深度卷积神经网络(AlexNet)
    1.AlexNet\(2012\)年,\(AlexNet\)横空出世。使用\(8\)层卷积神经网络,赢得\(ImageNet\2012\)图像识别挑战赛。\(AlexNet\) 网络结构:1.1第一个卷积层卷积运算:原始数据为\(227\times227\times3\)的图像。卷积核尺寸\(11\times11\times3\),步长\(4\),每次......
  • U-Net: 专注生物医学分割的卷积神经网络(翻译)
    原文链接:https://arxiv.org/pdf/1505.04597.pdf摘要:普遍认为,优秀的深度神经网络离不开数千个标注训练样本。在本文中,我们提出了一种网络和训练策略:该策略通过使用大量数据增强,从而充分利用带标注的训练样本;该网络结构包括了用于捕获上下文的收缩路径和用于实现精确定位的对称扩......
  • TensorFlow10.4 卷积神经网络-batchnorm
    我们发现这个sigmoid函数在小于-4或者大于4的时候他的导数趋近于0。然后我们送进去的input的值在[-100,100]之间,这样很容易引起梯度弥散的现象。所以我们一般情况下使用ReLU函数,但是我们有时候又不得不使用sigmoid函数。这个时候我们在送到下一层的时候我们应该先经过Normalizatio......
  • TensorFlow10.3 卷积神经网络-经典卷积网络(VGG,GoogLeNet)
    LeNet-5这个是5层的,3个c+s,然后有两个全连接层。AlexNet这里有8(5+3)层。就是之前的技术没有现在的好,所以它用了两块GTX580,然后让你它的模型分成两块,然后在两块显卡中跑。很好的把显存给分开来了。VGG之前都是用\(11*11\)的窗口,然后它用了\(3*3\)的窗口,这个\(3*3\)的窗......