参考了:http://blog.csdn.net/henhen2002/article/details/5416574
[例2-1]试用单层感知器,实现逻辑“与”和“或”运算。
输入矢量:P=[0 0 1 1; 0 1 0 1]
目标矢量:T=[0 0 0 1]
P= [0 0 1 1; 0 1 0 1]; %给定训练样本数据
T= [0 0 0 1]; %给定样本数据所对应的类别,用1和0来表示两种类别
%创建一个有两个输入、样本数据的取值范围都在[-1,1]之间,并且
%网络只有一个神经元的感知器神经网络
net=newp([-1 1;-1 1],1);
net.trainParam.epochs = 20; %设置网络的最大训练次数为20次
net=train(net,P,T); %使用训练函数对创建的网络进行训练
Y=sim(net,P) %对训练后的网络进行仿真
E1=mae(Y-T) %计算网络的平均绝对误差,表示网络错误分类
Q=[0 0 1 1; 0 1 0 1]; %检测训练好的神经网络的性能
Y1=sim(net,Q) %对网络进行仿真,仿真输出即为分类的结果
figure; %创建一个新的绘图窗口
plotpv(Q,Y1); %在坐标图中绘制测试数据
plotpc(net.iw{1},net.b{1}) %在坐标图中绘制分类线
[例2-2]使用单层感知器解决一个简单的分类问题。
输入矢量:P=[-0.5 -0.5 0.3 0; -0.5 0.5 -0.5 1]
目标矢量:T=[1 1 0 0]
P= [-0.5 -0.5 0.3 0; -0.5 0.5 -0.5 1]; %给定训练样本数据
T= [1 1 0 0]; %给定样本数据所对应的类别,用1和0来表示两种类别
%创建一个有两个输入、样本数据的取值范围都在[-1,1]之间,并且
%网络只有一个神经元的感知器神经网络
net=newp([-1 1;-1 1],1);
net.trainParam.epochs = 20; %设置网络的最大训练次数为20次
net=train(net,P,T); %使用训练函数对创建的网络进行训练
Y=sim(net,P) %对训练后的网络进行仿真
E1=mae(Y-T) %计算网络的平均绝对误差,表示网络错误分类
Q=[-0.5 -0.5 0.3 0; -0.5 0.5 -0.5 1]; %检测训练好的神经网络的性能
Y1=sim(net,Q) %对网络进行仿真,仿真输出即为分类的结果
figure; %创建一个新的绘图窗口
plotpv(Q,Y1); %在坐标图中绘制测试数据
plotpc(net.iw{1},net.b{1}) %在坐标图中绘制分类线