位置: IT常识 - 正文

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

编辑:rootadmin
TCN(Temporal Convolutional Network,时间卷积网络) 1 前言

推荐整理分享TCN(Temporal Convolutional Network,时间卷积网络),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

        实验表明,RNN 在几乎所有的序列问题上都有良好表现,包括语音/文本识别、机器翻译、手写体识别、序列数据分析(预测)等。

        在实际应用中,RNN 在内部设计上存在一个严重的问题:由于网络一次只能处理一个时间步长,后一步必须等前一步处理完才能进行运算。这意味着 RNN 不能像 CNN 那样进行大规模并行处理,特别是在 RNN/LSTM 对文本进行双向处理时。这也意味着 RNN 极度地计算密集,因为在整个任务运行完成之前,必须保存所有的中间结果。

        CNN 在处理图像时,将图像看作一个二维的“块”(m*n 的矩阵)。迁移到时间序列上,就可以将序列看作一个一维对象(1*n 的向量)。通过多层网络结构,可以获得足够大的感受野。这种做法会让 CNN 非常深,但是得益于大规模并行处理的优势,无论网络多深,都可以进行并行处理,节省大量时间。这就是 TCN 的基本思想。

1.1 RNN的问题

LightRNN:高效利用内存和计算的循环神经网络_曼陀罗彼岸花的博客-CSDN博客

将RNN内存占用缩小90%:多伦多大学提出可逆循环神经网络:将RNN内存占用缩小90%:多伦多大学提出可逆循环神经网络 - 知乎

         循环神经网络(RNN)在处理序列数据方面取得了当前最佳的性能表现,但训练时需要大量内存,需要存储隐藏状态。

        最近,循环神经网络(RNN)已被用于处理多种自然语言处理(NLP)任务,例如语言建模、机器翻译、情绪分析和问答。有一种流行的 RNN 架构是长短期记忆网络(LSTM),其可以通过记忆单元(memory cell)和门函数(gating function)建模长期依赖性和解决梯度消失问题。因为这些元素,LSTM 循环神经网络在当前许多自然语言处理任务中都实现了最佳的表现,尽管它的方式几乎是从头开始学习。

        虽然 RNN 越来越受欢迎,但它也存在一个局限性:当应用于大词汇的文本语料库时,模型的体量将变得非常大。比如说,当使用 RNN 进行语言建模时,词首先需要通过输入嵌入矩阵(input-embedding matrix)从 one-hot 向量(其维度与词汇尺寸相同)映射到嵌入向量。然后为了预测下一词的概率,通过输出嵌入矩阵(output-embedding matrix)将顶部隐藏层投射成词汇表中所有词的概率分布。当该词汇库包含数千万个不同的词时(这在 Web 语料库中很常见),这两个嵌入矩阵就会包含数百亿个不同的元素,这会使得 RNN 模型变得过大,从而无法装进 GPU 设备的内存。以 ClueWeb 数据集为例,其词汇集包含超过 1000 万词。如果嵌入向量具有 1024 个维度并且每个维度由 32 位浮点表示,则输入嵌入矩阵的大小将为大约 40GB。进一步考虑输出嵌入矩阵和隐藏层之间的权重,RNN 模型将大于 80GB,这一数字远远超出了市面上最好的 GPU 的能力。

         即使 GPU 的内存可以扩容,用于训练这样体量模型的计算复杂度也将高到难以承受。在 RNN 语言模型中,最耗时的运算是计算词汇表中所有词的概率分布,这需要叠乘序列每个位置处的输出嵌入矩阵和隐藏状态。简单计算一下就可以知道,需要使用目前最好的单 GPU 设备计算数十年才能完成 ClueWeb 数据集语言模型的训练。此外,除了训练阶段的难题,即使我们最终训练出了这样的模型,我们也几乎不可能将其装进移动设备让它进入应用。

