ELM极限学习实现汽油辛烷值预测(MATLAB)
什么是極限學(xué)習(xí)機(jī)?
極限學(xué)習(xí)機(jī)(ELM, Extreme Learning Machines)是一種前饋神經(jīng)網(wǎng)絡(luò),最早由新加坡南洋理工大學(xué)黃廣斌教授于2006年提出。該算法具有良好的泛化性能以及極快的學(xué)習(xí)能力
極限學(xué)習(xí)機(jī)和標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)的區(qū)別
ELM 不需要基于梯度的反向傳播來調(diào)整權(quán)重,而是通過 Moore-Penrose generalized inverse來設(shè)置權(quán)值。
標(biāo)準(zhǔn)的單隱藏層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如下:
?
極限學(xué)習(xí)機(jī)
?????極限學(xué)習(xí)機(jī)是由Huang等[26]提出的一種特殊類型的單隱含層前饋神經(jīng)網(wǎng)絡(luò).隨機(jī)初始化其輸入權(quán)值和偏置并得到對(duì)應(yīng)的輸入權(quán)重,在ELM模型的整個(gè)訓(xùn)練過程中并不需要對(duì)模型的各個(gè)參數(shù)進(jìn)行調(diào)整,只需要對(duì)模型隱含層神經(jīng)元的個(gè)數(shù)進(jìn)行設(shè)置,最終就可以獲得唯一的最優(yōu)解[45].具有簡(jiǎn)潔高效,無需調(diào)參,訓(xùn)練學(xué)習(xí)速度較快等優(yōu)點(diǎn),其基本網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.
圖1 極限學(xué)習(xí)機(jī)基本結(jié)構(gòu)
????????極限學(xué)習(xí)機(jī)模型的理論架構(gòu)如下[26]:ELM模型包括輸入層、隱含層和輸出層,其中輸入層的n個(gè)神經(jīng)元分別與n個(gè)輸入變量相對(duì)應(yīng),隱含層有l(wèi)個(gè)神經(jīng)元,輸出層的m個(gè)神經(jīng)元分別與m個(gè)輸出變量相對(duì)應(yīng)設(shè)隱含層神經(jīng)元的激活函數(shù)為g(x),則ELM極限學(xué)習(xí)機(jī)的輸出為
????????其中ωi=[ωi1,ωi2,...,ωin],xj=[x1j,x2j,...,xnj]T,ωi代表輸入層神經(jīng)元與隱含層神經(jīng)元之間的連接權(quán)值,bi表示第i個(gè)神經(jīng)元的偏差也即隱含層閾值.?式(8)也可以表示為Hβ=TT,其中H代表神經(jīng)網(wǎng)絡(luò)隱含層的輸出矩陣,H的具體形式可以表示為
ELM實(shí)現(xiàn)汽油辛烷值預(yù)測(cè)實(shí)例?
部分代碼:
%%ELM極限學(xué)習(xí)實(shí)現(xiàn)汽油辛烷值預(yù)測(cè) %% 訓(xùn)練集/測(cè)試集產(chǎn)生 clear all clc load xinwan_data.mat % 隨機(jī)產(chǎn)生訓(xùn)練集和測(cè)試集 temp = randperm(size(NIR,1));%打亂60個(gè)樣本排序 disp(temp(1:50)) % 訓(xùn)練集——50個(gè)樣本 P_train = NIR(temp(1:50),:)'; T_train = octane(temp(1:50),:)'; % 測(cè)試集——10個(gè)樣本 P_test = NIR(temp(51:end),:)'; T_test = octane(temp(51:end),:)'; N = size(P_test,2);%% 數(shù)據(jù)歸一化% 訓(xùn)練集 %% 這里函數(shù)的作用就是對(duì)p_train數(shù)據(jù)進(jìn)行歸一化處理 [Pn_train,inputps] = mapminmax(P_train); Pn_test = mapminmax('apply',P_test,inputps); % 測(cè)試集 %% 這里函數(shù)的作用就是對(duì)T_train數(shù)據(jù)進(jìn)行歸一化處理 [Tn_train,outputps] = mapminmax(T_train); Tn_test = mapminmax('apply',T_test,outputps);%% ELM創(chuàng)建/訓(xùn)練 [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);%% ELM仿真測(cè)試 tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE); % 反歸一化 T_sim = mapminmax('reverse',tn_sim,outputps);????????實(shí)驗(yàn)共選取60個(gè)樣本,將50個(gè)樣本作為訓(xùn)練,10個(gè)樣本作為測(cè)試,測(cè)試結(jié)果如下圖所示:
?????????讀者可根據(jù)自己的需求更換數(shù)據(jù)進(jìn)行測(cè)試,代碼親測(cè)有效。
完整代碼請(qǐng)見詳情:🍞正在為您運(yùn)送作品詳情
總結(jié)
以上是生活随笔為你收集整理的ELM极限学习实现汽油辛烷值预测(MATLAB)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle集群安装ogg,在RAC下安
- 下一篇: 电力工程师 计算机英语,电力工程师专业英