cnn-lstm网络处理时序(卷积的应用)

本文回顾了ShaojieBai、J.ZicoKolter和VladlenKoltun撰写的论文:AnEmpiricalEvaluationofGenericConvolutionalandRecurrentNetworksforSequenceModeling。在TCN之前,我们经常将LSTM和GRU等RNN关联到新的序列建模任务中。然而,论文表明TCN(时间卷积网络)可以有效地处理序列建模任务,甚至优于其他模型。作者还证明了TCN比LST

大家好,又见面了,我是你们的朋友全栈君。

本文回顾了 Shaojie Bai、J. Zico Kolter 和 Vladlen Koltun 撰写的论文:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling。

在 TCN 之前,我们经常将 LSTM 和 GRU 等 RNN 关联到新的序列建模任务中。 然而,论文表明 TCN(时间卷积网络)可以有效地处理序列建模任务,甚至优于其他模型。 作者还证明了 TCN 比 LSTM 保持更多的扩展记忆。

我们通过以下主题讨论 TCN 的架构:

  1. 序列建模
  2. 因果卷积 Causal Convolutions
  3. 空洞卷积 Dilated Convolutions
  4. 残差连接 Residual Connections
  5. 优点和缺点
  6. 性能比较

序列建模

虽然这篇论文不是第一个使用术语 TCN 的论文,但它的强调了可以是使用卷积来处理序列数据的一系列架构。

所以,让我们定义序列建模任务。

给定一个输入序列:

cnn-lstm网络处理时序(卷积的应用)

,我们希望每次预测相应的输出:

cnn-lstm网络处理时序(卷积的应用)

所以,论文中的一个序列建模网络是一个函数 f,它将一个 T+1 个元素的向量映射到另一个 T+1 个元素的向量:

cnn-lstm网络处理时序(卷积的应用)

有一个约束(因果约束):当预测时间 t <= T 的输出时,我们只能使用来自相同时间点和更早时间点的输入,例如:

cnn-lstm网络处理时序(卷积的应用)

我们不能使用比 t 更晚的时间点的输入:

cnn-lstm网络处理时序(卷积的应用)

上述序列建模的目标是找到一个网络模型 f 来最小化标签输出和预测之间的损失:

cnn-lstm网络处理时序(卷积的应用)

这种设置比一般的seq2seq模型(例如可以使用整个序列来执行预测的机器翻译)受到更多限制。

因此,TCN 是因果关系(没有从未来到过去的信息泄漏)并且可以将任何序列映射到相同长度的输出序列。

此外,它可以在残差连接的帮助下使用非常深的网络,并且可以在空洞卷积的帮助下查看很远的过去进行预测。

我们将一一讨论上述特征(casual、dilated、residual)。

因果卷积

TCN 使用 1D FCN(一维全卷积网络)架构。

cnn-lstm网络处理时序(卷积的应用)

每个隐藏层的长度与输入层的长度相同,并使用零填充以确保后续层具有相同的长度。

对于时间 t 的输出,因果卷积(具有因果约束的卷积)使用时间 t 和前一层更早时间的输入(参见上图底部的蓝线连接)。

因果卷积并不是一个新想法,但该论文结合了非常深的网络以允许长期有效的历史。

空洞卷积

译者注:Dilated Convolutions的中文翻译有很多个,例如 扩张卷积、膨胀卷积等。这里我是用我最常用称谓:空洞卷积。

如果我们回顾连续的时间步长,我们只能回顾网络中的层数。

为了克服这个问题,他们采用了空洞卷积,从距离 t 的每 d 步处获取输入:

cnn-lstm网络处理时序(卷积的应用)

其中 k 是内核大小。

因果卷积和空洞卷积的思想起源于 WaveNet 论文,其架构与 TCN 非常相似。

cnn-lstm网络处理时序(卷积的应用)

空洞卷积让网络回溯到 (k-1)d 个时间步长,使每层数的感受野呈指数级增长。

TCN 论文的作者说可以随着网络的深度呈指数增长:

cnn-lstm网络处理时序(卷积的应用)

其中 i 表示网络的第 i 级(我从 0 开始)。

为方便起见,下图是上面两张的同一张图。 第一个隐藏层上的空洞卷积每两步应用一次,其中 i=1。

cnn-lstm网络处理时序(卷积的应用)

空洞卷积通过特定排列确保某些过滤器在有效历史中命中每个输入,并允许使用深度网络获得较长的有效历史。

可以沿着从顶部到底部的蓝线查看它们到达底部的所有输入,这意味着输出的预测(以时间 T 为例)使用有效历史数据中的所有输入。

残差链接

残差块(最初来自ResNet)允许每一层学习对身份映射的修改,并在非常深的网络中工作得很好。

cnn-lstm网络处理时序(卷积的应用)

残差连接对于保证长期有效的使用历史非常重要。例如,如果一个预测依赖于2的12次方历史长度,我们需要12层来处理这么大的接受域。

下图为基线TCN的残差块。

cnn-lstm网络处理时序(卷积的应用)

每个残差块有两层空洞因果卷积、权重的归一化、ReLU 激活和 dropout。

如果输入通道的数量与扩张因果卷积的输出通道数量(第二个扩张卷积的过滤器数量)不同,则有一个可选的 1×1 卷积。

它是为了确保残差连接(卷积输出和输入的元素相加)有效。

cnn-lstm网络处理时序(卷积的应用)

