天天看點

神經網絡學習筆記--基于matlab的感覺器

詳細理論可參考https://blog.csdn.net/fieldoffier/article/details/44264715 

本文僅提供執行個體和經驗。

題目:已知向量P=[-0.5 -0.5 0.3 -0.1 -4; -0.5 0.5 -0.5 1.0 5];T=[1 1 0 0 1]; 求Q=[0.7 -0.5;1.2 -0.5]

解讀:對Q向量進行分類,由已知的P和T訓練一個感覺器。有監督的學習,單層神經網絡。

第一步:觀察P,确定範圍。x1∈[-4,1];x2∈[-1,5]。Q也在次範圍内。

第二步:建立一個感覺器,使用函數newp,第一個參數為範圍;第二個參數為個數,本次使用一個感覺器;第三、四個參數可選;學習函數選用'learnpn',原因:P的範圍差距較大。

第三步:訓練網絡,使用train(),傳入P,T。

第四步:網絡仿真,擷取結果。sim()。

第五步,畫圖。

源代碼如下:

P = [-0.5 -0.5 0.3 -0.1 -4; -0.5 0.5 -0.5 1.0 5];   %輸入向量
T = [1 1 0 0 1];            %輸出向量
net=newp([-4 1;-1 5],1,'hardlim','learnpn');    %建立一個感覺器
net.trainParam.epochs=10;   %最大訓練次數
net=train(net,P,T);      %開始訓練
Q=[0.7 -0.5;1.2 -0.5];     %測試向量
Y=sim(net,Q)    %網絡仿真,獲得結果
figure
plotpv(P,T)
plotpc(net.iw{1},net.b{1})
figure
plotpv(Q,Y)
plotpc(net.iw{1},net.b{1})
           

調試:發現當Q隻有一組資料時,畫不出來分類線,一個點就一類自然不存在分類線。 

繼續閱讀