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