优点和缺点

总结上面的架构

TCN = 1D FCN + 空洞因果卷积,这是一个非常简单且易于理解的结构,而不是其他序列模型(如 LSTM)。

除了简单之外,与 RNN(LSTM 和 GRU)相比,使用 TCN 还具有以下优势:

与 RNN 不同,TCN 可以利用并行性,因为它们可以并行执行卷积。

我们可以通过层数、扩张因子和过滤器大小来调整感受野大小,这使我们能够针对不同的领域要求控制模型的内存大小。

与 RNN 不同,梯度不是在时间方向上,而是在网络深度方向上,这会产生很大的不同,尤其是当输入长度很长时。因此,TCN 中的梯度更稳定(也归功于残差连接)。

内存需求低于 LSTM 和 GRU,因为每一层只有一个过滤器。换句话说,过滤器的总数取决于层数(而不是输入长度)。

但是TCN也有两个明显的缺点:

在评估期间,TCN 接收原始序列直至所需的历史长度,而 RNN 可以丢弃固定长度的块(输入的一部分),因为它消耗它们并仅保留隐藏状态形式的摘要。 因此,在评估过程中,TCN 可能需要比 RNN 更多的数据存储。

领域的迁移可能不适用于 TCN,尤其是当从一个需要短历史的域转移到另一个需要长历史的域时。

性能比较

作者使用各种序列建模任务比较了 LSTM、GRU、RNN 和 TCN 的性能:

cnn-lstm网络处理时序(卷积的应用)

如您所见,TCN 在大多数任务中的表现都优于其他模型。

一个有趣的实验是Copy memory任务(表格第四行),它检查模型在不同时间长度内保留信息的能力。

cnn-lstm网络处理时序(卷积的应用)

TCN 在复制记忆任务上实现了 100% 的准确率,而 LSTM 和 GRU 随着时间长度 T 的增长退化为随机猜测。 考虑到具有TCN直接使用卷积结构,这可能是显而易见的。

总体而言,TCN 的性能优于 LSTM。 作者的对TCN的信心体现在论文的以下引用中:

递归网络在序列建模中的优势可能在很大程度上是能够保留历史的信息。 直到最近,在引入空洞卷积和残差连接等架构元素之前,卷积架构确实更弱。 但我们的结果表明,有了这些元素简单的卷积架构在不同的时间序列建模任务中比 LSTM 等递归架构更有效。 由于 TCN 具有相当的清晰度和简单性,我们得出结论,卷积网络应该被视为一个自然的起点和一个强大的时间序列建模工具包。

本文的源代码:https://github.com/locuslab/TCN

本文作者:Naoki

An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling论文:arxiv:1803.01271

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129256.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 深入理解设计模式之建造者模式

    深入理解设计模式之建造者模式老大突然拉住我,喜滋滋地告诉我:“公司很满意我们做的模型,又签订了一个合同,把奔驰、宝马的车辆模型都交给我们公司制作了,不过这次额外增加了一个新需求:汽车的启动、停止、喇叭声音、引擎声音都由客户自己控制,想什么顺序就什么顺序”那我们开始设计,来看一下类图:类图比较简单,在CarModel中我们定义了一个setSequence方法,车辆模型的这几个动作要如何排布,是在这个ArrayList中定义的。然后run()方法根据sequence定义的顺序完成指定的顺序动作。我们来看模型抽象类代码:

    2022年10月30日
  • go语言环境安装教程_go语言菜鸟教程

    go语言环境安装教程_go语言菜鸟教程windows下go语言环境搭建安装1、go安装包下载:https://studygolang.com/dl选择自己要下载的版本进行下载。下载好了之后安装一直next就行了(安装路径尽量不要出现中文。)2、安装好了之后打开cmd,输入goversion查一下是否安装成功。出现go版本号,说明安装成功。3、下载liteidehttps://sourceforge.net/pro…

    2022年10月12日
  • 留意是啥意思_初听不知曲中意八句

    留意是啥意思_初听不知曲中意八句弹到当时留意处,谁是相如

  • Ubuntu16.04编译安装BusyBox「建议收藏」

    Ubuntu16.04编译安装BusyBox「建议收藏」简述Ubuntu16.04LTS编译安装BusyBox,出现问题及解决方案。下载源码下载BusyBox源码选择一个扩展名为.tar.bz2文件下载本例中使用busybox-1.27.2.tar.bz2解压在源码所在位置右键在此打开终端,输入解压命令,文件名与自己所下载版本文件对应tar-jxvfbusybox-1.27.2.tar.bz2解压后当前文件夹生成一个文件夹,进入到解压后

  • ContentPlaceHolderID属性

    ContentPlaceHolderID属性内容页ContentPlaceHolder里使用CSS我想在内容页里放个文本框和按钮,然后让他们并排,我加了CSS不行,网上查了说内容页不能使用CSS好像,那应该怎么做才能让他们并排呢?内容页可以

  • ESET NOD32

    ESET NOD32ESET NOD32是由ESET发明设计的杀毒防毒软件。ESET,于1992年建立,是一个全球性的安全防范软件公司,主要为企业和个人消费者提供服务。其得奖之旗舰产品 NOD32 能针对已知及未知的病毒,间谍软件(SPYWARE)及其它对用户系统带来威胁的程式进行实时的保护。  For Home   ESETNOD32Antivirus11https://download….

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号