多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测

多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测

目录

    • [多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测](#多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测)

预测效果




基本介绍

1.MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测(完整源码和数据)

2.麻雀算法优化参数为隐含层节点数,最大训练次数,初始学习率参数。

3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。

麻雀搜索算法(Sparrow Search Algorithm, SSA)是于2020年提出的。SSA 主要是受麻雀的觅食行为和反捕食行为的启发而提出的。该算法比较新颖,具有寻优能力强,收敛速度快的优点。建立麻雀搜索算法的数学模型,主要规则如下所述:

(1)发现者通常拥有较高的能源储备并且在整个种群中负责搜索到具有丰富食物的区域,为所有的加入者提供觅食的区域和方向。在模型建立中能量储备的高低取决于麻雀个体所对应的适应度值(Fitness Value)的好坏。

(2)一旦麻雀发现了捕食者,个体开始发出鸣叫作为报警信号。当报警值大于安全值时,发现者会将加入者带到其它安全区域进行觅食。

(3)发现者和加入者的身份是动态变化的。只要能够寻找到更好的食物来源,每只麻雀都可以成为发现者,但是发现者和加入者所占整个种群数量的比重是不变的。也就是说,有一只麻雀变成发现者必然有另一只麻雀变成加入者。

(4)加入者的能量越低,它们在整个种群中所处的觅食位置就越差。一些饥肠辘辘的加入者更有可能飞往其它地方觅食,以获得更多的能量。

(5)在觅食过程中,加入者总是能够搜索到提供最好食物的发现者,然后从最好的食物中获取食物或者在该发现者周围觅食。与此同时,一些加入者为了增加自己的捕食率可能会不断地监控发现者进而去争夺食物资源。

(6)当意识到危险时,群体边缘的麻雀会迅速向安全区域移动,以获得更好的位置,位于种群中间的麻雀则会随机走动,以靠近其它麻雀。

Bi-LSTM 神经网络结构模型分为 2 个独立的LSTM,输入序列分别以正序和逆序输入至 2 个LSTM 神经网络进行特征提取,将 2个输出向量(即提取后的特征向量)进行拼接后形成的词向量作为该词的最终特征表达。Bi-LSTM 的模型设计理念是使 t 时刻所获得特征数据同时拥有过去和将来之间的信息,实验证明,这种神经网络结构模型对文本特征提取效率和性能要优于单个 LSTM 结构模型。

程序设计

clike 复制代码
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
clc;clear;close all;format compact
%%

%% 采用ssa优化
[x ,fit_gen,process]=ssaforbilstm(XTrain,YTrain,XTest,YTest);%分别对隐含层节点 训练次数与学习率寻优
%% 参数设置
pop=5; % 种群数
M=20; % 最大迭代次数
dim=4;%一共有4个参数需要优化
lb=[1   1   1  0.001];%分别对两个隐含层节点 训练次数与学习率寻优
ub=[100 100 50  0.01];%这个分别代表4个参数的上下界,比如第一个参数的范围就是1-100
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
layers = [ ...
    sequenceInputLayer(numFeatures)
    bilstmLayer(numHiddenUnits)
    fullyConnectedLayer(numResponses)
    regressionLayer];
options = trainingOptions('adam', ...
    'MaxEpochs',250, ...
    'GradientThreshold',1, ...
    'InitialLearnRate',0.005, ...
    'LearnRateSchedule','piecewise', ...
    'LearnRateDropPeriod',125, ...
    'LearnRateDropFactor',0.2, ...
    'ExecutionEnvironment','cpu', ...
    'Verbose',0, ...
    'Plots','training-progress');
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------   
net = trainNetwork(XTrain,YTrain,layers,options);
dataTestStandardized = (dataTest - mu) / sig;
XTest = dataTestStandardized(1:end-1);
net = predictAndUpdateState(net,XTrain);
[net,YPred] = predictAndUpdateState(net,YTrain(end));
numTimeStepsTest = numel(XTest);

参考资料

[1] https://blog.csdn.net/article/details/126072792?spm=1001.2014.3001.5502

[2] https://blog.csdn.net/article/details/126044265?spm=1001.2014.3001.5502

[3] https://blog.csdn.net/article/details/126043107?spm=1001.2014.3001.5502

相关推荐
机器学习之心3 天前
论文辅导 | 基于贝叶斯优化-卷积神经网络-双向长短期记忆神经网络的锂电池健康状态评估
人工智能·神经网络·cnn·卷积神经网络·贝叶斯优化·双向长短期记忆神经网络·锂电池健康状态评估
机器学习之心4 天前
SCI一区 | Matlab实现DBO-TCN-LSTM-Attention多变量时间序列预测
attention·多变量时间序列预测·tcn-lstm·dbo-tcn-lstm
机器学习之心6 天前
独家原创 | Matlab实现CNN-Transformer多变量时间序列预测
matlab·cnn·transformer·多变量时间序列预测·cnn-transformer
机器学习之心22 天前
高创新 | CEEMDAN-VMD-BiLSTM-Attention双重分解+双向长短期记忆神经网络+注意力机制多元时间序列预测
注意力机制·双向长短期记忆神经网络·bilstm-atten·ceemdan-vmd·双重分解·多元时间序列预测
机器学习之心1 个月前
SCI一区 | Matlab实现PSO-TCN-LSTM-Attention粒子群算法优化时间卷积长短期记忆神经网络融合注意力机制多变量时间序列预测
attention·多变量时间序列预测·时间卷积长短期记忆神经网络·粒子群算法优化·融合注意力机制·pso-tcn-lstm
机器学习之心2 个月前
BiLSTM-KDE的双向长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab)
双向长短期记忆神经网络·核密度估计·多变量回归区间预测·bilstm-kde
机器学习之心2 个月前
SCI一区级 | Matlab实现BES-CNN-GRU-Mutilhead-Attention多变量时间序列预测
attention·多变量时间序列预测·mutilhead·bes-cnn-gru
机器学习之心2 个月前
EI级 | Matlab实现VMD-TCN-LSTM-MATT变分模态分解卷积长短期记忆神经网络多头注意力多变量时间序列预测
多变量时间序列预测·vmd-tcn-lstm·变分模态分解·tcn-lstm-matt·多头注意力
机器学习之心3 个月前
SCI一区 | Matlab实现POA-TCN-BiGRU-Attention鹈鹕算法优化时间卷积双向门控循环单元注意力机制多变量时间序列预测
时间卷积双向门控循环单元·鹈鹕算法优化·注意力机制·多变量时间序列预测·poa-tcn-bigru
机器学习之心3 个月前
锂电池寿命预测 | Matlab基于BiLSTM双向长短期记忆神经网络的锂电池寿命预测
双向长短期记忆神经网络·bilstm·锂电池寿命预测