回归预测 | MATLAB实现SSA-LSTM麻雀算法优化长短期记忆神经网络多输入单输出

目录

  • ​​回归预测 | MATLAB实现SSA-LSTM麻雀算法优化长短期记忆神经网络多输入单输出​​
  • ​​预测效果​​
  • ​​基本介绍​​
  • ​​程序设计​​
  • ​​参考资料​​

预测效果

回归预测 | MATLAB实现SSA-LSTM麻雀算法优化长短期记忆神经网络多输入单输出_长短期记忆神经网络


回归预测 | MATLAB实现SSA-LSTM麻雀算法优化长短期记忆神经网络多输入单输出_长短期记忆神经网络_02


回归预测 | MATLAB实现SSA-LSTM麻雀算法优化长短期记忆神经网络多输入单输出_麻雀算法优化_03


回归预测 | MATLAB实现SSA-LSTM麻雀算法优化长短期记忆神经网络多输入单输出_多输入单输出_04

基本介绍

麻雀搜索算法(Sparrow Search Algorithm, SSA)是于2020年提出的。SSA 主要是受麻雀的觅食行为和反捕食行为的启发而提出的。该算法比较新颖,具有寻优能力强,收敛速度快的优点。建立麻雀搜索算法的数学模型,主要规则如下所述:
(1)发现者通常拥有较高的能源储备并且在整个种群中负责搜索到具有丰富食物的区域,为所有的加入者提供觅食的区域和方向。在模型建立中能量储备的高低取决于麻雀个体所对应的适应度值(Fitness Value)的好坏。
(2)一旦麻雀发现了捕食者,个体开始发出鸣叫作为报警信号。当报警值大于安全值时,发现者会将加入者带到其它安全区域进行觅食。
(3)发现者和加入者的身份是动态变化的。只要能够寻找到更好的食物来源,每只麻雀都可以成为发现者,但是发现者和加入者所占整个种群数量的比重是不变的。也就是说,有一只麻雀变成发现者必然有另一只麻雀变成加入者。
(4)加入者的能量越低,它们在整个种群中所处的觅食位置就越差。一些饥肠辘辘的加入者更有可能飞往其它地方觅食,以获得更多的能量。
(5)在觅食过程中,加入者总是能够搜索到提供最好食物的发现者,然后从最好的食物中获取食物或者在该发现者周围觅食。与此同时,一些加入者为了增加自己的捕食率可能会不断地监控发现者进而去争夺食物资源。
(6)当意识到危险时,群体边缘的麻雀会迅速向安全区域移动,以获得更好的位置,位于种群中间的麻雀则会随机走动,以靠近其它麻雀。
长短期记忆网络——通常被称为 LSTM,是一种特殊的 RNN,能够学习长期依赖性。由 Hochreiter 和 Schmidhuber(1997)提出的,并且在接下来的工作中被许多人改进和推广。LSTM 在各种各样的问题上表现非常出色,现在被广泛使用。LSTM 被明确设计用来避免长期依赖性问题。长时间记住信息实际上是 LSTM 的默认行为,而不是需要努力学习的东西!
所有递归神经网络都具有神经网络的链式重复模块。在标准的 RNN 中,这个重复模块具有非常简单的结构

程序设计

  • 完整程序和数据下载方式1(资源处直接下载):​​MATLAB实现SSA-LSTM麻雀算法优化长短期记忆神经网络多输入单输出​​
  • 完整程序和数据下载方式2(订阅《智能学习》专栏,同时获取《智能学习》专栏收录程序6份,数据订阅后私信我获取):​​MATLAB实现SSA-LSTM麻雀算法优化长短期记忆神经网络多输入单输出​​
clc;clear;close all;format compact
%%
data =xlsread('data.xlsx','sheet1','A2:H104');
x=data(:,1:7);
y=data(:,8);
method=@mapminmax;%归一化
% method=@mapstd;%标准化
[xs,mappingx]=method(x');x=xs';
[ys,mappingy]=method(y');y=ys';

%划分数据
n=size(x,1);
m=round(n*0.7);%前70%训练 后30%测试
XTrain=x(1:m,:)';
XTest=x(m+1:end,:)';
YTrain=y(1:m,:)';
YTest=y(m+1:end,:)';
%% 采用ssa优化
[x ,fit_gen,process]=ssaforlstm(XTrain,YTrain,XTest,YTest);%分别对隐含层节点 训练次数与学习率寻优
%% 参数设置
pop=5; % 种群数
M=20; % 最大迭代次数
dim=4;%一共有4个参数需要优化
lb=[1 1 1 0.001];%分别对两个lstm隐含层节点 训练次数与学习率寻优
ub=[100 100 50 0.01];%这个分别代表4个参数的上下界,比如第一个参数的范围就是1-100