日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATLAB机器学习系列-8 极限学习机(Extreme Learning Machine, ELM)原理及其代码实现

發布時間:2024/9/30 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB机器学习系列-8 极限学习机(Extreme Learning Machine, ELM)原理及其代码实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

極限學習機(Extreme Learning Machine, ELM)

極限學習機網絡結構和BP網絡結構類似。 和BP神經網絡不同點:
  • 極限學習機輸入層到隱含層的權重W是可以隨意指定的。BP神經網絡W層需要在學習時進行調整,而極限學習機不需要調整。由于不需要調整,大大加快了速度。
  • 極限學習機的隱含層到輸出層的權重B也不需要迭代調整,而是通過解方程組的方法求出權重。
  • 原理
    前向傳播圖見下
    T為目標輸出,g為激活函數

    把上圖簡潔化,寫成矩陣,H為輸入層與隱含層相乘的結果

    該算法創造者認為如果隱含層神經元個數等于輸入樣本個數相等,則
    HB -T 矩陣范數為0,0誤差。

    如果隱含層的神經元個數小于待學習的樣本個數,模型可以以一定精度學習,即模型的誤差小于一定的值

    權重學習流程

  • 第一步:隨機產生輸入層到隱含層之間的權重值W和閾值(偏置)b
  • 第二步:計算隱含層的輸出矩陣H
  • 第三步:求解隱含層和輸出層之間權重B,因為HB-T的矩陣范數為0,則求解公式如下
  • 因為可能存在H的逆矩陣不存在的情況,導致最后B沒有解,當時作者提出這個算法的時候給出的解決方法是求偽逆矩陣。
    現在的解決方法,如圖

    在H后面加上一個小塊矩陣,使
    可逆。
    則權重解為

    極限學習機相比于BP神經網絡,SVM有什么特征

    • 易用性。除了預定義的網絡架構外,不需要手動調優任何參數
    • 更快的學習速度。大多數訓練可以在毫秒、秒和分鐘內完成
    • 更高的泛化性能。在大多數情況下,該算法比BP算法具有更好的泛化性能與SVM相似或優于SVM的泛化性能。
    • 適用于幾乎所有的非線性激活函數。幾乎所有分段連續(包括不連續)微分、非微分函數)可作為激活函數使用。BP神經網絡要求激活函數可導可微分。
    • 適合于完全復雜的激活函數。完全復雜函數也可以作為激活函數使用ELM。

    極限學習機( ELM)仿真

    重點函數

    • nargin:n arg in:自動計算出方法輸入了幾個參數
    • error:給出錯誤信息
    • pinv:求偽逆矩陣
    • sin / hardlim:涉及到激活函數
    • elmtrain 自己寫的函數,用于ELM訓練,記住:每一列代表一個樣本

    elmtrain.m

    function [IW,B,LW,TF,TYPE] = elmtrain(P,T,N,TF,TYPE) % ELMTRAIN Create and Train a Extreme Learning Machine % Syntax % [IW,B,LW,TF,TYPE] = elmtrain(P,T,N,TF,TYPE) % Description % Input % P - Input Matrix of Training Set (R*Q) % T - Output Matrix of Training Set (S*Q) % N - Number of Hidden Neurons (default = Q) % TF - Transfer Function: % 'sig' for Sigmoidal function (default) % 'sin' for Sine function % 'hardlim' for Hardlim function % TYPE - Regression (0,default) or Classification (1) % Output % IW - Input Weight Matrix (N*R) % B - Bias Matrix (N*1) % LW - Layer Weight Matrix (N*S) % Example % Regression: % [IW,B,LW,TF,TYPE] = elmtrain(P,T,20,'sig',0) % Y = elmtrain(P,IW,B,LW,TF,TYPE) % Classification % [IW,B,LW,TF,TYPE] = elmtrain(P,T,20,'sig',1) % Y = elmtrain(P,IW,B,LW,TF,TYPE) % See also ELMPREDICT % Yu Lei,11-7-2010 % Copyright www.matlabsky.com % $Revision:1.0 $ if nargin < 2error('ELM:Arguments','Not enough input arguments.'); end if nargin < 3N = size(P,2); end if nargin < 4TF = 'sig'; end if nargin < 5TYPE = 0; end if size(P,2) ~= size(T,2)error('ELM:Arguments','The columns of P and T must be same.'); end [R,Q] = size(P); if TYPE == 1T = ind2vec(T); end [S,Q] = size(T); % Randomly Generate the Input Weight Matrix IW = rand(N,R) * 2 - 1; % Randomly Generate the Bias Matrix B = rand(N,1); BiasMatrix = repmat(B,1,Q); % Calculate the Layer Output Matrix H tempH = IW * P + BiasMatrix; switch TFcase 'sig'H = 1 ./ (1 + exp(-tempH));case 'sin'H = sin(tempH);case 'hardlim'H = hardlim(tempH); end % Calculate the Output Weight Matrix LW = pinv(H') * T';

    elmpredict.m

    function Y = elmpredict(P,IW,B,LW,TF,TYPE) % ELMPREDICT Simulate a Extreme Learning Machine % Syntax % Y = elmtrain(P,IW,B,LW,TF,TYPE) % Description % Input % P - Input Matrix of Training Set (R*Q) % IW - Input Weight Matrix (N*R) % B - Bias Matrix (N*1) % LW - Layer Weight Matrix (N*S) % TF - Transfer Function: % 'sig' for Sigmoidal function (default) % 'sin' for Sine function % 'hardlim' for Hardlim function % TYPE - Regression (0,default) or Classification (1) % Output % Y - Simulate Output Matrix (S*Q) % Example % Regression: % [IW,B,LW,TF,TYPE] = elmtrain(P,T,20,'sig',0) % Y = elmtrain(P,IW,B,LW,TF,TYPE) % Classification % [IW,B,LW,TF,TYPE] = elmtrain(P,T,20,'sig',1) % Y = elmtrain(P,IW,B,LW,TF,TYPE) % See also ELMTRAIN % Yu Lei,11-7-2010 % Copyright www.matlabsky.com % $Revision:1.0 $ if nargin < 6error('ELM:Arguments','Not enough input arguments.'); end % Calculate the Layer Output Matrix H Q = size(P,2); BiasMatrix = repmat(B,1,Q); tempH = IW * P + BiasMatrix; switch TFcase 'sig'H = 1 ./ (1 + exp(-tempH));case 'sin'H = sin(tempH);case 'hardlim'H = hardlim(tempH); end % Calculate the Simulate Output Y = (H' * LW)'; if TYPE == 1temp_Y = zeros(size(Y));for i = 1:size(Y,2)[~,index] = max(Y(:,i));temp_Y(index,i) = 1;endY = vec2ind(temp_Y); end

    分類
    鳶尾花侯種類識別
    這個數據集網上很多,就不放啦

    main_iris.m

    %% I. 清空環境變量 clear all clc%% II. 訓練集/測試集產生 %% % 1. 導入數據 load iris_data.mat%% % 2. 隨機產生訓練集和測試集 P_train = []; T_train = []; P_test = []; T_test = []; for i = 1:3temp_input = features((i-1)*50+1:i*50,:);temp_output = classes((i-1)*50+1:i*50,:);n = randperm(50);% 訓練集——120個樣本P_train = [P_train temp_input(n(1:40),:)'];T_train = [T_train temp_output(n(1:40),:)'];% 測試集——30個樣本P_test = [P_test temp_input(n(41:50),:)'];T_test = [T_test temp_output(n(41:50),:)']; end%% III. ELM創建/訓練 [IW,B,LW,TF,TYPE] = elmtrain(P_train,T_train,20,'sig',1);%% IV. ELM仿真測試 T_sim_1 = elmpredict(P_train,IW,B,LW,TF,TYPE); T_sim_2 = elmpredict(P_test,IW,B,LW,TF,TYPE);%% V. 結果對比 result_1 = [T_train' T_sim_1']; result_2 = [T_test' T_sim_2']; %% % 1. 訓練集正確率 k1 = length(find(T_train == T_sim_1)); n1 = length(T_train); Accuracy_1 = k1 / n1 * 100; disp(['訓練集正確率Accuracy = ' num2str(Accuracy_1) '%(' num2str(k1) '/' num2str(n1) ')'])%% % 2. 測試集正確率 k2 = length(find(T_test == T_sim_2)); n2 = length(T_test); Accuracy_2 = k2 / n2 * 100; disp(['測試集正確率Accuracy = ' num2str(Accuracy_2) '%(' num2str(k2) '/' num2str(n2) ')'])%% VI. 繪圖 figure(2) plot(1:30,T_test,'bo',1:30,T_sim_2,'r-*') grid on xlabel('測試集樣本編號') ylabel('測試集樣本類別') string = {'測試集預測結果對比(ELM)';['(正確率Accuracy = ' num2str(Accuracy_2) '%)' ]}; title(string) legend('真實值','ELM預測值')

    回歸
    汽油辛烷值預測

    %% I. 清空環境變量 clear all clc%% II. 訓練集/測試集產生 %% % 1. 導入數據 load spectra_data.mat%% % 2. 隨機產生訓練集和測試集 temp = randperm(size(NIR,1));% 訓練集——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);%% III. 數據歸一化 %% % 1. 訓練集 [Pn_train,inputps] = mapminmax(P_train); Pn_test = mapminmax('apply',P_test,inputps); %% % 2. 測試集 [Tn_train,outputps] = mapminmax(T_train); Tn_test = mapminmax('apply',T_test,outputps);%% IV. ELM創建/訓練 [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);%% V. ELM仿真測試 tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE); %% % 1. 反歸一化 T_sim = mapminmax('reverse',tn_sim,outputps);%% VI. 結果對比 result = [T_test' T_sim']; %% % 1. 均方誤差 E = mse(T_sim - T_test);%% % 2. 決定系數 N = length(T_test); R2=(N*sum(T_sim.*T_test)-sum(T_sim)*sum(T_test))^2/((N*sum((T_sim).^2)-(sum(T_sim))^2)*(N*sum((T_test).^2)-(sum(T_test))^2)); %% VII. 繪圖 figure(1) plot(1:N,T_test,'r-*',1:N,T_sim,'b:o') grid on legend('真實值','預測值') xlabel('樣本編號') ylabel('辛烷值') string = {'測試集辛烷值含量預測結果對比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']}; title(string)

    代碼和數據百度云

    鏈接:https://pan.baidu.com/s/1o08kfLvUN3n5pYyE9ycfWg 提取碼:q9vz 復制這段內容后打開百度網盤手機App,操作更方便哦


    作者:電氣工程的計算機萌新-余登武

    總結

    以上是生活随笔為你收集整理的MATLAB机器学习系列-8 极限学习机(Extreme Learning Machine, ELM)原理及其代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 玉势 (1v1 高h) | 欧美日韩1区 | 日韩电影在线一区 | 久久在线视频精品 | 伊人称影院 | 国产青青草| 欧美少妇一区二区三区 | 天天综合网天天综合色 | 水蜜桃av在线 | 黄色网址你懂得 | 99re在线国产 | hs视频在线观看 | 国产成人精品在线播放 | 日韩脚交footjobhd | 91精品国产综合久久久蜜臀九色 | 成人黄色在线观看 | 亚洲区第一页 | 精品人妻一区二区三区久久夜夜嗨 | 催眠调教后宫乱淫校园 | 亚洲熟伦熟女新五十路熟妇 | 久久99精品久久久水蜜桃 | 国产成年人免费视频 | 亚洲国产精品久久久久婷婷老年 | 九九这里只有精品视频 | 久久91| www.欧美色| 精品国偷自产在线 | 国产一二三精品 | 樱花影院最新免费观看攻略 | 国产99视频在线观看 | 中文字幕被公侵犯的漂亮人妻 | 成人h动漫精品一区 | 久久久精品网 | 黄色不卡视频 | 四虎一区二区三区 | 亚洲影院一区二区三区 | 影音先锋在线看片资源 | 一区二三区 | 不卡av在线 | 靠逼动漫 | 日本午夜啪啪 | 香蕉久久国产av一区二区 | 日韩高清精品免费观看 | 国产三级理论片 | 免费国产网站 | 丰满大肥婆肥奶大屁股 | 粉豆av | 在线视频 亚洲 | 日韩不卡一区二区三区 | 中文字幕第66页 | 午夜免费福利视频 | 色就色欧美 | 国产亚洲精品精品精品 | 超碰资源在线 | 麻豆视频污 | 亚洲自拍三区 | 无码人妻一区二区三区线 | 乌克兰性极品xxxhd | 欧美大黄视频 | 超碰av免费 | 婷婷激情综合网 | 中文字幕一区二区三区人妻不卡 | 国产黄色片网站 | 亚洲成人黄色小说 | 亚洲精品66 | 99re6在线 | 91网页在线观看 | 玩偶姐姐在线看 | 欧美野外猛男的大粗鳮 | 在线播放黄色av | 亲子伦视频一区二区三区 | 熟女一区二区三区视频 | 夫妻性生活自拍 | 欧美亚韩一区二区三区 | 在线亚洲色图 | 精品国产一区二区三区久久久久久 | 三年中国片在线高清观看 | 欧美日韩视频在线观看免费 | 网红av在线| 可以免费看黄的网站 | 啪啪综合 | 精品一区二区三区四区五区 | 在线黄色免费网站 | 狠狠干2017 | 中文字幕第28页 | 体内精69xxxxxx | 尤物网在线 | 激情欧美一区二区三区精品 | 国语播放老妇呻吟对白 | 国产日本欧美在线观看 | 日韩一卡 | 男人天堂视频在线观看 | 伊人天堂网 | 亚洲第一黄色网址 | 亚洲狼人干 | 亚洲啪啪免费视频 | 182tv午夜| 久99热 | 伊人情人综合 |