【MATLAB第1期】LSTM/GRU網(wǎng)絡(luò)回歸/分類預(yù)測改進(jìn)與優(yōu)化合集(含錄屏操作,持續(xù)更新)
文章目錄
一、智能進(jìn)化算法-LSTM(優(yōu)化超參數(shù))
1.金槍魚算法TSO-LSTM——案例1
2.孔雀優(yōu)化算法(POA)-LSTM——案例1
3.獵人優(yōu)化算法(HPO)-LSTM——案例1
4.人工大猩猩部隊(duì)優(yōu)化算法(GTO)-LSTM——案例1
5.象鼻蟲算法(WOA)-LSTM——案例2(負(fù)荷預(yù)測并與PSO-LSTM/LSTM對比)
6.草原犬鼠算法(PDO)-LSTM——案例2(負(fù)荷預(yù)測并與PSO-LSTM/LSTM對比)
7.人工兔算法(ARO)-LSTM——案例2(負(fù)荷預(yù)測并與PSO-LSTM/LSTM對比)
8.火鷹算法(FHO)-LSTM——案例2(負(fù)荷預(yù)測并與PSO-LSTM/LSTM對比)
二、改進(jìn)的智能進(jìn)化算法-LSTM(優(yōu)化超參數(shù))
1. 智能算法改進(jìn):改進(jìn)蝠鲼覓食優(yōu)化算法(dFDB-MRFO)-LSTM

一、智能進(jìn)化算法-LSTM(優(yōu)化超參數(shù))
概述:
1.原理:通過進(jìn)化算法尋找LSTM網(wǎng)絡(luò)最優(yōu)超參數(shù),智能進(jìn)化算法原理省略不講。
2.本文測試數(shù)據(jù)為12輸入單輸出,解決回歸問題。
3.評價(jià)指標(biāo):測試集實(shí)際值與預(yù)測值對比,目標(biāo)函數(shù)為rmse,另外附MAE、MAPE、R2計(jì)算值。
4.常見優(yōu)化LSTM三個(gè)參數(shù),即隱含層神經(jīng)元數(shù),學(xué)習(xí)率,訓(xùn)練次數(shù);
5.本代碼進(jìn)化算法為測試參數(shù),為了提高運(yùn)算速度,迭代次數(shù)為3,種群數(shù)量為5,可自行修改。

1.金槍魚算法TSO-LSTM

%TSO_LSTM
clear all;
close all;
clc;
Particles_no = 10; % 種群數(shù)量 50
Function_name=‘LSTM_MIN’;
Max_iter = 3; % 迭代次數(shù) 10
Low = [10 0.001 10 ];%三個(gè)參數(shù)的下限
Up = [200 0.02 200 ];%三個(gè)參數(shù)的上限
Dim = 3;%待優(yōu)化參數(shù)數(shù)量
fobj = @(x)LSTM_MIN(x);
train_x=input(:,1:n);
train_y=output(:,1:n);
test_x=input(:,n+1:end);
test_y=output(:,n+1:end);
method=@mapminmax;
% method=@mapstd;
[train_x,train_ps]=method(train_x);
test_x=method(‘a(chǎn)pply’,test_x,train_ps);
[train_y,output_ps]=method(train_y);
test_y=method(‘a(chǎn)pply’,test_y,output_ps);
XTrain = double(train_x) ;
XTest = double(test_x) ;
YTrain = double(train_y);
YTest = double(test_y);
numFeatures = size(XTrain,1); %輸入特征維數(shù)
numResponses = size(YTrain,1);%輸出特征維數(shù)
layers = [ …
sequenceInputLayer(numFeatures)%輸入層,參數(shù)是輸入特征維數(shù)
lstmLayer(Tuna1(1,1))%lstm層,如果想要構(gòu)建多層lstm,改幾個(gè)參數(shù)就行了
fullyConnectedLayer(numResponses)%全連接層,也就是輸出的維數(shù)
regressionLayer];%該參數(shù)說明是在進(jìn)行回歸問題,而不是分類問題
options = trainingOptions(‘a(chǎn)dam’, …%求解器設(shè)置為’adam’
‘MaxEpochs’,Tuna1(1,3), …%這個(gè)參數(shù)是最大迭代次數(shù),即進(jìn)行200次訓(xùn)練,每次訓(xùn)練后更新神經(jīng)網(wǎng)絡(luò)參數(shù)
‘MiniBatchSize’,16, …%用于每次訓(xùn)練迭代的最小批次的大小。
‘InitialLearnRate’,Tuna1(1,2), …%學(xué)習(xí)率
‘GradientThreshold’,1, …%設(shè)置梯度閥值為1 ,防止梯度爆炸
‘Verbose’,false, …%如果將其設(shè)置為true,則有關(guān)訓(xùn)練進(jìn)度的信息將被打印到命令窗口中。
‘Plots’,‘training-progress’);%構(gòu)建曲線圖
%對每個(gè)時(shí)間步進(jìn)行預(yù)測,對于每次預(yù)測,使用前一時(shí)間步的觀測值預(yù)測下一個(gè)時(shí)間步。
net = trainNetwork(XTrain,YTrain,layers,options);
numTimeStepsTest = size(XTest,2);
for i = 1:numTimeStepsTest
[net,YPred(:,i)] = predictAndUpdateState(net,XTest(:,i),‘ExecutionEnvironment’,‘cpu’);
end
% 結(jié)果
% 反歸一化
predict_value=method(‘reverse’,YPred,output_ps);
predict_value=double(predict_value);
true_value=method(‘reverse’,YTest,output_ps);
true_value=double(true_value);
for i=1
figure
plot(true_value(i,:),’-’,‘linewidth’,2)
hold on
plot(predict_value(i,:),’-s’,‘linewidth’,2)
legend(‘實(shí)際值’,‘預(yù)測值’)
grid on
title(‘TSO-LSTM預(yù)測結(jié)果’)
ylim([-500 500])
rmse=sqrt(mean((true_value(i,:)-predict_value(i,:)).^2));
disp([’-----------’,num2str(i),’------------’])
disp([‘均方根誤差(RMSE):’,num2str(rmse)])
mae=mean(abs(true_value(i,:)-predict_value(i,:)));
disp([‘平均絕對誤差(MAE):’,num2str(mae)])
mape=mean(abs((true_value(i,:)-predict_value(i,:))./true_value(i,:)));
disp([‘平均相對百分誤差(MAPE):’,num2str(mape100),’%’])
r2=R2(true_value(i,:),predict_value(i,:));
disp([‘R-square決定系數(shù)(R2):’,num2str(r2)])
end


