【MATLAB第21期】基于matlab的MWOA-LSTM-Attention注意力机制结合的回归预测模型

简介: 【MATLAB第21期】基于matlab的MWOA-LSTM-Attention注意力机制结合的回归预测模型

【MATLAB第21期】基于matlab的MWOA-LSTM-Attention注意力机制结合的回归预测模型


运行环境:


matlab2020a,cpu


数据:


本文采用600行6输入1输出数据样本,其中前500(90%训练,10%验证),后100进行测试。

为了简化数据 ,对下图数据缩小100倍值 。

思路:

LSTM_Attention的代码网上基本有售卖,本文在基础上进行优化,即通过嵌入Circle映射和逐维小孔成像反向学习的鲸鱼优化算法(MWOA)以及普通鲸鱼优化算法WOA优化LSTM_Attention模型的3个超参数,分别为隐含层神经元数量、最小批处理数量,最大训练次数,目标函数选用测试集的1-R2作为评价指标,3个超参数上下限为:

lb = [20 5 5 ];%三个参数的下限    隐含层神经元数量  最小批样本处理数量  最大训练次数 
ub = [90 20 40 ];%三个参数的上限

参数设置:

%LSTM结构参数
LearnRateDropFactor = 0.9;%学习率下降因子
LearnRate = 0.01;%初始学习率
LearnRatestep=5;%每5轮更新学习率
executionEnvironment = "auto";%运行环境为自动
validatasize=10%;%训练过程中验证集比例为10%
validationFrequency = 10;%每10次训练验证1次
gradientDecayFactor = 0.9;%梯度衰减因子为0.9
squaredGradientDecayFactor = 0.999;%平方梯度衰减因子为0.999
gradientThreshold = 6;%梯度阈值为6
loss = mse;%训练过程中损失函数为mse函数 
%WOA参数
SearchAgents_no = 5; % 种群数量  5
Max_iteration = 5; % 迭代次数   5

注意力机制部分代码:

%% 输入部分
% Lstm_Y   LSTM输出序列(CBT)
% Train_Y  训练样本标签
% params   训练权重参数
% state    状态变量
%% 需要学习的参数
weight = params.cnn.weight;
recurrentWeights = params.lstm.recurrentWeights;
bias = params.lstm.bias;
%% 不同批次间传递的参数(这里假设每一轮epoch中,不同Batch间的state是传递的,但不学习;
%   不同epoch之间的state重置)
h0 = state.lstm.h0;
c0 = state.lstm.c0;
[Lstm_Y,h0,c0] = lstm(Train_X,h0,c0,weight,recurrentWeights,bias);
%% Attention
Attentionweight  = params.attention.weight; % 计算得分权重
Ht = Lstm_Y(:,:,end);       % 参考向量
%% Attention输出
weight1 = params.attenout.weight1;
bias1 = params.attenout.bias1;
weight2 = params.attenout.weight2;
bias2 = params.attenout.bias2;
Hthat = fullyconnect(Vt,weight1,bias1) + fullyconnect(Ht,weight2,bias2);
%% 全连接层前置层(降维)
LastWeight = params.fullyconnect.weight1;
LastBias = params.fullyconnect.bias1 ;
FullyconnectInput = fullyconnect(Hthat,LastWeight,LastBias);
FullyconnectInput = relu(FullyconnectInput);
%% Fullyconnect输入参数
fullyweight = params.fullyconnect.weight2;
fullybias = params.fullyconnect.bias2;
output_Y = fullyconnect(FullyconnectInput,fullyweight,fullybias);
output_Y = squeeze(output_Y);
output_Y = relu(output_Y);

预测结果:

优化前超参数设置为【50,10,10】即神经元50个,训练次数及最小批为10.

WOA优化后为【64 6 11】

MWOA优化后为【30 9 18】

分析:

案例数据精度仍存在一些不足,除了超参数范围对结果的影响,进化算法选取及参数设置以外,数据的选择,目标函数的选择以及运行环境(CPU/GPU)对结果影响也较大。 研究发现,通过试验发现GPU的精度要明显高一些,其次,选择1-R2作为目标函数比选择RMSE均方根误差作为目标函数的精度高一些。

代码获取:

代码有偿。有意向后台(非评论区)私聊回复“注意力机制”,即可获得下载链接。创作不易,感谢理解。



相关文章
|
15天前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
|
10天前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
|
25天前
|
机器学习/深度学习 算法 数据安全/隐私保护
数据链中常见电磁干扰matlab仿真,对比噪声调频,线性调频,噪声,扫频,灵巧五种干扰模型
本项目展示了用于分析和模拟电磁干扰对数据链系统影响的算法。通过Matlab 2022a运行,提供无水印效果图预览。完整代码包含详细中文注释及操作视频。理论部分涵盖五种常见干扰模型:噪声调频、线性调频、噪声、扫频和灵巧干扰,详细介绍其原理并进行对比分析。灵巧干扰采用智能技术如认知无线电和机器学习,自适应调整干扰策略以优化效果。
|
23天前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-GRU-SAM网络在时间序列预测中的应用。算法通过卷积层、GRU层、自注意力机制层提取特征,结合粒子群优化提升预测准确性。完整程序运行效果无水印,提供Matlab2022a版本代码,含详细中文注释和操作视频。适用于金融市场、气象预报等领域,有效处理非线性数据,提高预测稳定性和效率。
|
1月前
|
算法
基于Adaboost模型的数据预测和分类matlab仿真
AdaBoost(Adaptive Boosting)是一种由Yoav Freund和Robert Schapire于1995年提出的集成学习方法,旨在通过迭代训练多个弱分类器并赋予分类效果好的弱分类器更高权重,最终构建一个强分类器。该方法通过逐步调整样本权重,使算法更关注前一轮中被误分类的样本,从而逐步优化模型。示例代码在MATLAB 2022A版本中运行,展示了随着弱分类器数量增加,分类错误率的变化及测试数据的分类结果。
138 13
|
1月前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于BP神经网络的苦瓜生长含水量预测模型matlab仿真
本项目展示了基于BP神经网络的苦瓜生长含水量预测模型,通过温度(T)、风速(v)、模型厚度(h)等输入特征,预测苦瓜的含水量。采用Matlab2022a开发,核心代码附带中文注释及操作视频。模型利用BP神经网络的非线性映射能力,对试验数据进行训练,实现对未知样本含水量变化规律的预测,为干燥过程的理论研究提供支持。
|
2月前
|
算法
基于HASM模型的高精度建模matlab仿真
本课题使用HASM进行高精度建模,介绍HASM模型及其简化实现方法。HASM模型基于层次化与自适应统计思想,通过多层结构捕捉不同尺度特征,自适应调整参数,适用于大规模、高维度数据的分析与预测。MATLAB2022A版本运行测试,展示运行结果。
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
3月前
|
机器学习/深度学习 算法 数据处理
基于最小二乘法的太阳黑子活动模型参数辨识和预测matlab仿真
本项目基于最小二乘法,利用Matlab对太阳黑子活动进行模型参数辨识和预测。通过分析过去288年的观测数据,研究其11年周期规律,实现对太阳黑子活动周期性的准确建模与未来趋势预测。适用于MATLAB2022a版本。

热门文章

最新文章