⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 elm_incremental.m

📁 基于BP模型的神经网络模型
💻 M
字号:
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%
%  ELM_incremental(network,data) - train with incremental learning algorithm 
%  starting with single neuron and adding one on each step.
%  
%  Parameters: network -  neural network with matrix networks
%              data - training data sample
%	       epsilon - minimal MSE change
%	       maxNodes - maximal nodes			
%
%
%  Author: Povilas Daniu餴s, paralax@hacker.lt
%  http://ai.hacker.lt - lithuanian site about Artificial Intelligence.
%
%  ----------------------------------------------------------------------


function elm = ELM_incremental(e,data,epsilon,maxNodes)

DAT = data;
e.weights(1) = mean(data.target);
data.target = data.target - e.weights(1);
mse0 = +Inf;
stop = 0;
k = 2;
while stop == 0
    num = 0;
    denum = 0;
        for i = 1:length(data.target)
            num = num + data.target(i) * tansig(e.left(k).w*data.training(i).mat*e.right(k).w + e.bias(k));
            denum = denum + (tansig(e.left(k).w*data.training(i).mat*e.right(k).w + e.bias(k)))^2;
        end    
        e.weights(k) = num/denum;
        
        s_elm = mNN_sim(e,DAT);
        mse = sum((DAT.target - s_elm).^2) / length(DAT.target);
        fprintf('Regressors %d, mse = %f \n',k,mse);
        if (mse > mse0 || abs(mse - mse0) < epsilon || k > maxNodes)
            stop = 1;
        else
          mse0 = mse;  
          for i=1:length(data.target)  
            data.target(i) = data.target(i) - e.weights(k) * tansig(e.left(k).w*data.training(i).mat*e.right(k).w + e.bias(k));
          end  
          e = addNode(e);
          k = k + 1;
        end       
end        

elm = e;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -