神经网络 感知器的分类能力
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业一:感知器的分类能力
一、作业要求
已知矩阵P=[0.1 0.7 0.8 0.8 1.0 0.3 0.0 -0.3 -0.5 -1.5;
1.2 1.8 1.6 0.6 0.8 0.5 0.2 0.8 -1.5 -1.3];
T=[1 1 1 0 0 1 1 1 0 0 ;
0 0 0 0 0 1 1 1 1 1]
对以上输入、输出样本进行分类。要求画出最后的线形图。
二、分析题目要求
首先画出题目给定的点。要求设计一个二输入感知神经网络,将十个输入向为四类。
图1 给定的点
三、构建初始网络
应用newp()构造一个神经元感知器神经网络,其输入向量在[-2 2]之间。由于为2输入,故神经元数量为2。
四、训练网络
net=train(net,P,T); 设置最大训练次数为10。
五、 实验结果
5.1 本次运行的最优分类情况:
图2 分类线
5.2 误差曲线
当学习函数为感知器学习函数learnp 时,其误差曲线为图3;当学习函数为标准感知器学习函数learnp n 时,其误差曲线为图4。
图3 学习函数learnp 的误差曲线 图4 学习函数learnpn 的误差曲线
六、网络仿真
应用sim 函数来进行网络仿真,实现对任何其他输入向量的模式划分。选取 Q=[-0.4;0.9],可知其非常靠近原样本的一组数据即[-0.3 0.8],其目标输出应为为
[1 1]。现在观察网络仿真结果,发现其被划分到相应的分类中。
七、结论与心得
该感知器网络完成了一个简单的四类模式划分问题。通过此次实验,可得感知器具有根据已有数据自主学习规则的能力,这对于我们研究无固定函数表达式的输入输出有重要意义。此外,通过比较两个学习函数后,发现learnp的误差曲线更符合要求,所以选择学习函数选择learnp。
做本题前一直在思考,10组数据如何分配,哪些做学习样本,哪些做测试样本。最后决定取原样本中相近的数据来检测网络的识别能力。
八、附录: Matlab程序代码
P=[0.1 0.7 0.8 0.8 1.0 0.3 0.0 -0.3 -0.5 -1.5;
1.2 1.8 1.6 0.6 0.8 0.5 0.2 0.8 -1.5 -1.3];
T=[1 1 1 0 0 1 1 1 0 0 ;
0 0 0 0 0 1 1 1 1 1]
net=newp([-2 2;-2 2],2,'hardlim','learnp');
net.trainParam.epochs=10;
net=train(net,P,T);
Q=[-0.4;0.9];
Y=sim(net,Q);
plotpv(P,T);
plotpc(net.iw{1},net.b{1});%画分类线
hold on;
plotpv(Q,Y);
xlim([-2,2]),ylim([-2,2]); %限定区间