神经网络
1.
单层感知?/p>
数据分类
输出?/p>
0
?/p>
1
解决线性可分的分类模型
?/p>
1.
从待分类的数据中取出一部分数据及其对应的类别作为样本数?/p>
,
设计并训练一?/p>
能对分类数据进行分类的单层感知器神经网络
代码
:
%
给定训练样本数据
P=[-.4 -.5 .6;.9 0 .1];
%
给定样本数据所对应的类别,?/p>
0
?/p>
1
来表示两种类?/p>
T=[1 1 0];
%
创建一个有两个输入?/p>
样本数据的取值范围都?/p>
[-1 1]
之间
,
并且网络只有一个神经元?/p>
感知器神经网?/p>
net=newp([-1 1;-1 1],1);
%
设置网络的最大训练次数为
20
?/p>
net.trainParam.epochs=20;
%
使用训练函数对创建的网络进行训练
net=train(net,P
,T);
%
对训练后的网络进行仿?/p>
Y=sim(net,P)
%
计算网络的平均绝对误差,表示网络错误分类
E1=mae(Y-T)
%
给定测试数据,检测训练好的神经网络的性能
Q=[0.6 0.9 -0.1;-0.1 -0.5 0.5];
%
使用测试数据,对网络进行仿真,仿真输出即为分类的结果
Y1=sim(net,Q)
%
创建一个新的绘图窗?/p>
figure;
%
在坐标中绘制测试数据点,并根据数据所对应的类别用约定的符号画?/p>
plotpv(Q,Y1);
%
在坐标中绘制分类?/p>
plotpc(net.iw{1},net.b{1})
2.
线性神经网络模?/p>
线性神经网络类似感知器
,
但是线性神经网络的激活函数是线性的
,
而不是硬线转移函?/p>
,
因此
,
线性神经网络的输出可以是任意?/p>
,
而感知器的输出不?/p>
0
就是
1,
线性神经网络网
络和感知器一样只能解决线性可分的问题
.
?/p>
2.
要求设计一个线性神经网?/p>
,
寻找给定数据之间的线性关?/p>
代码
:
P=[1.1 -1.3];
T=[0.6 1];
%
创建一个只有一个输出,输入延迟?/p>
0
,学习速率?/p>
0.01
的线性神经网络,
minmax(P)
?/p>
示样本数据的取值范?/p>
net=newlin(minmax(P),1,0,0.01);