實(shí)際效果以自己的數(shù)據(jù)為準(zhǔn),本文測試結(jié)果并不代表算法最終效果。不同數(shù)據(jù),數(shù)據(jù)處理方式,待優(yōu)化參數(shù)等均不同。
2.孔雀優(yōu)化算法(POA)-LSTM
與上文同數(shù)據(jù)、同進(jìn)化算法設(shè)置參數(shù)。效果僅供參考
實(shí)現(xiàn)效果如下(示例):

3.獵人優(yōu)化算法(HPO)-LSTM
1.2021年Iraj Naruei等人提出的獵人優(yōu)化算法,Hunter–prey optimization, 與LSTM網(wǎng)絡(luò)結(jié)合,優(yōu)化LSTM超參數(shù)。
2.該算法的靈感來自獅子、豹子和狼等捕食性動物以及雄鹿和瞪羚等獵物的行為。動物狩獵行為的場景有很多,其中一些已經(jīng)轉(zhuǎn)化為優(yōu)化算法。本文使用的場景與之前算法的場景不同。在提議的方法中,獵物和捕食者種群以及捕食者攻擊遠(yuǎn)離獵物種群的獵物。獵人向著這個(gè)遠(yuǎn)處的獵物調(diào)整自己的位置,而獵物則向著安全的地方調(diào)整自己的位置。作為適應(yīng)度函數(shù)最佳值的搜索代理的位置被認(rèn)為是安全的位置。在幾個(gè)測試函數(shù)上實(shí)現(xiàn)的 HPO 算法以評估其性能。此外,對于性能驗(yàn)證,所提出的算法被應(yīng)用于幾個(gè)工程問題。結(jié)果表明,所提出的算法在解決測試功能和工程問題方面表現(xiàn)良好。
3.本文為測試數(shù)據(jù),12輸入,單輸出,回歸問題。與上文同數(shù)據(jù)、同進(jìn)化算法設(shè)置參數(shù)。效果僅供參考。
?


4.人工大猩猩部隊(duì)優(yōu)化算法(GTO)-LSTM
?本文為測試數(shù)據(jù),12輸入,單輸出,回歸問題。與上文同數(shù)據(jù)、同進(jìn)化算法設(shè)置參數(shù)。效果僅供參考。
實(shí)現(xiàn)效果如下(示例):


5.象鼻蟲算法(WOA)-LSTM——案例2(負(fù)荷預(yù)測并與PSO-LSTM/LSTM對比)

