美团网站界面设计,厦门做网站的,wordpress中文完全教程,网站开发及服务合同多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测 目录 多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.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 结构模型。 程序设计
完整程序和数据下载方式(资源处直接下载)MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
clc;clear;close all;format compact
%%%% 采用ssa优化
[x ,fit_gen,process]ssaforbilstm(XTrain,YTrain,XTest,YTest);%分别对隐含层节点 训练次数与学习率寻优
%% 参数设置
pop5; % 种群数
M20; % 最大迭代次数
dim4;%一共有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?spm1001.2014.3001.5502 [2] https://blog.csdn.net/article/details/126044265?spm1001.2014.3001.5502 [3] https://blog.csdn.net/article/details/126043107?spm1001.2014.3001.5502