目录

一、引言

二、时序卷积神经网络

2.1 因果卷积(Causal Convolution)

2.2 膨胀卷积(Dilated Convolution)

2.3 残差链接(Residual Connections)

三、讨论和总结

1. TCN的优点

2. TCN的缺点


参考论文:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling

Github:https://github.com/LOCUSLAB/tcn

参考链接:

序列建模之时间卷积网络TCN - 杨镒铭的文章 - 知乎

TCN时间卷积网络 - 剪水作花飞的文章 - 知乎

时间卷积网络(TCN)在 NLP 多领域发光,RNN 或将没落

一、引言

时序问题的建模大家一般习惯性的采用循环神经网络(RNN)来建模,这是因为RNN天生的循环自回归的结构是对时间序列的很好的表示。传统的卷积神经网络一般认为不太适合时序问题的建模,这主要由于其卷积核大小的限制,不能很好的抓取长时的依赖信息。 但是最近也有很多的工作显示,特定的卷积神经网络结构也可以达到很好的效果,比如Goolgle提出的用来做语音合成的wavenet,Facebook提出的用来做翻译的卷积神经网络。这就带来一个问题,用卷积来做神经网络到底是只适用于特定的领域还是一种普适的模型? 本文就带着这个问题,将一种特殊的卷积神经网络——时序卷积网络(Temporal convolutional network, TCN)与多种RNN结构相对比,发现在多种任务上TCN都能达到甚至超过RNN模型。

二、时序卷积神经网络

2.1 因果卷积(Causal Convolution)

因果卷积可以用上图直观表示。 即对于上一层t时刻的值,只依赖于下一层t时刻及其之前的值。和传统的卷积神经网络的不同之处在于,因果卷积不能看到未来的数据,它是单向的结构,不是双向的。也就是说只有有了前面的因才有后面的果,是一种严格的时间约束模型,因此被成为因果卷积。

2.2 膨胀卷积(Dilated Convolution)

单纯的因果卷积还是存在传统卷积神经网络的问题,即对时间的建模长度受限于卷积核大小的,如果要想抓去更长的依赖关系,就需要线性的堆叠很多的层。为了解决这个问题,研究人员提出了膨胀卷积。如下图所示。

和传统卷积不同的是,膨胀卷积允许卷积时的输入存在间隔采样,采样率受图中的d控制。 最下面一层的d=1,表示输入时每个点都采样,中间层d=2,表示输入时每2个点采样一个作为输入。一般来讲,越高的层级使用的d的大小越大。所以,膨胀卷积使得有效窗口的大小随着层数呈指数型增长。这样卷积网络用比较少的层,就可以获得很大的感受野。

2.3 残差链接(Residual Connections)

残差链接被证明是训练深层网络的有效方法,它使得网络可以以跨层的方式传递信息。本文构建了一个残差块来代替一层的卷积。如上图所示,一个残差块包含两层的卷积和非线性映射,在每层中还加入了WeightNorm和Dropout来正则化网络。

三、讨论和总结

总体来讲,TCN模型上的创新并不是很大,因果卷积和扩展卷积也并不是本论文提出来,本文主要是将TCN的结构梳理了一下,相比于wavenet中的结构,去掉了门机制,加入了残差结构,并在很多的序列问题上进行了实验。实验效果如下:

在多个任务上,都比标准的LSTM、GRU等效果好。

1. TCN的优点

(1)并行性。当给定一个句子时,TCN可以将句子并行的处理,而不需要像RNN那样顺序的处理。

(2)灵活的感受野。TCN的感受野的大小受层数、卷积核大小、扩张系数等决定。可以根据不同的任务不同的特性灵活定制。

(3)稳定的梯度。RNN经常存在梯度消失和梯度爆炸的问题,这主要是由不同时间段上共用参数导致的,和传统卷积神经网络一样,TCN不太存在梯度消失和爆炸问题。

(4)内存更低。RNN在使用时需要将每步的信息都保存下来,这会占据大量的内存,TCN在一层里面卷积核是共享的,内存使用更低。

2. TCN的缺点

(1)TCN 在迁移学习方面可能没有那么强的适应能力。这是因为在不同的领域,模型预测所需要的历史信息量可能是不同的。因此,在将一个模型从一个对记忆信息需求量少的问题迁移到一个需要更长记忆的问题上时,TCN 可能会表现得很差,因为其感受野不够大。

(2)论文中描述的TCN还是一种单向的结构,在语音识别和语音合成等任务上,纯单向的结构还是相当有用的。但是在文本中大多使用双向的结构,当然将TCN也很容易扩展成双向的结构,不使用因果卷积,使用传统的卷积结构即可。

(3)TCN毕竟是卷积神经网络的变种,虽然使用扩展卷积可以扩大感受野,但是仍然受到限制,相比于Transformer那种可以任意长度的相关信息都可以抓取到的特性还是差了点。TCN在文本中的应用还有待检验。

