時(shí)序預(yù)測(cè) | MATLAB實(shí)現(xiàn)PSO-GRU(粒子群優(yōu)化門(mén)控循環(huán)單元)時(shí)間序列預(yù)測(cè)
預(yù)測(cè)效果
基本介紹
Matlab基于PSO-GRU粒子群算法優(yōu)化門(mén)控循環(huán)單元的時(shí)間序列預(yù)測(cè)(完整程序和數(shù)據(jù))
Matlab基于PSO-GRU粒子群算法優(yōu)化門(mén)控循環(huán)單元的時(shí)間序列預(yù)測(cè),PSO-GRU時(shí)間序列預(yù)測(cè)(完整程序和數(shù)據(jù))
優(yōu)化參數(shù)為學(xué)習(xí)率,隱藏層節(jié)點(diǎn)個(gè)數(shù),正則化參數(shù),要求2020b及以上版本,matlab代碼。
模型介紹
提出一種基于PSO-BiLSTM(粒子群優(yōu)化雙向長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)) ,該模型在BiLSTM 模型的基礎(chǔ)上進(jìn)行改進(jìn)和優(yōu)化,因此擅長(zhǎng)處理具有長(zhǎng)期依賴(lài)關(guān)系的、復(fù)雜的非線(xiàn)性問(wèn)題。通過(guò)自適應(yīng)學(xué)習(xí)策略的PSO 算法對(duì)BiLSTM 模型的關(guān)鍵參數(shù)進(jìn)行尋優(yōu),使數(shù)據(jù)特征與網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)相匹配,提高預(yù)測(cè)精度。
PSO模型
- 粒子群算法的思想源于對(duì)鳥(niǎo)類(lèi)社會(huì)行為的研究。鳥(niǎo)群捕食最簡(jiǎn)單有效的方法是搜索距離食物最近的鳥(niǎo)的所在區(qū)域,通過(guò)個(gè)體間的協(xié)助和信息共享實(shí)現(xiàn)群體進(jìn)化。
- 算法將群體中的個(gè)體看作多維搜索空間中的一個(gè)粒子,每個(gè)粒子代表問(wèn)題的一個(gè)可能解,其特征信息用位置、速度和適應(yīng)度值3 種指標(biāo)描述,適應(yīng)度值由適應(yīng)度函數(shù)計(jì)算得到,適應(yīng)度值的大小代表粒子的優(yōu)劣。
- 粒子以一定的速度“飛行”,根據(jù)自身及其他粒子的移動(dòng)經(jīng)驗(yàn),即自身和群體最優(yōu)適應(yīng)度值,改變移動(dòng)的方向和距離。不斷迭代尋找較優(yōu)區(qū)域,從而完成在全局搜索空間中的尋優(yōu)過(guò)程。
GRU模型
- GRU是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)。它通過(guò)精心設(shè)計(jì)“門(mén)”結(jié)構(gòu),避免了傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)產(chǎn)生的梯度消失與梯度爆炸問(wèn)題,能有效地學(xué)習(xí)到
長(zhǎng)期依賴(lài)關(guān)系。因此,在處理時(shí)間序列的預(yù)測(cè)和分類(lèi)問(wèn)題中,具有記憶功能的GRU 模型表現(xiàn)出較強(qiáng)的優(yōu)勢(shì)。
PSO-GRU模型
-
將GRU初始學(xué)習(xí)率、隱藏層單元數(shù)目作為PSO 算法的優(yōu)化對(duì)象,根
據(jù)超參數(shù)取值范圍隨機(jī)初始化各粒子位置信息。 -
其次,根據(jù)粒子位置對(duì)應(yīng)的超參數(shù)取值建立GRU 模型,利用訓(xùn)練數(shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練。將驗(yàn)證數(shù)據(jù)代入訓(xùn)練好的模型進(jìn)行預(yù)測(cè),以模型在
驗(yàn)證數(shù)據(jù)集上的均方誤差作為粒子適應(yīng)度值。 -
PSO-GRU 模型算法流程如下:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-514267.html
- 步驟1 將實(shí)驗(yàn)數(shù)據(jù)分為訓(xùn)練數(shù)據(jù)、驗(yàn)證數(shù)據(jù)和測(cè)試數(shù)據(jù)。
- 步驟2 將GRU 模型中學(xué)習(xí)率,隱藏層節(jié)點(diǎn)個(gè)數(shù),正則化參數(shù)作為優(yōu)化對(duì)象,初始化自適應(yīng)PSO 算法。
- 步驟3 劃分子群。
- 步驟4 計(jì)算每個(gè)粒子的適應(yīng)度值。以各粒子對(duì)應(yīng)參數(shù)構(gòu)建GRU模型,通過(guò)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,驗(yàn)證數(shù)據(jù)進(jìn)行預(yù)測(cè)。
- 步驟5 根據(jù)粒子適應(yīng)度值與種群劃分結(jié)果,確定全局最優(yōu)粒子位置pbest 和局部最優(yōu)粒子位置gbest。
- 步驟6 根據(jù)PSO 算法的分別對(duì)普通粒子和局部最優(yōu)粒子位置進(jìn)行更新。
- 步驟7 判斷終止條件。若滿(mǎn)足終止條件,返回最優(yōu)超參數(shù)取值; 否則,返回步驟3。
- 步驟8 利用最優(yōu)超參數(shù)構(gòu)建GRU 模型。
- 步驟9 模型通過(guò)訓(xùn)練數(shù)據(jù)和驗(yàn)證數(shù)據(jù)進(jìn)行訓(xùn)練,測(cè)試集進(jìn)行預(yù)測(cè),得到預(yù)測(cè)結(jié)果。
程序設(shè)計(jì)
- 完整程序和數(shù)據(jù)下載地址方式1:MATLAB實(shí)現(xiàn)PSO-GRU(粒子群優(yōu)化門(mén)控循環(huán)單元)時(shí)間序列預(yù)測(cè)
- 完整程序和數(shù)據(jù)下載地址方式2:訂閱《GRU門(mén)控循環(huán)單元》專(zhuān)欄,訂閱后兩天內(nèi)私信博主獲取程序和數(shù)據(jù),專(zhuān)欄外只能獲取該程序。
% 1. 尋找最佳參數(shù)
NN=5; %初始化群體個(gè)數(shù)
D=2; %初始化群體維數(shù),
T=10; %初始化群體最迭代次數(shù)
c1=2; %學(xué)習(xí)因子1
c2=2; %學(xué)習(xí)因子2
%用線(xiàn)性遞減因子粒子群算法
Wmax=1.2; %慣性權(quán)重最大值
Wmin=0.8; %慣性權(quán)重最小值
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%每個(gè)變量的取值范圍
ParticleScope(1,:)=[10 200]; % 中間層神經(jīng)元個(gè)數(shù)
ParticleScope(2,:)=[0.01 0.15]; % 學(xué)習(xí)率
ParticleScope=ParticleScope';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xv=rand(NN,2*D); %首先,初始化種群個(gè)體速度和位置
for d=1:D
xv(:,d)=xv(:,d)*(ParticleScope(2,d)-ParticleScope(1,d))+ParticleScope(1,d);
xv(:,D+d)=(2*xv(:,D+d)-1 )*(ParticleScope(2,d)-ParticleScope(1,d))*0.2;
end
x1=xv(:,1:D);%位置
v1=xv(:,D+1:2*D);%速度
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%------初始化個(gè)體位置和適應(yīng)度值-----------------
p1=x1;
pbest1=ones(NN,1);
for i=1:NN
pbest1(i)=fitness(x1(i,:));
end
%------初始時(shí)全局最優(yōu)位置和最優(yōu)值---------------
gbest1=min(pbest1);
lab=find(min(pbest1)==pbest1);
g1=x1(lab,:);
gb1=ones(1,T);
參考資料
[1] https://blog.csdn.net/kjm13182345320?spm=1010.2135.3001.5343
[2] https://mianbaoduo.com/o/bread/mbd-YpiamZpq
[3] SI Y W,YIN J. OBST-based segmentation approach to financial time series[J]. Engineering Applications of Artificial Intelligence,2013,26( 10) : 2581-2596.
[4] YUAN X,CHEN C,JIANG M,et al. Prediction Interval of Wind Power Using Parameter Optimized Beta Distribution Based LSTM Model[J]. Applied Soft Computing,2019,82:105550.143文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-514267.html
致謝
- 大家的支持是我寫(xiě)作的動(dòng)力!
- 感謝大家訂閱,記得備注!
到了這里,關(guān)于時(shí)序預(yù)測(cè) | MATLAB實(shí)現(xiàn)PSO-GRU(粒子群優(yōu)化門(mén)控循環(huán)單元)時(shí)間序列預(yù)測(cè)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!