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

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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值