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

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • XSRF 防御「建议收藏」

    XSRF 防御「建议收藏」#XSRF防御#需求分析XSRF又名CSRF(opensnewwindow),跨站请求伪造,它是前端常见的一种攻击方式,我们先通过一张图来认识它的攻击手段。CSRF的防御手段有很多,比如验证请求的referer,但是referer也是可以伪造的,所以杜绝此类攻击的一种方式是服务器端要求每次请求都包含一个token,这个token不在前端生成,而是在我们每次访…

    2022年5月19日
  • 一级域名和二级域名的区别是什么?作用怎样?

    一级域名和二级域名的区别是什么?作用怎样?

    2021年9月20日
  • 主流流媒体服务器软件,十款免费的流媒体服务器软件介绍

    主流流媒体服务器软件,十款免费的流媒体服务器软件介绍互联网时代,服务器是网络的重要支撑,大家租用云服务器除了搭建网站服务器之外,还会用到搭建其他各种WEB应用服务器,而流媒体服务器的搭建就是其中一种,那么应该怎么进行流媒体服务器的搭建呢?你知道有那些免费的流媒体服务器软件吗?(你可能想知道:视频流媒体服务器的选择方式?)流媒体服务器是指提供以流方式在网络中传送音频、视频和多媒体文件的媒体形式服务的服务器。它的主要功能是流式协议(RTP/RTSP、M…

    2022年6月13日
  • 最佳路径分析_最佳路径选择

    最佳路径分析_最佳路径选择最佳路径分析(作者:吴东梅,撰写时间:2019年1月17日)学习了GIS技术,让我们对地理信息系统有了一定的了解,也让我们知道了我们平时常用的导航系统里面的导航最佳路径里面的一些奥妙。现在就让我们了解一下如何制出最佳路径的方法并应用在我们自己的项目中吧!1、 先在SuperMapiDesktop9D把你的地图打开,然后点击上方导航条上面的交通分析,里面有一个拓扑构网,鼠标移到拓扑构网上…

    2022年8月24日
  • 具有指令流水线结构的cpu_cpu流水线技术

    具有指令流水线结构的cpu_cpu流水线技术为什么小小一个CPU,有那么多周期(Cycle)?程序的性能,是由三个因素相乘来衡量的,“指令数×CPI×时钟周期”。和周期相关的只有一个时钟周期,即CPU主频的倒数。一个CPU的时钟周期可以认为是可以完成一条最简单的计算机指令的时间。那为何构造CPU时,有那么多周期?单指令周期处理器一条CPU指令的执行,由FDE三步组成。这个执行过程,至少需花费一个时钟周期。因为在取指令的时候,我们需要通过时钟周期的信号,来决定计数器的自增。很自然,我们希望能确保让这样一整条指令的执行,在一个时钟周期内完成

    2022年8月20日
  • gcc命令大全

    gcc命令大全一、gcc的基本用法使用gcc编译器时,必须给出一系列必要的调用参数和文件名称。不同参数的先后顺序对执行结果没有影响,只有在使用同类参数时的先后顺序才需要考虑。如果使用了多个-L的参数来定义库目录,gcc会根据多个-L参数的先后顺序来执行相应的库目录。因为很多gcc参数都由多个字母组成,所以gcc参数不支持单字母的组合,Linux中常被叫短参数(shortoptions),如-dr…

    2022年10月13日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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