1.2 TCN背景

        到目前为止,深度学习背景下的序列建模主题主要与递归神经网络架构(如LSTM和GRU)有关。S.  Bai等人(*)认为,这种思维方式已经过时,在对序列数据进行建模时,应该将卷积网络作为主要候选者之一加以考虑。他们能够表明,在许多任务中,卷积网络可以取得比RNNs更好的性能,同时避免了递归模型的常见缺陷,如梯度爆炸/消失问题或缺乏内存保留。此外,使用卷积网络而不是递归网络可以提高性能,因为它允许并行计算输出。他们提出的架构称为时间卷积网络(TCN),将在下面的部分中进行解释。

          TCN是指时间卷积网络,一种新型的可以用来解决时间序列预测的算法。

          该算法于2016年由Lea等人首先提出,当时他们在做视频动作分割的研究,一般而言此常规过程包括两个步骤:首先,使用(通常)对时空信息进行编码的CNN来计算低级特征,其次,将这些低级特征输入到使用(通常是)捕获高级时域信息的分类器中)RNN。这种方法的主要缺点是需要两个单独的模型。

         TCN提供了一种统一的方法来分层捕获所有两个级别的信息。

         自从TCN提出后引起了巨大反响,有人认为:时间卷积网络(TCN)将取代RNN成为NLP或者时序预测领域的王者。

         DataScienceCentral 的编辑主任William Vorhies给出的原因如下:

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

         TCN可以采用一系列任意长度并将其输出为相同长度。在使用一维完全卷积网络体系结构的情况下,使用因果卷积。一个关键特征是,时间t的输出仅与t之前发生的元素卷积。

2 TCN特点

TCN 模型以 CNN 模型为基础,并做了如下改进:

适用序列模型:因果卷积(Causal Convolution)记忆历史:空洞卷积/膨胀卷积(Dilated Convolution),残差模块(Residual block)

下面将分别介绍 CNN 的扩展技术。

TCN的特点:

因果卷积网络膨胀卷积方式(扩张卷积、空洞卷积)Dilated Causal Convolution残差块激活函数规范化正则化Dropout2.1 因果卷积(Causal Convolution)

  

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

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

因果卷积有两个特点:

不考虑未来的信息。给定输入序列 ,预测 。但是在预测 时,只能使用已经观测到的序列 ,而不能使用  。追溯历史信息越久远,隐藏层越多。上图中,假设我们以第二层隐藏层作为输出,它的最后一个节点关联了输入的三个节点,即  ;假设以输出层作为输出,它的最后一个节点关联了输入的五个节点。2.2 空洞卷积/膨胀卷积(Dilated Convolution)

        单纯的因果卷积还是存在传统卷积神经网络的问题,即对时间的建模长度受限于卷积核大小的,如果要想抓去更长的依赖关系,就需要线性的堆叠很多的层。标准的 CNN 可以通过增加 pooling 层来获得更大的感受野,而经过 pooling 层后肯定存在信息损失的问题。

        空洞卷积是在标准的卷积里注入空洞,以此来增加感受野。空洞卷积多了一个超参数 dilation rate,指的是 kernel 的间隔数量(标准的 CNN 中 dilatation rate 等于 1)。空洞的好处是不做 pooling 损失信息的情况下,增加了感受野,让每个卷积输出都包含较大范围的信息。下图展示了标准 CNN (左)和 Dilated Convolution (右),右图中的 dilatation rate 等于 2 。 

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

空洞卷积的参数:

d:层数k:内核大小,filter size

         因为研究对象是时间序列,TCN 采用一维的卷积网络。上图是 TCN 架构中的因果卷积与空洞卷积,可以看到每一层  时刻的值只依赖于上一层  时刻的值,体现了因果卷积的特性;而每一层对上一层信息的提取,都是跳跃式的,且逐层 dilated rate 以 2 的指数增长,体现了空洞卷积的特性。由于采用了空洞卷积,因此每一层都要做 padding(通常情况下补 0),padding 的大小为  。 

2.3  残差模块(Residual block)

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

