MATLAB实现IWOA-BiLSTM和BiLSTM时间序列预测(改进的鲸鱼算法优化双向长短期记忆神经网络)
算法的基本步骤如下:
步骤1:实验数据分为训练集和测试集.
步骤2:把BiLSTM模型中学习率、训练次数、正则化率、神经网络隐藏层单元数目作为优化对象,初始化IWOA算法.
步骤3:计算每个个体的适应度值.以各鲸鱼对应参数构建BiLSTM神经网络模型,通过训练数据进行训练,测试数据进行预测,将预测结果的平均绝对百分比误差作为各鲸鱼的适应度值.
步骤4:根据鲸鱼的适应度值确定全局最优位置和局部最优位置.
步骤5:根据WOA算法式更新A和C.
步骤6:根据WOA算法的对鲸鱼的位置进行更新;
步骤7:判断终止条件.若满足终止条件,则输出最优解;否则,返回步骤3.
步骤8:用最优参数构建BiLSTM神经网络模型并进行预测.
%% 搭建BiLSTM模型
inputSize = 1;
numHiddenUnits = 100;
layers = [ ...sequenceInputLayer(inputSize)bilstmLayer(numHiddenUnits,'OutputMode','last')bilstmLayer(numHiddenUnits-30)bilstmLayer(numHiddenUnits-60)fullyConnectedLayer(1)regressionLayer]options = trainingOptions('adam',... 'InitialLearnRate',1e-3,...% 学习率'MiniBatchSize', 8, ...'MaxEpochs',50, ...'Plots','training-progress');[net1,info1] = trainNetwork(TF,output_train',layers,options);
[1] Mirjalili S,Lewis A. The whale optimization algorithm[J]. Advancesin Engineering Software,2016,95( 5) : 51-67.
[2] https://blog.csdn.net/article/details/126086399?spm=1001.2014.3001.5501
下一篇:7个常用的原生JS数组方法