时序模型(一)—— TCN 时间卷积网络

 

一、 概述

TCN是18年提出的时序卷积神经网络模型。

时序问题建模,通常采用RNN循环神经网络及其相关变种,比如LSTM、GRU等,这里将卷积神经网络通过膨胀卷积达到抓取长时依赖信息的效果,TCN在一些任务上甚至能超过RNN相关模型。    

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

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

二、原理

2.1 因果卷积

先来介绍下因果卷积(Causal Convolution)

preview

对于上一时刻的值,只依赖下一层时刻及其之前的值。因果卷积不能看到未来的数据,是单向的结构,有了前面的因才有后面的果。但是这种模型只能捕捉固定前面几个时刻的值,如果想要捕获更长距离的信息,则需要增加网络层数,于是便有了膨胀卷积的思想。

2.2 膨胀卷积

膨胀卷积(Dilated Convlution), 有的地方也称扩张卷积。

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

2.3 残差链接(Residual Connections)

残差链接使得网络可以跨层传递信息,避免了层数过多信息丢失的问题。文章构建爱你了一个残差块来代替一层的卷积。如上图,一个残差块包含两层卷积和非线性映射,每层中还加入了WeightNorm和Dropout来正则化网络。

 

三、 实验

四、 优缺点

优点 :

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

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

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

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

缺点:

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

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

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

 

五、 参考链接:

TCN-时间卷积网络 https://blog.csdn.net/qq_27586341/article/details/90751794

TCN 时间卷积网络 https://zhuanlan.zhihu.com/p/51246745?utm_source=wechat_session&utm_medium=social&s_r=0  

  • 8
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在MATLAB中实现TCN时间卷积神经网络模型,可以参考以下步骤: 1. 准备数据集:数据集应包含10个输入特征和3个输出变量。可以将数据集保存为MATLAB支持的格式,如MAT文件。 2. 下载TCN模型代码:可以从引用\[2\]提供的链接https://locuslab/TCN下载TCN模型的代码。 3. 配置MATLAB环境:确保你的MATLAB版本是2021b及以上。 4. 编写主程序文件:创建一个名为MainTCNM.m的主程序文件,用于加载数据集、构建TCN模型、训练模型和进行预测。你可以参考引用\[1\]中提供的模型描述来实现主程序文件。 5. 实现TCN模型:根据引用\[3\]中的描述,TCN模型的关键特点是使用扩张卷积(dilated convolutions)。你可以在主程序文件中使用MATLAB的卷积函数来实现这一特性。 6. 训练模型:使用数据集训练TCN模型。你可以使用MATLAB的深度学习工具箱中的函数来定义模型结构、设置训练参数和执行训练过程。 7. 进行预测:使用训练好的TCN模型对新的输入数据进行预测。你可以使用MATLAB的预测函数来实现这一步骤。 请注意,以上步骤仅提供了一个大致的指导,具体实现细节可能因你的数据集和需求而有所不同。建议你参考引用\[1\]和\[3\]中提供的更详细的信息,并根据你的具体情况进行调整和修改。 #### 引用[.reference_title] - *1* [回归预测 | MATLAB实现TCN(时间卷积神经网络)多输入多输出预测](https://blog.csdn.net/kjm13182345320/article/details/129106500)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [回归预测 | MATLAB实现TCN时间卷积神经网络多输入单输出回归预测](https://blog.csdn.net/kjm13182345320/article/details/126195343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微知girl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值