3 TCN时间卷积网络的预测

       给定input_length, kernel_size, dilation_base和覆盖整个历史所需的最小层数,基本的TCN网络看起来像这样:

        到目前为止,我们只讨论了‘输入序列’和‘输出序列’,而没有深入了解它们之间是如何相互关联的。在预测方面,我们希望预测未来时间序列的下一个条目。为了训练我们的TCN网络进行预测,训练集将由给定时间序列的等大小子序列对(输入序列、目标序列)组成。

        即 input series = target series

        目标序列将是相对于其各自的输入序列向右移动一定数量output_length的序列。这意味着长度input_length的目标序列包含其各自输入序列的最后(input_length - output_length)元素作为第一个元素,位于输入序列最后一个条目之后的output_length元素作为它的最后一个元素。在预测方面,这意味着该模型所能预测的最大预测视界等于output_length。使用滑动窗口的方法,许多重叠的输入和目标序列可以创建出一个时间序列。

 4 TCN 进行序列建模的几个优点和缺点

优点:

并行性(Parallelism)。与在 RNN 中对后续时间步的预测必须等待其前任完成的情况不同,卷积可以并行完成,因为每一层都使用相同的滤波器。因此,在训练和评估中,长输入序列可以在 TCN 中作为一个整体进行处理,而不是像在 RNN 中那样按顺序处理。灵活的感受野大小(Flexible receptive field size)。TCN 可以通过多种方式改变其感受野大小。例如,堆叠更多扩张(因果)卷积层、使用更大的膨胀因子或增加滤波器大小都是可行的选择(可能有不同的解释)。因此,TCN 可以更好地控制模型的内存大小,并且易于适应不同的领域。稳定的梯度(Stable gradients)。与循环架构不同,TCN 的反向传播路径与序列的时间方向不同。因此,TCN 避免了梯度爆炸/消失的问题,这是 RNN 的一个主要问题,并导致了 LSTM、GRU、HF-RNN(Martens & Sutskever,2011)等的发展。训练时内存要求低。特别是在输入序列较长的情况下,LSTM 和 GRU 很容易占用大量内存来存储它们的多个单元门的部分结果。而在 TCN 中,滤波器跨层共享,反向传播路径仅取决于网络深度。因此,在实践中,我们发现门控 RNN 可能比 TCN 使用更多的内存。可变长度输入。就像 RNN 以循环方式对可变长度的输入进行建模一样,TCN 也可以通过滑动 1D 卷积核来接收任意长度的输入。这意味着 TCN 可以作为 RNN 的替代品,用于任意长度的序列数据。

使用 TCN 也有两个明显的缺点:

评估期间的数据存储。在评估/测试中,RNN 只需保持隐藏状态并获取当前输入 xt 即可生成预测。换句话说,整个历史的“摘要”由一组固定长度的向量 ht 提供,而实际观察到的序列可以被丢弃。相比之下,TCN 需要接收到有效历史长度的原始序列,因此在评估期间可能需要更多内存。域迁移的潜在参数变化(Potential parameter change for a transfer of domain)。不同领域对模型预测所需的历史数量可能有不同的要求。因此,当将模型从只需要很少内存的域(即小 k 和 d)转移到需要更长内存的域(即大得多的 k 和 d)时,TCN 可能会因为没有足够大的感受野。

 论文《An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling》:https://arxiv.org/pdf/1803.01271.pdf

TCN 时间卷积网络:TCN 时间卷积网络 - 知乎

时域卷积网络TCN详解:使用卷积进行序列建模和预测:时域卷积网络TCN详解:使用卷积进行序列建模和预测_deephub的博客-CSDN博客_tcn时间卷积网络

时空卷积网络TCN:时空卷积网络TCN - USTC丶ZCC - 博客园

Darts实现TCN(时域卷积网络): https://blog.csdn.net/liuhaikang/article/details/119704701?spm=1001.2014.3001.5501

TCN-时间卷积网络:https://blog.csdn.net/qq_27586341/article/details/90751794?utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromMachineLearnPai2~default-4.base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromMachineLearnPai2~default-4.base

