【DELM分類】基于灰狼算法改進(jìn)深度學(xué)習(xí)極限學(xué)習(xí)機(jī)實(shí)現(xiàn)數(shù)據(jù)分類附matlab代碼
【DELM分類】基于灰狼算法改進(jìn)深度學(xué)習(xí)極限學(xué)習(xí)機(jī)實(shí)現(xiàn)數(shù)據(jù)分類附matlab代碼
1 簡(jiǎn)介
人工神經(jīng)網(wǎng)絡(luò)的最大缺點(diǎn)是訓(xùn)練時(shí)間太長(zhǎng)從而限制其實(shí)時(shí)應(yīng)用范圍,近年來(lái),極限學(xué)習(xí)機(jī)(Extreme Learning Machine, ELM)的提出使得前饋神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間大大縮短,然而當(dāng)原始數(shù)據(jù)混雜入大量噪聲變量時(shí),或者當(dāng)輸入數(shù)據(jù)維度非常高時(shí),極限學(xué)習(xí)機(jī)算法的綜合性能會(huì)受到很大的影響.深度學(xué)習(xí)算法的核心是特征映射,它能夠摒除原始數(shù)據(jù)中的噪聲,并且當(dāng)向低維度空間進(jìn)行映射時(shí),能夠很好的起到對(duì)數(shù)據(jù)降維的作用,因此我們思考利用深度學(xué)習(xí)的優(yōu)勢(shì)特性來(lái)彌補(bǔ)極限學(xué)習(xí)機(jī)的弱勢(shì)特性從而改善極限學(xué)習(xí)機(jī)的性能.為了進(jìn)一步提升DELM預(yù)測(cè)精度,本文采用灰狼搜索算法進(jìn)一步優(yōu)化DELM超參數(shù),仿真結(jié)果表明,改進(jìn)算法的預(yù)測(cè)精度更高。
2 部分代碼
%
Grey Wold Optimizer (GWO) source codes version 1.1 %
%
%
%
Developed in MATLAB R2011b(7.13) %
%
%
%
Author and programmer: Seyedali Mirjalili %
%
%
%
e-Mail: %
%
seyedali.mirjalili@griffithuni.edu.au %
%
%
%
Homepage: http://www.alimirjalili.com/GWO.html %
%
%
%
Main paper: S. Mirjalili, S. M. Mirjalili, A. Lewis %
%
Grey Wolf Optimizer, Advances in Engineering %
%
Software, Volume 69, March 2014, Pages 46-61, %
%
http://dx.doi.org/10.1016/j.advengsoft.2013.12.007 %
%
%
%
Grey Wolf Optimizer
function
[Alpha_score,Alpha_pos,Convergence_curve]=GWO(SearchAgents_no,Max_iter,lb,ub,dim,fobj,handles,Value)
%
initialize alpha, beta, and delta_pos
Alpha_pos
=
zeros(1,dim);
Alpha_score
=
inf; %change this to -inf for maximization problems
Beta_pos
=
zeros(1,dim);
Beta_score
=
inf; %change this to -inf for maximization problems
Delta_pos
=
zeros(1,dim);
Delta_score
=
inf; %change this to -inf for maximization problems
%Initialize
the positions of search agents
Positions
=
initialization(SearchAgents_no,dim,ub,lb);
%Convergence_curve
=
zeros(1,Max_iter);
l
=
0;% Loop counter
%
Main loop
while
l<Max_iter
for
i=1:size(Positions,1)
%
Calculate objective function for each search agent
fitness
=
fobj(Positions(i,:));
All_fitness(1,i)
=
fitness;
%
Update Alpha, Beta, and Delta
if
fitness<Alpha_score
Alpha_score
=
fitness; % Update alpha
Alpha_pos
=
Positions(i,:);
end
if
fitness>Alpha_score && fitness<Beta_score
Beta_score
=
fitness; % Update beta
Beta_pos
=
Positions(i,:);
end
if
fitness>Alpha_score && fitness>Beta_score && fitness<Delta_score
Delta_score
=
fitness; % Update delta
Delta_pos
=
Positions(i,:);
end
end
a
=
2-l*((2)/Max_iter); % a decreases linearly fron 2 to 0
%
Update the Position of search agents including omegas
for
i=1:size(Positions,1)
for
j=1:size(Positions,2)
r1
=
rand(); % r1 is a random number in [0,1]
r2
=
rand(); % r2 is a random number in [0,1]
A1
=
2*a*r1-a; % Equation (3.3)
C1
=
2*r2; % Equation (3.4)
D_alpha
=
abs(C1*Alpha_pos(j)-Positions(i,j)); % Equation (3.5)-part 1
X1
=
Alpha_pos(j)-A1*D_alpha; % Equation (3.6)-part 1
r1
=
rand();
r2
=
rand();
A2
=
2*a*r1-a; % Equation (3.3)
C2
=
2*r2; % Equation (3.4)
D_beta
=
abs(C2*Beta_pos(j)-Positions(i,j)); % Equation (3.5)-part 2
X2
=
Beta_pos(j)-A2*D_beta; % Equation (3.6)-part 2
r1
=
rand();
r2
=
rand();
A3
=
2*a*r1-a; % Equation (3.3)
C3
=
2*r2; % Equation (3.4)
D_delta
=
abs(C3*Delta_pos(j)-Positions(i,j)); % Equation (3.5)-part 3
X3
=
Delta_pos(j)-A3*D_delta; % Equation (3.5)-part 3
Positions(i,j)
=
(X1+X2+X3)/3;% Equation (3.7)
end
%
Return back the search agents that go beyond the boundaries of the search space
Flag4ub
=
Positions(i,:)>ub;
Flag4lb
=
Positions(i,:)<lb;
Positions(i,
:
)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;
end
l
=
l+1;
Convergence_curve(l)
=
Alpha_score;
if
l>1
line([l-1
l], [Convergence_curve(l-1) Convergence_curve(l)],’Color’,’b’)
xlabel(’Iteration’);
ylabel(’Best
score obtained so far’);
drawnow
end
set(handles.itertext,’String’,
[’The current iteration is ’, num2str(l)])
set(handles.optimumtext,’String’,
[’The current optimal value is ’, num2str(Alpha_score)])
if
Value==1
hold
on
scatter(l*ones(1,SearchAgents_no),All_fitness,’.’,’k’)
end
end
3 仿真結(jié)果
4 參考文獻(xiàn)
[1]張志宏, 劉傳領(lǐng). 基于灰狼算法優(yōu)化深度學(xué)習(xí)網(wǎng)絡(luò)的網(wǎng)絡(luò)流量預(yù)測(cè)[J]. 吉林大學(xué)學(xué)報(bào):理學(xué)版, 2021.
博主簡(jiǎn)介:擅長(zhǎng)智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無(wú)人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問(wèn)題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
-
2023年各省最新電價(jià)一覽!8省中午執(zhí)行谷段電價(jià)! 2023-01-03
-
PPT導(dǎo)出高分辨率圖片的四種方法 2022-09-22
-
全國(guó)消防救援總隊(duì)主官及簡(jiǎn)歷(2023.2) 2023-02-10
-
我們的前輩!歷屆全國(guó)工程勘察設(shè)計(jì)大師完整名單! 2022-11-18
-
關(guān)于某送變電公司“4·22”人身死亡事故的快報(bào) 2022-04-26
