1. 程式人生 > >matlab 簡單神經網路 sim 自主實現

matlab 簡單神經網路 sim 自主實現

function y = MyBPSim(net,Test_data,inputps)
    %Test_data,待分類的資料,每行表示一個特徵向量
    IW = net.IW{1,1};  % net是訓練得到的網路,IW表示隱含層的權矩陣
                       % 維數 = 隱含層神經元個數 * 特徵數
    LW = net.LW{2,1};  % LW表示隱含層權矩陣,維數 = 1 * 隱含層神經元個數
    b1 = net.b{1}*ones(1,size(Test_data,2));    % 輸入層的閾值
    b2 = net.b{2}*ones(1,size(Test_data,2));    % 隱含層的閾值
    
    imp2 = mapminmax('apply',Test_data,net.inputs{1}.processSettings{1});
    %imp2 = Test_data;
    %imp2 = mapminmax(Test_data,-1,1);
    n1 = (IW * imp2) + b1;
   % out1 = 2/(1 + exp(2 * n1)) - 1;    % tansig函式的表示式,out1表示輸入層的輸出結果
  % out1  = 1 ./ (1 + exp(-n1));
  out1 = tansig(n1);
   out2 = (LW * out1) + b2;             % purelin函式就是形如 y = x,所以直接可以得到out2
   y = mapminmax('reverse',out2,net.outputs{2}.processSettings{1});
    end

神經網路模型為:

神經網路架構
自定義神經網路模型

在《matlab 神經網路43個案例分析中》有如下列表

隱含層用logsig 輸出層用purelin 效果比較好