加粗样式
MATLAB 简单神经网络案例
学习目标:从学习第一个最简单的神经网络案例开启神经网络学习之路。 本神经网络为感知器网络,常用于点的分类。
clear all;
close all; %第一步、第二部为清空环境变量
P=[0 0 1 1;0 1 0 1];%输入向量
T=[0 1 1 1]; %目标向量
net=newp(minmax(P),1,'hardlim','learnp'); %建立感知器神经网络
net=train(net,P,T); %对网络进行训练
Y=sim(net,P); % 对网络进行仿真
plotpv(P,T); %绘制感知器的输入向量和目标向量,绘制样本点
plotpc(net.iw{1,1},net.b{1}); %在感知器向量图中绘制分界线
1)P=[0 0 1 1;0 1 0 1];%输入向量。 输入向量P[0 0 1 1;0 1 0 1]为(x,y)二维矩阵;其表示的四个点为(0,0),(0,1),(1,0),(1,1)。如下图所示: 2)T=[0 1 1 1]; %目标向量。 目标向量T[0 1 1 1]为一维矩阵,输入向量的元素与目标向量元素一一对应,(0,0),(0,1),(1,0),(1,1)分别对应:0,1,1,1,1。
3)net=newp(minmax§,1,‘hardlim’,‘learnp’); %建立感知器神经网络 语法:net=newp[PR,S,TF,LF] PR:Rx2的输入向量最大值和最小值构成的矩阵,此处由minmax(P)实现,即每一行的最大值最小值构成一行。 S:构造的神经元的个数 TF:激活函数的设置(传递函数),可设置为hardlim函数或者hardlins函数,默认为 hardlim函数;hardlim与hardlims的详细形式如下: LF:学习修正函数的设置,可设置为learnp函数或者learnpn函数,默认 为learnp函数
4)net=train(net,P,T); %对网络进行训练 语法:train(net,P,T) net:被训练网络; P:输入向量 T:目标向量 补充:net.trainParam.epochs=10 %预定训练次数为10。 自适应训练函数:net=adapt(net,P,T); 5)Y=sim(net,P); % 对网络进行仿真 Y网络输出,P输入向量 6)plotpv(P,T); %绘制感知器的输入向量和目标向量,绘制样本点 7)plotpc(net.iw{1,1},net.b{1}); %在感知器向量图中绘制分界线 w=net.iw{1,1} %显示网络权值 B=net.b{1} %显示网络阈值
感知器是最简单的神经网络,只适合进行简单的模式分类;感知器只对线性可分的向量集合进行分类,所谓线性可分,是指可以用一条直线(针对二维向量)或者一个平面(针对三维向量)将输入向量分开;对感知器的分析有助于理解更加复杂的神经网络。
|