BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab)

马肤
这是懒羊羊

文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第1张

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第2张

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第3张

前段时间的文章中KAU介绍了循环神经网络 (Recurrent Neural Network,RNN)的改进算法——长短期记忆神经网络 (Long Short-Term Memory,LSTM),LSTM诞生于1997年[1],其有效克服了RNN的梯度消失问题,在许多场合得到了应用。

在此基础上,Graves等[2]综合后向特征计算,提出了双向长短期神经网络 (Bi-directional Long Short-Term Memory, BiLSTM),使模型可以同时考虑上下文信息,对预测任务具有更强的建模能力。

接下来KAU就将具体介绍BiLSTM的原理、优化及其代码实现。并将BiLSTM与优化的BiLSTM应用于时序预测/回归拟合/分类三种问题中

00 目录

1 BiLSTM模型

2 优化算法及其改进概述

3 XX-BiLSTM预测模型

4 实验结果

5 源码获取

01 BiLSTM模型

关于LSTM部分的介绍这里就不再赘述,感兴趣的朋友可以查看KAU的往期文章。

回归算法|长短期记忆网络LSTM及其优化实现

由于单向的LSTM往往只能考虑到前文序列数据对现有数据的影响,对后文的学习却无法反馈到前文进行判断,即无法做到联系上下文进行综合学习。因此LSTM的变体——双向LSTM被提出,其在单向LSTM的基础上,增加一层后向传播LSTM层,BiLSTM 具有能够利用历史数据以及未来信息进行预测的能力,其结构如下:

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第4张

图源文献[3]

BiLSTM神经网络结构分为2条LSTM网络,其思想是将同一个输入序列分别接入前向和后向的两个LSTM中,然后将两个网络的隐藏层连在一起,共同接入输出层。

在该模型中,输入信号经过前向LSTM层输出ht→和后向LSTM层输出ht←,共同决定传入隐藏层的值,得到BiLSTM的输出yt,其更新公式为:

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第5张

02 优化算法及其改进概述

同样,BiLSTM也存在一定可进行优化选择的超参数,若采取经验法或试错法,则有不能获取最优取值组合、时间成本高等问题。优化算法通过对超参数组合的随机生成与更新,能够更快速地获取优解,不失为一种应用方法。

前面的文章中KAU已经介绍过很多种优化算法及其改进策略,本文中我也会应用这些算法优化BiLSTM,下面简单罗列一些优化算法方便一些朋友查看相应原理。

03 XX-BiLSTM预测模型

对于BiLSTM而言,神经元数量、迭代次数、学习率、dropoutrate等都可作为待优化的参数。

而Greff等[4]的实验表明,对LSTM神经网络模型影响最大的超参数是学习率,其次是最大迭代次数和隐藏层神经元数量,因此本文主要选取神经元数量、迭代次数、学习率作为待优化参数。

神经元数量:

神经元的数量直接影响模型的学习能力和网络的复杂性,过多的节点会增加网络的训练时间,而节点太少会损害网络性能。

迭代次数:

表示模型迭代整个训练数据集的次数。

学习率:

选择太小的学习率可能会延长训练周期,而太大的学习率可能会阻碍收敛。

对于时序数据来说,时间步长(滑动窗口大小)也可作为优化参数中的一个,以GWO为例,GWO优化BiLSTM的流程如下:

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第6张

04 实验结果

本文针对时序预测、分类和回归拟合问题进行实验,优化参数为隐层1神经元数,隐层2神经元数,迭代次数,学习率。

为量化预测质量,针对分类问题,本文采用混淆矩阵、准确率、精确率、召回率、F1-score进行评价。针对时序预测和回归拟合问题,本文采用均方根差、平均绝对百分误差、平均绝对值误差和可决系数进行评价。

分类:(以COA为例,数据集为多输入单输出)

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第7张

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第8张

时序预测:(以GWO为例)

时序预测较之回归拟合,多了时间步长作为优化参数

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第9张

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第10张

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第11张

回归拟合:(以NOA为例,数据集为多输入单输出)

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第12张

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第13张

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第14张

05 源码获取

代码注释详细,数据都用的excel,只需要替换数据集就行了,非常方便,针对分类、时序预测、回归拟合,采用MATLAB编码,本文源码提供3个版本:

1.免费版

主要是BiLSTM模型,并且同时包含分类、时序预测、回归拟合3种应用,对于需要进行一些简单预测或者是想学习BiLSTM算法的同学足够了。

获取方式——公众号(KAU的云实验台)后台回复:BIL

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第15张

2.付费版1

主要是各类优化算法(如:NOA、WOA、DBO、GWO、COA)优化BILSTM模型,并有LSTM、BiLSTM对比。针对分类、时序预测、回归拟合3种应用都各有代码。程序的注释详细,易于替换,KAU之前介绍过的智能优化算法都可以进行替换。

获取方式——

时序预测类问题

公众号(KAU的云实验台)后台回复:BILT

程序目录(以GWO为例)

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第16张

分类问题

公众号(KAU的云实验台)后台回复:BILC

程序目录(以DBO为例)

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第17张

回归拟合问题

公众号(KAU的云实验台)后台回复:BILR

程序目录(以WOA为例)

BiLSTM原理、优化及代码实现(时序预测/分类/回归拟合,Matlab),在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,网络,程序,进行,第18张

3.付费版2

在付费版1的基础上,此版本引入了KAU前面提出的一系列原创改进算法进行对比,如MSIDBO、AAMCWOA、MSGWO、MSCOA。这部分程序包含了函数测试、预测模型对比两个部分,可以用来发这类方向的文章,当然你也可以在KAU算法的基础上再作创新改进,比如预测模型上可以再对预测误差做一个预测模型进行级联,或者对KAU的原创改进再引入新的修改策略等等。

(若前面已经购买了KAU的原创改进,想买付费版2的,可以联系我给你减免)

获取方式——

时序预测类问题

公众号(KAU的云实验台)后台回复:BILT

分类问题

公众号(KAU的云实验台)后台回复:BILC

回归拟合问题

公众号(KAU的云实验台)后台回复:BILR

参考文献

[1] HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J], Neural Computation, 1997, 9(8):1735-1780.

[2] GRAVES A, SCHMIDHUBER J. Framewise phoneme classification with bidirectional LSTM and other neural network architectures[J]. Neural Networks, 2005, 18(5/6): 602-610.

[3] 魏佳恒,郭惠勇.基于贝叶斯优化BiLSTM模型的输电塔损伤识别[J].振动与冲击,2023,42(1):238-248.

[4] GREFF K, SRIVASTAVA R K, KOUTNIK J, et al. LSTM: a search space odyssey[J]. IEEE Transactions on Neural Networks and Learning Systems, 2017, 28(10): 2222 -2232

另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行)。


文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复:表情:
评论列表 (暂无评论,0人围观)

还没有评论,来说两句吧...

目录[+]

取消
微信二维码
微信二维码
支付宝二维码