操作運(yùn)行視頻如下:視頻審核中,敬請期待
Weevil 優(yōu)化算法 (WOA)
作者: 賽義德·穆罕默德·侯賽因·穆薩維
% Weevil 優(yōu)化算法 (WOA)
% 由 Seyed Muhammad Hossein Mousavi 開發(fā) - 2022;% 象鼻蟲,也稱為 nunus,是屬于超科的甲蟲;Curculionoidea,以其細(xì)長的鼻子而聞名。許多象鼻蟲被認(rèn)為是害蟲,因?yàn)樗鼈兡軌蚱茐暮蜌⑺擂r(nóng)作物。
引用格式
賽義德·穆罕默德·侯賽因·穆薩維 (2022)。Weevil 優(yōu)化器算法
————————————————

其中,WOA與LSTM優(yōu)化參數(shù)一致,均為雙層隱含層對應(yīng)的神經(jīng)元數(shù), 迭代次數(shù)和學(xué)習(xí)率 。其次,為了便于計(jì)算,設(shè)置種群數(shù)量為5,迭代次數(shù)為2。
PSO-LSTM根均方差(RMSE):173.579
PSO-LSTM平均絕對誤差(MAE):136.9961
PSO-LSTM平均相對百分誤差(MAPE):3.9484%
PSO-LSTM決定系數(shù)(R2):0.9051
LSTM根均方差(RMSE):233.6107
LSTM平均絕對誤差(MAE):194.5018
LSTM平均相對百分誤差(MAPE):5.657%
LSTM決定系數(shù)(R2):0.85649
WOA-LSTM根均方差(RMSE):168.5163
WOA-LSTM平均絕對誤差(MAE):130.863
WOA-LSTM平均相對百分誤差(MAPE):3.871%
WOA-LSTM決定系數(shù)(R2):0.90586
6.草原犬鼠算法(PDO)-LSTM——案例2(負(fù)荷預(yù)測并與PSO-LSTM/LSTM對比)
操作視頻如下:視頻審核中,敬請期待
草原犬鼠優(yōu)化算法
作者: 押沙龍·埃祖格烏
Prairie Dog Optimization (PDO) 是一種新的基于種群的元啟發(fā)式算法,用于解決數(shù)值優(yōu)化問題。
PDO 是一種新的受自然啟發(fā)的元啟發(fā)式算法,它模仿草原犬鼠在其自然棲息地的行為。所提出的算法使用四種草原犬鼠活動來實(shí)現(xiàn)兩個(gè)常見的優(yōu)化階段,探索和利用。草原犬鼠的覓食和挖洞活動用于為 PDO 算法提供探索行為。
引用格式
Absalom E. Ezugwu、Jeffrey O. Agushaka、Laith Abualigah、Seyedali Mirjalili、Amir H Gandomi,“草原犬鼠優(yōu)化算法”神經(jīng)計(jì)算和應(yīng)用,2022 年。DOI:10.1007/s00521-022-07530-9
其中,PDO與LSTM優(yōu)化參數(shù)一致,均為雙層隱含層對應(yīng)的神經(jīng)元數(shù), 迭代次數(shù)和學(xué)習(xí)率 。其次,為了便于計(jì)算,設(shè)置種群數(shù)量為5,迭代次數(shù)為2。


PSO-LSTM根均方差(RMSE):173.579
PSO-LSTM平均絕對誤差(MAE):136.9961
PSO-LSTM平均相對百分誤差(MAPE):3.9484%
PSO-LSTM決定系數(shù)(R2):0.9051
LSTM根均方差(RMSE):233.6107
LSTM平均絕對誤差(MAE):194.5018
LSTM平均相對百分誤差(MAPE):5.657%
LSTM決定系數(shù)(R2):0.85649
PDO-LSTM根均方差(RMSE):169.3895
PDO-LSTM平均絕對誤差(MAE):132.0842
PDO-LSTM平均相對百分誤差(MAPE):3.9328%
PDO-LSTM決定系數(shù)(R2):0.90469
7.人工兔算法(ARO)-LSTM——案例2(負(fù)荷預(yù)測并與PSO-LSTM/LSTM對比)
操作視頻如下:視頻審核中,敬請期待
人工兔優(yōu)化(ARO):一種新的仿生元啟發(fā)式算法,用于解決工程優(yōu)化問題;人工兔優(yōu)化 (ARO) 的靈感來自自然界中兔子的生存策略。該算法有效且易于實(shí)現(xiàn)。

