TCN回归预测基于matlab TCN时间卷积神经网络数据回归预测(多输入单输出)含Matlab源码 2317期

Posted 海神之光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCN回归预测基于matlab TCN时间卷积神经网络数据回归预测(多输入单输出)含Matlab源码 2317期相关的知识,希望对你有一定的参考价值。

⛄一、1 网络结构

1.1 时间卷积神经网络
1.1.1 扩张卷积

针对短时交通流预测等序列任务,需要对前一段时间内的交通流进行建模,不能仅仅依靠上一时刻交通流。而传统全连接神经网络在相邻层之间进行全连接,同一层的不同单元之间没有连接,这样的全连接结构只能学到数据之间的关联信息,而无法获取其序列信息。LSTM、GRU等RNN结构的网络通过内部存储单元将“记忆”固化,并向后传递,学习其序列信息。卷积神经网络可以通过卷积计算形成“记忆”,感受野的大小反映了使用多少数据生成“记忆”。在序列预测任务上使用卷积神经网络最大的问题是如何获取序列的长时记忆。

在卷积神经网络中,感受野指的是特征图(Feature Map)上的节点在输入图片上映射区域的大小。为了更好地获取长时记忆,关键就是扩大感受野。如图1所示,深色表示第3层某一节点可“看到”的区域。当卷积层数为l,每层卷积核大小为k时,感受野大小为(k-1)×l+1。卷积神经网络的感受野大小与卷积核大小、卷积层数呈线性关系。因此,增加卷积层以及增大卷积核均能扩大感受野。但更深的卷积层数以及更大的卷积核,使得网络参数量庞大,难以完成训练。将3个3×3卷积核进行堆叠,可以使其感受野与一个7×7卷积核的感受野大小相同,但3个3×3卷积核的参数量约为27C(C表示常数),一个7×7卷积核的参数量是49C。在卷积神经网络中,通常偏向于使用不太大的卷积核,较大的卷积核会使得网络参数急剧增加,运算复杂度增加。另外,增大步长(Stride)或者增加池化层(Pooling)也可以更好地获取长时记忆,但有可能造成严重的信息丢失。

图1 感受野(k=3,l=2)
另外一种方法就是使用扩张卷积,与一般卷积相比,扩张卷积除了卷积核大小外,增加了用来表示扩张大小的扩张系数(Dilation Rate)。

扩张卷积的计算公式定义为

式中,d表示扩张系数,k表示卷积核大小。当d为1时,扩张卷积退化为普通卷积,通过控制d的大小,从而在计算量不变的前提下拓宽感受野。

图2中清晰展示了大小为3×3,扩张系数为2的卷积核在进行卷积计算时,与深色区域进行卷积计算,而忽略白色“空洞”。此时感受野大小为7×7。

图2 扩张卷积
显然,扩张卷积会存在一定问题,当多次叠加相同扩张系数的卷积层时,可能使得部分时刻数据没有参与计算,忽略了这些时刻的信息,称为“Gridding”问题[13]。如图3所示,堆叠两层扩张系数为2的卷积层,将无法获取图中输入层白色部分信息。

显然,扩张卷积会存在一定问题,当多次叠加相同扩张系数的卷积层时,可能使得部分时刻数据没有参与计算,忽略了这些时刻的信息,称为“Gridding”问题[13]。如图3所示,堆叠两层扩张系数为2的卷积层,将无法获取图中输入层白色部分信息。

图4 因果卷积

与传统卷积神经网络相比,因果卷积只能“看”到过去的数据,而“看”不到未来的数据,因此很好地解决了信息泄露。一维因果卷积一般通过Padding实现,序列前端填充相应位数的零,而序列末端不进行填充。

1.2 网络结构
本文基于TCN的基本思想,将上述扩张卷积与因果卷积进行结合,首次将TCN应用于短时交通流预测领域[14]。图5为本文中所提出的网络结构,第1层为交通流序列输入层,接下来连续堆叠6层一维卷积层,每层卷积层均通过Padding实现因果卷积,卷积核大小为4,卷积核个数为32,每层扩张系数分别为1、2、4、8、16、32,之后接入全连接层,输出下一时刻的交通流。图5虚线框内表示最后一层隐藏层,隐藏层之后为最终输出节点。

图5 DCFCN结构
具体步骤如下。

步骤1 首先将交通流序列数据以滑动窗口的方式进行处理,窗口大小为21,每次向前滑动一个数据,即时间步为21,预测下一个时刻的交通流大小;

步骤2 将滑窗处理后的数据进行预处理并划分训练集与测试集;

步骤3 将训练集输入DCFCN模型进行训练;

步骤4 利用训练好的模型预测测试集交通流大小并计算误差。

图6中展示了多层扩张-因果卷积堆叠的示意图,DCFCN扩张系数分别为1、2、4。扩张系数呈指数增长,使得感受野大小也呈指数增长,即使在少数卷积层的情况下,也能获得非常大的感受野,同时还保证了模型的计算效率。
卷积神经网络在卷积级中并行地计算多个卷积并生成一组线性激励的响应,因此可以使用GPU进行加速。每个线性激活响应都会经过一个非线性激活函数,如线性整流激活函数(ReLU)。本文中在ReLU激活函数之前进行层正则化(Layer Normalization),将层输出值限制在0到1的区间。

⛄二、部分源代码

%% 清空环境变量

⛄三、运行结果

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]袁华,陈泽濠.基于时间卷积神经网络的短时交通流预测算法[J].华南理工大学学报(自然科学版). 2020,48(11)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

以上是关于TCN回归预测基于matlab TCN时间卷积神经网络数据回归预测(多输入单输出)含Matlab源码 2317期的主要内容,如果未能解决你的问题,请参考以下文章

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

TCN时间卷积网络——解决LSTM的并发问题

一维与二维时间卷积网络深解(Temporal Convolutional Network,TCN)

CNN回归预测基于matlab卷积神经网络CNN数据回归预测含Matlab源码 2003期

CNN回归预测基于matlab卷积神经网络CNN数据回归预测含Matlab源码 2003期

CNN回归预测基于matlab卷积神经网络CNN数据回归预测含Matlab源码 2384期