TCN-时间卷积网络相关推荐

  1. TCN时间卷积网络介绍

    绪论 TCN, Temporal Convolutional Network,时间卷积网络,是一种能够处理时间序列数据的网络结构,论文还评为 2018年10大论文. 1. 模型 输入: x0,x1,. ...

  2. TCN(Temporal Convolutional Network,时间卷积网络)

    1 前言 实验表明,RNN 在几乎所有的序列问题上都有良好表现,包括语音/文本识别.机器翻译.手写体识别.序列数据分析(预测)等. 在实际应用中,RNN 在内部设计上存在一个严重的问题:由于网络一次只 ...

  3. 时间卷积网络(TCN)在 NLP 多领域发光,RNN 或将没落

    也就是从 2014.15 年起,我们基于深度神经网络的应用就已经在文本和语音识别领域达到 95% 的准确率,可以用来开发新一代的聊天机器人.个人助理和即时翻译系统等. 卷积神经网络(Convoluti ...

  4. 【CV】膨胀卷积详解以及时间卷积网络TCN论文笔记和源码实现

    这篇博文分为两部分.第一部分详细讲解了TCN模型(Temporal Convolutional Network)中涉及的1D卷积,因果卷积,膨胀卷积中设计的计算,非常值得一看,有醍醐灌顶的作用.第二部 ...

  5. Keras之TCN:基于keras框架利用时间卷积网络TCN算法对上海最高气温实现回归预测(把时间序列数据集转化为有监督学习数据集)案例

    Keras之TCN:基于keras框架利用时间卷积网络TCN算法对上海最高气温实现回归预测(把时间序列数据集转化为有监督学习数据集)案例 目录 利用时间卷积网络TCN算法对上海最高气温实现回归预测(把 ...

  6. 从一维卷积、因果卷积(Causal CNN)、扩展卷积(Dilation CNN) 到 时间卷积网络 (TCN)

    来源: AINLPer微信公众号(每日干货分享!!) 编辑: ShuYini 校稿: ShuYini 时间: 2022-09-30 引言 卷积神经网络 (CNN) 尽管通常与图像分类任务相关,但经过改 ...

  7. 【Python项目实战】基于时间卷积网络(Temporal Convolution Network ,TCN)的发动机剩余寿命预测

    摘要航空发动机结构复杂,状态变量多且相互之间存在着严重非线性特征,传统的基于物理失效模型的方法难以精确地预测发动机的剩余寿命(RUL).针对此问题,采用时间卷积网络(Temporal Convolut ...

  8. 时间卷积网络TCN:时间序列处理的新模型

    这篇文章回顾了基于TCN的解决方案的最新创新.我们首先介绍了一个运动检测的案例研究,并简要回顾了TCN架构及其相对于传统方法的优势,如卷积神经网络(CNN)和递归神经网络(RNN).然后,我们介绍了一 ...

  9. 机器学习进阶之 时域/时间卷积网络 TCN 概念+由来+原理+代码实现

    TCN 从"阿巴阿巴"到"巴拉巴拉" TCN的概念(干嘛来的!能解决什么问题) TCN的父母(由来) TCN的原理介绍 上代码! 1.TCN(时域卷积网络.时间 ...

  10. 序列建模:时间卷积网络取代RNN(An Empirical Evaluation of Generic Convolutional and Recurrent)论文 pdf

    下载地址:https://u20150046.ctfile.com/fs/20150046-376633283 作者:Shaojie Bai, J. Zico Kolter, Vladlen Kolt ...

最新文章

  1. 3D Cube计算引擎加速运算
  2. vtk相机_C#开发PACS医学影像三维重建(一)使用VTK重建3D影像
  3. java能否访问PHP的服务器,PHP与Java进行通信的实现方法
  4. 关于计算机视觉(随谈)
  5. Java 洛谷 P1151 子数整数
  6. Linux-NFS——配置过程
  7. ios业务模块间互相跳转的解耦方案
  8. 工作377-处理url拼接里面的参数方法
  9. Android模拟器启动3个g,android,模拟器_android 模拟器用3.18的内核无法启动,一直黑屏。,android,模拟器,内核 - phpStudy...
  10. 说干就干的p2psearcher2013
  11. 大龄技术人的出路在哪里?6月20日长沙-中国技术开放日邀请你一起探讨
  12. [JS进阶] JS 之Blob 对象类型
  13. 学生电脑哪个牌子好_香米哪个牌子好
  14. wampserver修改默认根目录
  15. Python学习中的知识点小记录(廖雪峰)
  16. winows8.1或winows7 64bit 安装Itunes 64bit 11.1.3 无法打开一直停止工作的解决办法
  17. Java KeyTool 的使用
  18. 前端作品-漫威英雄响应式网站
  19. android 层叠view,RecyclerView进阶之层叠列表(上)
  20. java语言【#106. 求绝对值】(已通过)

热门文章

  1. EasyUI框架01——基础学习
  2. AJAX请求中payload和formdata两种方式
  3. 《Android MVPArms 使用butterknife遇到的坑》
  4. ca证书申请流程有哪些?
  5. 一文讲透蓝牙、WiFi、ZigBee无线通信模块
  6. JAVA回调函数简单讲解 CallBack
  7. Python3 色情图片识别
  8. 网易云音乐java爬虫_用Java实现网易云音乐爬虫
  9. VISSIM二次开发(Python)大作业总结1
  10. <2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvTools(七)—— 终篇总结