第2章 单层前向网络及LMS学习算法仿真实例 Matlab 实现

来源:互联网 发布:小区网络方案 编辑:程序博客网 时间:2024/05/22 05:25

参考了: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}) %在坐标图中绘制分类线