目录
之前的推文中,我们推出了Attention模型全家桶,也就是注意力机制全家桶,这个全家桶会逐步推出所有带注意力机制的深度学习模型。目前,已经有CNN/TCN/LSTM/BiGRU/BiTCN-Attention五种多变量回归模型打包到全家桶中,方便大家选择最适合自己数据的模型。
CNN/TCN/LSTM/BiGRU-Attention到底哪个模型效果最好?注意力机制全家桶来啦!一次购买永久更新!
BiTCN-Attention一键实现回归预测+8张图+特征可视化图!注意力全家桶再更新!
同时,也给了大家将多种预测模型绘制到一张图中的代码:
今天,我们再次对注意力全家桶进行更新,将最新推出的BiTCN-BiLSTM-Attention回归预测模型加入到全家桶中。同时,我们在模型中加入了特征图可视化,不仅能够帮助我们理解模型内部特征、方便诊断和调试模型,更能吸引审稿人的注意力、增加文章的工作量!之前已经购买过全家桶的小伙伴可直接免费下载!
您只需做的工作:替换Excel数据,一键运行main文件!无需更改代码,非常适合新手小白!
原理简介
一、BiTCN层
传统的TCN只对输入序列进行正向卷积计算,只提取正向数据特征,忽略了反向中的隐含信息。在输入序列的每一层卷积之后,扩张因子呈指数增长。经过几次卷积,BiTCN获得了更大的接受域。BiTCN接受域的增加带来了梯度消失和收敛缓慢等问题。残差块的引入可以避免这些问题,同时实现对序列的高效特征提取。剩余块如图3所示。
因此,采用双向时间卷积结构BiTCN来捕捉前后方向的隐藏特征,以更好地获得序列的长时间依赖性!BiTCN的网络结构如下图所示!非常新颖!
二、BiLSTM层
LSTM网络主要由记忆单元和门控单元(即输入门、遗忘门和输出门)组成。记忆单元用于存储并更新状态信息,输入门决定输入序列中哪些信息可以被传入单元,遗忘门选择性遗忘上一单元隐藏状态的部分信息,输出门筛选被传入下一单元的信息。
BiLSTM以由两层异向的LSTM网络为基础,考虑了前后不同时刻时序数据之间的相互影响,克服了LSTM中数据单向流动的局限性。
三、Attention机制
自注意力机制在传统注意力机制的基础上进行了进一步改良,通过并行计算,同时计算一句话中所有元素之间的相似性得分,从而获取全局的信息而非单一上下文的信息,这使得自注意力机制能够更全面地理解整个序列的语义,并更好地捕捉元素之间的复杂关系,其相关公式如下所示:
式中:Wq、Wk、Wv为线性变化矩阵;Q、K、V分别为查询向量(query)、键向量(key)和值向量(value);dk为查询向量和键向量的维度。最后,将注意力权重和值向量进行加权求和,得到自注意力机制的输出。
为了更清晰地展现网络结构与原理,此处将程序中运行出的网络结构图放出,方便大家直观感受此模型结构。
数据介绍
本期采用的数据是经典的回归预测数据集,是为了方便大家替换自己的数据集,各个变量采用特征1、特征2…表示,无实际含义,最后一列即为输出。
更换自己的数据时,只需最后一列放想要预测的列,其余列放特征即可(特特征数量不限),无需更改代码,非常方便!
结果展示
设置最大训练次数为200次,初始学习率为0.01,L2正则化系数为0.0005,卷积核个数为64,卷积核大小为5,空间丢失因子为0.1,残差块个数为1,利用上文的回归预测数据集进行预测,划分80%为训练集,20%为测试集,得到的结果如下所示:
测试集预测效果图:
训练集预测效果图:
特征可视化图:
误差直方图:
预测误差图:
四张线性拟合图:
网络结构图:
预测结果显示:
可以看到,BiTCN-BiLSTM-Attention在该回归数据集上的预测精度还是不错的,R2达到了0.96以上,MAPE指标仅为0.03,MAE、RMSE也仅为个位数,如果再做几个对比模型,那么文章不就蹭蹭发了吗~
以上结果展示中所有图片,作者都已精心整理过代码,都可以一键运行main直接出图!不信的话可以看下面文件夹截图,非常清晰明了!
适用平台:要求Matlab2023a版本及以上,没有的文件夹里已免费提供安装包!
全家桶代码目录
目前,全家桶在之前5个模型以及1个画图程序的基础上又增加了一个,共7个,之后还会推出更多更新颖的模型!
正如上文提到的,如果你想快速发paper,或者想要尝试到底哪个模型才最适合你的数据、精度最高,或者需要很多对比模型衬托你的模型的优越性,那么全家桶包含的这么多模型可以说完全符合你的需求!
购买后如果以后推出其他注意力机制模型,直接免费下载,无需再次付费。
但如果你之后再买,一旦推出新模型,价格必然会上涨。因此,需要创新的小伙伴请尽早下手。
代码获取
1.已将本文算法加入注意力全家桶中,点击下方小卡片,再后台回复关键字:
注意力全家桶
2.如果实在只想要BiTCN-BiLSTM-Attention单品的同学,点击下方小卡片,再后台回复关键字,不区分大小写:
BBATT