天天看點

【DELM分類】基于天鷹算法改進深度學習極限學習機實作資料分類附matlab代碼

1 簡介

人工神經網絡的最大缺點是訓練時間太長進而限制其實時應用範圍,近年來,極限學習機(Extreme Learning Machine, ELM)的提出使得前饋神經網絡的訓練時間大大縮短,然而當原始資料混雜入大量噪聲變量時,或者當輸入資料次元非常高時,極限學習機算法的綜合性能會受到很大的影響.深度學習算法的核心是特征映射,它能夠摒除原始資料中的噪聲,并且當向低次元空間進行映射時,能夠很好的起到對資料降維的作用,是以我們思考利用深度學習的優勢特性來彌補極限學習機的弱勢特性進而改善極限學習機的性能.為了進一步提升DELM預測精度,本文采用麻雀搜尋算法進一步優化DELM超參數,仿真結果表明,改進算法的預測精度更高。

【DELM分類】基于天鷹算法改進深度學習極限學習機實作資料分類附matlab代碼

【DELM分類】基于天鷹算法改進深度學習極限學習機實作資料分類附matlab代碼
【DELM分類】基于天鷹算法改進深度學習極限學習機實作資料分類附matlab代碼

【DELM分類】基于天鷹算法改進深度學習極限學習機實作資料分類附matlab代碼
【DELM分類】基于天鷹算法改進深度學習極限學習機實作資料分類附matlab代碼

【DELM分類】基于天鷹算法改進深度學習極限學習機實作資料分類附matlab代碼
【DELM分類】基于天鷹算法改進深度學習極限學習機實作資料分類附matlab代碼

【DELM分類】基于天鷹算法改進深度學習極限學習機實作資料分類附matlab代碼
【DELM分類】基于天鷹算法改進深度學習極限學習機實作資料分類附matlab代碼

【DELM分類】基于天鷹算法改進深度學習極限學習機實作資料分類附matlab代碼

2 部分代碼

%_______________________________________________________________________________________%
%_______________________________________________________________________________________%
function [Best_FF,Best_P,conv]=AO(N,T,LB,UB,Dim,F_obj)
Best_P=zeros(1,Dim);
Best_FF=inf;
X=initialization(N,Dim,UB,LB);
Xnew=X;
Ffun=zeros(1,size(X,1));
Ffun_new=zeros(1,size(Xnew,1));
t=1;
alpha=0.1;
delta=0.1;
while t<T+1
    for i=1:size(X,1)
        F_UB=X(i,:)>UB;
        F_LB=X(i,:)<LB;
        X(i,:)=(X(i,:).*(~(F_UB+F_LB)))+UB.*F_UB+LB.*F_LB;
        Ffun(1,i)=F_obj(X(i,:));
        if Ffun(1,i)<Best_FF
            Best_FF=Ffun(1,i);
            Best_P=X(i,:);
        end
    end
    G2=2*rand()-1; % Eq. (16)
    G1=2*(1-(t/T));  % Eq. (17)
    to = 1:Dim;
    u = .0265;
    r0 = 10;
    r = r0 +u*to;
    omega = .005;
    phi0 = 3*pi/2;
    phi = -omega*to+phi0;
    x = r .* sin(phi);  % Eq. (9)
    y = r .* cos(phi); % Eq. (10)
    QF=t^((2*rand()-1)/(1-T)^2); % Eq. (15)
        %-------------------------------------------------------------------------------------
    for i=1:size(X,1)
        %-------------------------------------------------------------------------------------
        if t<=(2/3)*T
            if rand <0.5
                Xnew(i,:)=Best_P(1,:)*(1-t/T)+(mean(X(i,:))-Best_P(1,:))*rand(); % Eq. (3) and Eq. (4)
                Ffun_new(1,i)=F_obj(Xnew(i,:));
                if Ffun_new(1,i)<Ffun(1,i)
                    X(i,:)=Xnew(i,:);
                    Ffun(1,i)=Ffun_new(1,i);
                end
            else
                %-------------------------------------------------------------------------------------
                Xnew(i,:)=Best_P(1,:).*Levy(Dim)+X((floor(N*rand()+1)),:)+(y-x)*rand;       % Eq. (5)
                Ffun_new(1,i)=F_obj(Xnew(i,:));
                if Ffun_new(1,i)<Ffun(1,i)
                    X(i,:)=Xnew(i,:);
                    Ffun(1,i)=Ffun_new(1,i);
                end
            end
            %-------------------------------------------------------------------------------------
        else
            if rand<0.5
                Xnew(i,:)=(Best_P(1,:)-mean(X))*alpha-rand+((UB-LB)*rand+LB)*delta;   % Eq. (13)
                Ffun_new(1,i)=F_obj(Xnew(i,:));
                if Ffun_new(1,i)<Ffun(1,i)
                    X(i,:)=Xnew(i,:);
                    Ffun(1,i)=Ffun_new(1,i);
                end
            else
                %-------------------------------------------------------------------------------------
                Xnew(i,:)=QF*Best_P(1,:)-(G2*X(i,:)*rand)-G1.*Levy(Dim)+rand*G2; % Eq. (14)
                Ffun_new(1,i)=F_obj(Xnew(i,:));
                if Ffun_new(1,i)<Ffun(1,i)
                    X(i,:)=Xnew(i,:);
                    Ffun(1,i)=Ffun_new(1,i);
                end
            end
        end
    end
    %-------------------------------------------------------------------------------------
    if mod(t,100)==0
        display(['At iteration ', num2str(t), ' the best solution fitness is ', num2str(Best_FF)]);
    end
    conv(t)=Best_FF;
    t=t+1;
end
end
function o=Levy(d)
beta=1.5;
sigma=(gamma(1+beta)*sin(pi*beta/2)/(gamma((1+beta)/2)*beta*2^((beta-1)/2)))^(1/beta);
u=randn(1,d)*sigma;v=randn(1,d);step=u./abs(v).^(1/beta);
o=step;
end      

3 仿真結果

【DELM分類】基于天鷹算法改進深度學習極限學習機實作資料分類附matlab代碼

【DELM分類】基于天鷹算法改進深度學習極限學習機實作資料分類附matlab代碼

4 參考文獻

[1]馬萌萌. 基于深度學習的極限學習機算法研究[D]. 中國海洋大學, 2015.

部落客簡介:擅長智能優化算法、神經網絡預測、信号處理、元胞自動機、圖像處理、路徑規劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。

繼續閱讀