您的位置:首页 > 理论基础 > 计算机网络

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

2012-04-27 22:21 537 查看
参考了: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}) %在坐标图中绘制分类线
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: