深度学习 + 论文详解: TCN_时间卷积网络_原理与优势

article/2025/11/5 7:57:57

论文链接

  • TCN: https://arxiv.org/pdf/1803.01271.pdf

p.s. TCN stands for Temporal Convolutional Network. 它是除了 RNN architecture 之外的第二种可以分析时间性数据的架构

更多文章将在公众号:AI 算法辞典 首发!

前言

RNN 从最一开始发展以来,经过不断的演进与迭代,把原先难以实施 backpropagation 的难题用上了 LSTM 改良版的 RNN model 解决了,并且 LSTM 再经过简化后发展出来的 GRU 也能基本上保持一定良好的准确率,故在我们的知识中,甚至是一些机器学习的教科书中,已经反射性的把 RNN 列为解决序列问题的工具,但是就在最近的公开论文中提到,作为 CNN 家族的其中一个成员:TCN,在各项数据集中成功的击败了当下的王者 RNN 成为新的序列 data 分析方面的橋楮。

为了测试 TCN 的结果是否只有偏向性,论文中使用的测试数据涵盖了下面几种数据集类型:

  1. Polyphonic music model
  2. Words and character-level language model
  3. Synthetic stress tests

结果也证实了在上面各种类型领域的数据中,TCN 都得到了比 RNN 更为准确的结果。这里附上使用了 pytorch 作为框架的 python 代码写出来的 TCN 模型 [点击此处进入 GitHub] 。深入研究运算肌里后,发现到即使在理论上 LSTM 可以调整记忆门使得该被记得的东西永远留在单元里面,但在现实里反而 TCN 可以更实在的留住长远以前的记忆,并且整个框架设计上比 LSTM 更为简单和精确。这样的事实也不得不让我们重新思考 CNN 在序列数据集的角色定位。

追本朔源,其实在 1990 年代就已经有科学家们使用 CNN 作为序列资料的分析工具,在语音分析,语言分析等方向都有许多尝试,只是在还没有好的范式模型出现前,RNN 就已经拔得头畴成为了新的 Sequential Data Analysis 的宠儿。不过自从 LSTM 在 1997 年问世以来,研究者对其改进的结果总是无法有一个飞跃性的突破,到了 2017 年人们深入研究 RNN 的模型算法过程后,甚至给除了“If there were architectures much better than the LSTM, then they were not trivial to find.”和“None of the variants can improve upon the standard LSTM architecture significantly.”等结论,这也足以说明 RNN 在序列分析中遇到的瓶颈。

 

Temporal Convolutional Networks (TCN)

作为一个新的序列分析 model 它的特点主要有两个:

  1. 其卷积网络层层之间是有因果关系的,意味着不会有“漏接”的历史信息或是未来数据的情况发生,即便 LSTM 它有记忆门,也无法完完全全的记得所有的历史信息,更何况要是该信息无用了就会逐渐被遗忘。
  2. 这个 model 的架构可以伸缩自如的调整成任何长度,并可以根据输出端需要几个接口就 mapping 成对应的样子,这点和 RNN 的框架意思相同,非常的 flexible。

TCN. Sequence modeling

最大的亮点就是可以根据一个已知序列出现的先后顺序去评判未来的 t 时间点上,什么东西出现的可能性更合适,下面是给定的两个已知基本假设:

  • input sequence: x0, x1, x2, ..., xT
  • output sequence: y0, y1, y2, ..., yT

input sequence 即为历史资料,整个机制就是创造一个 formulism 能够根据历史资料去推断新的可能信息是什么:

  • Y0, Y1, Y2, ..., YT = f(x0, x1, x2, ..., xT)      ............ (1)

预测出来之后就需要对应的一个评判机制去评价预测结果的好坏,并基于这个机制去 train 整个模型,也就是 loss function,train 的方法就是 Gradient Descent 和 backpropagation:

  • L(y0, y1, y2, ..., yT, f(x0, x1, x2, ..., xT)) --> minimum ............ (2)