多变量时间序列、预训练模型和协变量:

多变量时间序列、预训练模型和协变量_liuhaikang的博客-CSDN博客_多变量时间序列模型

本文链接地址:https://www.jiuchutong.com/zhishi/293115.html 转载请保留说明!

上一篇:【YOLOv7训练】——预训练重使用(yolov1训练过程)

下一篇:JS如何随机生成一个整数(js如何随机生成字符串)

  • hp笔记本bios设置图解教程(hp笔记本bios设置)(hp笔记本bios设置无线网卡)

    hp笔记本bios设置图解教程(hp笔记本bios设置)(hp笔记本bios设置无线网卡)

  • 为什么微信扫码扫不了(为什么微信扫码付款扫不出来)

    为什么微信扫码扫不了(为什么微信扫码付款扫不出来)

  • 萤石云可以装在电视吗(萤石云可以下载监控吗)

    萤石云可以装在电视吗(萤石云可以下载监控吗)

  • 宽带出现光信号灯是红色是怎么回事(宽带出现光信号灯是红色,自己能修吗?)

    宽带出现光信号灯是红色是怎么回事(宽带出现光信号灯是红色,自己能修吗?)

  • 苹果手机代工厂有哪些(苹果手机代工厂L开头)

    苹果手机代工厂有哪些(苹果手机代工厂L开头)

  • 台式机开机显示器显示无信号怎么回事(台式机开机显示器黑屏但机箱运转)

    台式机开机显示器显示无信号怎么回事(台式机开机显示器黑屏但机箱运转)

  • 如何设置指纹开屏幕(如何设置指纹开手机)

    如何设置指纹开屏幕(如何设置指纹开手机)

  • pubg lite地区不可使用怎么办(pubglite地区不可用)

    pubg lite地区不可使用怎么办(pubglite地区不可用)

  • wifi电视能看手机上不去网怎么办(wifi电视能用手机不能用是怎么回事)

    wifi电视能看手机上不去网怎么办(wifi电视能用手机不能用是怎么回事)

  • 虚拟内存设置多少合适(虚拟内存设置多少好)

    虚拟内存设置多少合适(虚拟内存设置多少好)

  • 二极管哪边是正极(二极管哪边是正向电阻)

    二极管哪边是正极(二极管哪边是正向电阻)

  • 联发科mt6750相当于骁龙多少(联发科mt6750好不好)

    联发科mt6750相当于骁龙多少(联发科mt6750好不好)

  • 苹果imessage信息是什么意思(苹果发短信蓝色绿色怎么切换)

    苹果imessage信息是什么意思(苹果发短信蓝色绿色怎么切换)

  • gtx1050是独立显卡吗

    gtx1050是独立显卡吗

  • word合并两个表格(word合并两个表格快捷键)

    word合并两个表格(word合并两个表格快捷键)

  • 滴滴打车快车属于什么(滴滴快车是什么性质)

    滴滴打车快车属于什么(滴滴快车是什么性质)

  • 亲情付退款退哪了(亲情付退款后不能退回额度吗)

    亲情付退款退哪了(亲情付退款后不能退回额度吗)

  • 滴滴静默多久自动解封(滴滴出行静默了怎么办)

    滴滴静默多久自动解封(滴滴出行静默了怎么办)

  • ps变黑白快捷键(ps变黑白快捷键看黑白关系)

    ps变黑白快捷键(ps变黑白快捷键看黑白关系)

  • 小寻电话手表怎样拨号(小寻电话手表怎么连接wifi)

    小寻电话手表怎样拨号(小寻电话手表怎么连接wifi)

  • ios13暗黑模式在哪(ios13 暗黑模式)

    ios13暗黑模式在哪(ios13 暗黑模式)

  • 唯品会在哪里切换城市(唯品会切换地区在哪里设置)

    唯品会在哪里切换城市(唯品会切换地区在哪里设置)

  • 滴滴永久封号怎么解除(滴滴永久封号怎样才)

    滴滴永久封号怎么解除(滴滴永久封号怎样才)

  • 网易考拉怎么登录账号(网易考拉怎么登录不上)

    网易考拉怎么登录账号(网易考拉怎么登录不上)

  • 电脑qq聊天框变成一侧显示怎么切换(电脑qq聊天框变成一侧显示的软件版本)

    电脑qq聊天框变成一侧显示怎么切换(电脑qq聊天框变成一侧显示的软件版本)

  • vue 在for循环中设置ref并获取$refs(vue for循环遍历对象取值)

    vue 在for循环中设置ref并获取$refs(vue for循环遍历对象取值)

  • 税金及附加二级明细
  • 增值税结转和个体工商户的增值税缴纳分录如何做?
  • 增值税专票已经报税作废不了怎么办
  • 非居民企业税率表最新
  • 利润表没有资产减值损失这一栏,需要增加吗
  • 运费的进项税
  • 代扣代缴车船税手续费比例
  • 财产损失税务备案
  • 微信红包税前扣除
  • 国家动漫企业认定优惠政策
  • 股息红利是否交个人所得税
  • 利润减库存为什么不等于现金
  • 企业改制后职工有几项补偿
  • 别墅送停车位吗
  • 其他业务收入包括哪些内容
  • 企业购入存货分录
  • 资产处置损益是什么科目
  • 冲减以前年度营业外收入
  • 去实体店装win10专业版多少钱
  • PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
  • linux bt命令
  • php string函数
  • 企业存货成本包括利润吗
  • 付款凭证怎么填写电脑
  • 长期借款科目的期末余额
  • 遇到的问题及解决方法
  • 收汇金额和出口金额差额大怎么办
  • 享受所得税优惠情况说明
  • 工程建设质保金比例
  • 当月没有生产情况正常吗
  • 毕业设计基于Linux系统的NFS服务器搭建
  • laravel后端
  • php类的特性实例是什么
  • 个体工商户的酒店增值税率是多少
  • 研发支出资本化支出属于什么科目
  • 补提企业所得税财务报表应该如何调整
  • 长期待摊费用科目怎么使用
  • 增值税普通发票税率
  • 员工出差的费用计入什么科目
  • 什么是进项税转出成本
  • 安全生产责任险是强制险吗
  • 建筑公司劳务发票
  • 分公司非独立核算怎么做账
  • Bootstrap table 控制表格高度固定(行高固定)并且不受数据量影响
  • 公司缴纳社保如何做账
  • 现金流量表年报期末现金余额
  • 公司注销前欠客户钱
  • 营业税改增值税时间
  • 视同销售包括哪些行为?
  • 发行股票的账务处理
  • 增值税专用发票电子版
  • 固定资产如何计提折旧
  • 以前期间留抵税额是什么意思
  • 研发过程4个主要阶段
  • 增值税留抵情况下要交流转税吗
  • 合同资产科目设置
  • 交易性金融资产属于流动资产
  • 售楼部大楼
  • 上年未计提所得税,本年怎么做分录
  • 农产品计算抵扣税率 最新
  • 实际发放工资的会计处理
  • 购买方账务处理
  • 建账的大体流程是什么
  • win7系统重启后多了一个安全启动用户
  • smsvchost.exe是什么文件 电脑中Svchost.exe病毒解决办法
  • windows7网络和internet设置
  • Windows RT 8.1 Update 3九月发布 届时将加入改进版锁屏
  • win8 boot manager
  • win7电脑网络慢怎么提升
  • linux系统查看系统信息
  • js中创建函数的方法
  • jquery实现图片显示
  • cocos2d用什么语言开发游戏
  • opencv人脸识别模型训练
  • android studio快捷键补全
  • angularjs1.5
  • 对xmlHttp对象的理解
  • javascript面向对象 第三方类库
  • jquery easyui datagrid实现增加,修改,删除方法总结
  • 深圳电子税务局怎么查以前申报表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设