>> plotpc(net.IW{1,1},net.b{1,1}) >> hold off
由此可见,感知器网络能够做到对输入向量进行正确分类,同时验证了网络的可行性。 例1.7
含有奇异样本的输入向量和期望输出如下:
P=[-0.5 -0.5 0.3 -0.1 -40;-0.5 0.5 -0.5 1 50] T=[1 1 0 0 1]
首先,应用newp构造一个神经元感知器神经网络,然后利用plotpv画出输入向量图。
>> net=newp([-40 -0.5;-0.5 50],1); >> plotpv(P,T);
>> net=train(net,P,T);
>> hold on
>> plotpc(net.IW{1,1},net.b{1,1}) >> hold off
为了使图形清晰,我们修改坐标值放大部分图形。 >> axis([-2 2 -2 2]);
由此可见,网络对于输入向量可以做到正确分类,缺点就是样本存在奇异性的情况下训练时间大大增加了。
>> P=[-0.5 -0.5 0.3 -0.1 -40;-0.5 0.5 -0.5 1 50]; >> T=[1 1 0 0 1];
>> net=newp([-40 -0.5;-0.5 50],1);
>> net.inputWeights{1,1}.learnFcn='learnpn'; >> net.biases{1,1}.learnFcn='learnpn'; >> net=train(net,P,T);
>> plotpv(P,T); >> hold on;
>> plotpc(net.IW{1,1},net.b{1,1}); >> hold off
>> axis([-2 2 -2 2])
例1.8
单层感知器的一个致命弱点就是输入向量必须是线性可分的。如果输入向量线性可分,感知器可以给出正确的分类结果。而对于线性不可分的输入向量,感知器就不能对输入向量进行正确分类。
构造五组输入样本P,T是期望输出。
>> P=[-0.5 -0.5 0.3 -0.1 -0.8;-0.5 0.5 -0.5 1.0 0.0];
>> T=[1 1 0 0 0]; >> plotpv(P,T);
>> net = newp(minmax(P),1); >> net = train(net,P,T);
>> hold on;
>> plotpc(net.IW{1,1},net.b{1,1}); >> hold off