但是根据论文描述,这样的架构只能够看到“历史信息”,在某种程度上是不直接符合序列问题的核心原则的,序列资料的每一个元素都应该是可以被用来预测未来元素的其中一个要素之一。即便 LSTM 有 bidirectional 的机制可以让我们向前向后同时看,然后再做拼接,但它总体而言还是非“一统的整体”。

TCN. Causal Convolutions

为了建构出上面提到的 TCN 两个特点,其采用了对应机制分别是如下:

  1.  Causal Convolutions 思维可以用来应付“不漏接”的初衷,卷积层在 t 时间的 output 只与当层和前一个层的元素做卷积,这个方法与 1989 年的 time delay neural network 类似。
  2. 1D 的 fully-convolutional network (FCN) ,让每个输出层都可以保持和输入层一样多的长宽被继续传递,使用的手法是 zero padding,和之前的 CNN architecture 建构方法如出一辙。
  • 具体的 TCN = 1D FCN + causal convolutions ............ (3)

只是 TCN 也有一个缺点,如果要让 model 能把非常久远的元素内容也纳入其中考虑的话,那么神经网络的深度就必须也跟着很深才可以,好在借助现在的 GPU 并行运算处理的速度,可以轻松的完成如此“深邃”的计算框架。

TCN. Dilated Convolutions

一个正常的 CNN 都是可以被反向训练的 model ,但是如果考虑的历史信息多了,使得神经网络的深度大了,就需要一个新的解决办法:Dilated Convolutions 来解决反向训练的问题,下面是 TCN 结构的示意图:

Dilated Convolutions 运作在 s 元素上,并有一个 filter: {0, 1, 2, ..., k-1} 其内部的元素都是实数 R,公式描述如下:

 

 

 

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/lfU9JieW.shtml

相关文章

【python量化】用时间卷积神经网络(TCN)进行股价预测

写在前面 下面这篇文章首先主要简单介绍了目前较为先进的时间序列预测方法——时间卷积神经网络(TCN)的基本原理,然后基于TCN的开源代码,手把手教你如何通过时间卷积神经网络来进行股价预测,感兴趣的读者也可以基于此模…

时域卷积网络(Temporal Convolutional Network,TCN)

TCN基本结构 时域卷积网络(Temporal Convolutional Network,TCN)由Shaojie Bai et al.在2018年提出的,可以用于时序数据处理,详细内容请看论文。 1.因果卷积(Causal Convolution) 因果卷积如上…

时域卷积网络TCN详解:使用卷积进行序列建模和预测

CNN经过一些简单的调整就可以成为序列建模和预测的强大工具 尽管卷积神经网络(CNNs)通常与图像分类任务相关,但经过适当的修改,它已被证明是进行序列建模和预测的有价值的工具。在本文中,我们将详细探讨时域卷积网络(TCN)所包含的基本构建块&…

TCN代码详解-Torch (误导纠正)