PSO-LSTM根均方差(RMSE):173.579
PSO-LSTM平均絕對誤差(MAE):136.9961
PSO-LSTM平均相對百分誤差(MAPE):3.9484%
PSO-LSTM決定系數(shù)(R2):0.9051
LSTM根均方差(RMSE):233.6107
LSTM平均絕對誤差(MAE):194.5018
LSTM平均相對百分誤差(MAPE):5.657%
LSTM決定系數(shù)(R2):0.85649
ARO-LSTM根均方差(RMSE):167.3975
ARO-LSTM平均絕對誤差(MAE):128.4898
ARO-LSTM平均相對百分誤差(MAPE):3.7967%
ARO-LSTM決定系數(shù)(R2):0.90527
8.火鷹算法(FHO)-LSTM——案例2(負(fù)荷預(yù)測并與PSO-LSTM/LSTM對比)
操作視頻如下:視頻審核中,敬請期待
Fire Hawk Optimizer (FHO):一種新穎的元啟發(fā)式算法
Fire Hawk Optimizer: a novel metaheuristic algorithm | SpringerLink
Fire Hawk Optimizer (FHO) 是一種基于口哨風(fēng)箏、黑鳶和棕隼的覓食行為開發(fā)的新型元啟發(fā)式算法。這些鳥被稱為火鷹,考慮到它們在自然界捕捉獵物所采取的具體行動,特別是通過放火來捕捉獵物。
引用格式
阿齊茲、馬赫迪等人?!盎瘊梼?yōu)化器:一種新穎的元啟發(fā)式算法。” 人工智能評論,Springer Science and Business Media LLC,2022 年 6 月,doi:10.1007/s10462-022-10173-w。
————————————————


PSO-LSTM根均方差(RMSE):173.579
PSO-LSTM平均絕對誤差(MAE):136.9961
PSO-LSTM平均相對百分誤差(MAPE):3.9484%
PSO-LSTM決定系數(shù)(R2):0.9051
LSTM根均方差(RMSE):233.6107
LSTM平均絕對誤差(MAE):194.5018
LSTM平均相對百分誤差(MAPE):5.657%
LSTM決定系數(shù)(R2):0.85649
FHO-LSTM根均方差(RMSE):165.8632
FHO-LSTM平均絕對誤差(MAE):127.8064
FHO-LSTM平均相對百分誤差(MAPE):3.7457%
FHO-LSTM決定系數(shù)(R2):0.90644
二、改進(jìn)的智能進(jìn)化算法-LSTM(優(yōu)化超參數(shù))
1. 智能算法改進(jìn):改進(jìn)蝠鲼覓食優(yōu)化算法(dFDB-MRFO)-LSTM
dfDB-MRFO:強(qiáng)大的元啟發(fā)式優(yōu)化算法
操作視頻如下:視頻審核中,敬請期待
動態(tài) FDB 選擇方法:改進(jìn)版平衡距離 dfDB-MRFO:使用 dFDB 改進(jìn)的蝠鲼覓食優(yōu)化器
論文鏈接:https ://link.springer.com/article/10.1007/s10489-021-02629-3
論文鏈接:https ://rdcu.be/cqFmD
通過使用動態(tài) FDB 選擇方法,您可以將元啟發(fā)式搜索算法轉(zhuǎn)換為更強(qiáng)大和更有效的方法。為此,您應(yīng)該分析元啟發(fā)式搜索算法中的指南選擇過程,并將動態(tài)FDB選擇方法集成到該過程中。源代碼中,我們將dFDB方法應(yīng)用到了MRFO算法的導(dǎo)選過程中,實(shí)現(xiàn)了MRFO性能的獨(dú)特提升。
Manta Ray Foraging Optimizer 已使用 dFDB 方法重新設(shè)計(jì),因此開發(fā)了 dFDB-MRFO 算法以提高搜索性能。dFDB-MRFO 是一種最新且功能強(qiáng)大的元啟發(fā)式搜索算法,可用于解決單目標(biāo)優(yōu)化問題。
引用格式
Kahraman, HT, Bakir, H., Duman, S., Kati, M., Aras, S., Guvenc, U. 動態(tài) FDB 選擇方法及其應(yīng)用:定向過電流繼電器協(xié)調(diào)的建模和優(yōu)化。應(yīng)用英特爾 (2021)。Dynamic FDB selection method and its application: modeling and optimizing of directional overcurrent relays coordination | SpringerLink
————————————————

PSO-LSTM根均方差(RMSE):173.579
PSO-LSTM平均絕對誤差(MAE):136.9961
PSO-LSTM平均相對百分誤差(MAPE):3.9484%
PSO-LSTM決定系數(shù)(R2):0.9051
LSTM根均方差(RMSE):233.6107
LSTM平均絕對誤差(MAE):194.5018
LSTM平均相對百分誤差(MAPE):5.657%
LSTM決定系數(shù)(R2):0.85649
dFDB_MRFO-LSTM根均方差(RMSE):167.8976
dFDB_MRFO-LSTM平均絕對誤差(MAE):130.1999
dFDB_MRFO-LSTM平均相對百分誤差(MAPE):3.8654%
dFDB_MRFO-LSTM決定系數(shù)(R2):0.90504
————————————————
版權(quán)聲明:本文為CSDN博主「隨風(fēng)飄搖的土木狗」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_29736627/article/details/126433852