詳細理論可參考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隻有一組資料時,畫不出來分類線,一個點就一類自然不存在分類線。