1. 绪论 TCN网络由Shaojie Bai, J. Zico Kolter, Vladlen Koltun 三人于2018提出。对于序列预测而言,通常考虑循环神经网络结构,例如RNN、LSTM、GRU等。他们三个人的研究建议我们,对于某些序列预测(音频合…

时序CNN基础——TCN

自用~~笔记~~ 知识补充: 空洞卷积(膨胀卷积)——Dilated Conv 在标准卷积的基础上注入空洞,以此来增加感受野(reception field)。因此增加一个超参:膨胀率,指kernel的间隔数量。 因…

时间卷积网络(TCN):结构+pytorch代码

文章目录 TCNTCN结构1-D FCN的结构因果卷积(Causal Convolutions)膨胀因果卷积(Dilated Causal Convolutions)膨胀非因果卷积(Dilated Non-Causal Convolutions)残差块结构 pytorch代码讲解 TCN TCN(Temporal Convolutional Network)是由Shaojie Bai et al.提出的,p…

时间序列预测——时序卷积网络(TCN)

本文展示了使用时序卷积网络(TCN)进行时间序列预测的全过程,包含详细的注释。整个过程主要包括:数据导入、数据清洗、结构转化、建立TCN模型、训练模型(包括动态调整学习率和earlystopping的设置)、预测、结…

TCN-时间卷积网络

目录 一、引言 二、时序卷积神经网络 2.1 因果卷积(Causal Convolution) 2.2 膨胀卷积(Dilated Convolution) 2.3 残差链接(Residual Connections) 三、讨论和总结 1. TCN的优点 2. TCN的缺点 参考…

时间卷积网络TCN:CNN也可以处理时序数据并且比LSTM更好

本文回顾了 Shaojie Bai、J. Zico Kolter 和 Vladlen Koltun 撰写的论文:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling。 TCN源代码:https://github.com/locuslab/TCN 文章目录 1. 序列建模2. 因果…

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

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

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

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

htop与top的区别

总览: 什么是htop top和htop的区别 htop和top的比较 在centos7上安装htop 下载htop源码交叉编译安装 如何使用htop命令 更改htop刷新时间间隔 htop命令的快捷键 什么是htop? htop是一个交互式和实时监视进程查看器的linux编写的 它取代了Unix程序的top …

AIX的topas命令详解

说明 topas命令的说明可以直接执行man topas了解,或者直接看IBM给的 原始文档,路径为:https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/com.ibm.aix.cmds5/topas.htm 命令详解 先上在AIX服务器上执行topas命令后的图片 区域1&…

Linux中 top命令详解

一、基础概念 指令: top 作用: 查看服务器的进程占用资源 进入命令: top (动态显示) 推出命令: 按 q 键 二、输出结果 表头字段含义: PID: 进程id USER: 该进程对应的用户 PR: …

TOP用法详解

1、top命令:相当于Windows下的资源管理器,能够动态实时的显示系统中进程的资源占用情况。 2、在Linux终端上输入top命令出现的结果及其表示的含义如下图: 顺便说一下uptime命令 3、以上是默认的显示内容,可以通过快捷键来更改显示…

topas命令解析

topas命令解析 Posted on 2011-12-08 11:40 疯狂 阅读(984) 评论(1) 编辑 收藏 所属分类: unix <!----> 上一张我们测试机的topas的图(aix 5.3)&#xff1a;然后后面附上解释&#xff1a; topas命令用于监控各种系统资源&#xff0c;如CPU的使用情况&#xff0c;CPU…

Top-Down性能分析

2014年Ahmand Yasin在它的IEEE论文《A top-down method for performance analysis and counter architercture》中&#xff0c;革命性地给出了一个从CPU指令执行的顺畅程度来评估和发现瓶颈的方法&#xff0c;允许我们从黑盒的角度来看问题。 TMAM&#xff1a;自顶向下的微体系…

TOP-K

目录 TOP-K介绍 TOP-K实现 源码 TOP-K介绍 什么是TOP-K&#xff1f; 贴近生活来说&#xff0c;点外卖&#xff0c;打游戏。比如某团&#xff0c;你点一个美食&#xff0c;选你选在城市后&#xff0c;你选择按评分排序&#xff0c;那么它会将这个城市里所有美食店铺评分最高的…

AIX系统 topas查看系统各项指标性能

AIX系统 topas查看系统各项指标性能 topas命令默认2秒更新一次 一、topas命令以区域形式表现系统各项指标性能 如下图&#xff1a; 1、 CPU&#xff1a;反应CPU性能区域&#xff0c;如果有多个 CPU&#xff0c;按 c 键两次就可显示 CPU 列表。仅按 c 键一次会关闭此区域 Us…

top 与 htop

top 与 htop 区别 一、相同点 两者均是可以查看cpu使用情况的命令 二、不同点 top 在linux系统中&#xff0c;top 命令用来显示系统中正在运行的进程的实时状态&#xff0c;它显示了一些非常有用的信息&#xff0c;比如 CPU 利用情况、内存消耗情况&#xff0c;以及每个进…