1 内容介紹
一種基于灰狼算法優化LSTM的網絡流量預測方法,屬于網絡流量預測領域,該方法包括以下步驟:對第一網絡流量資料集進行極差标準化處理,得到第二網絡流量資料集,并劃分為訓練集和測試集,并确定灰狼算法優化LSTM神經網絡中輸入層單元個數,輸出層單元個數和隐藏層單元個數;用得到第二網絡流量資料集,在過程中利用灰狼算法來優化LSTM神經網絡的參數,得到訓練完成的灰狼算法優化LSTM神經網絡;灰狼優化算法可以有效解決優化中的求解問題,可應用于工程,經濟,排程等問題求解.灰狼優化算法利用自身的全局最優能力彌補傳統LSTM容易收斂于局部最優解的缺點,提高LSTM避免局部最優能力;加快LSTM神經網絡參數收速度.實驗證明,灰狼算法優化LSTM能夠有效減少神經網絡的訓練時間,提高了網絡流量預測精度.
2 仿真代碼
function result = fun(pop)
global inputn outputn shuru_num shuchu_num
tic
pop(1)=round(pop(1));
layers = [ ...
sequenceInputLayer(shuru_num)
lstmLayer(pop(1))
fullyConnectedLayer(shuchu_num)
regressionLayer];
options = trainingOptions('adam', ... % 梯度下降
'MaxEpochs',50, ... % 最大疊代次數
'GradientThreshold',1, ... % 梯度門檻值
'InitialLearnRate',pop(2));
% 劃分訓練集=訓練集中選取80%進行訓練,20%進行訓練測試
n = randperm(size(inputn,2));%随機選取
xun_n = round(size(inputn,2)*0.8);
xunx = inputn(:,n(1:xun_n));
xuny = outputn(:,n(1:xun_n));
cex = inputn(:,n((xun_n+1):end));
cey = outputn(:,n((xun_n+1):end));
% 訓練LSTM
net = trainNetwork(xunx,xuny,layers,options);
% 預測
net = resetState(net);% 網絡的更新狀态可能對分類産生了負面影響。重置網絡狀态并再次預測序列。
[~,Ytrain]= predictAndUpdateState(net,cex);
error = Ytrain-cey;
num=length(cey);
cg=sum(error.*error)/num;
toc
disp('-------------------------')
result = cg;
end
3 運作結果
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAnYldHL0FWby9mZvwFN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CN2UjM5EGMlFTZ3YzY2EmZyYzX5ETN1MjM1EzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
編輯
編輯
編輯
4 參考文獻
[1]杜秀麗, 司增輝, 潘成勝,等. 一種基于決策灰狼算法優化LSTM的網絡流量預測方法:, CN111371607A[P]. 2020.