模式识别实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河海大学物联网工程学院

《模式识别》

课程实验报告

学号 _______________

专业 ____计算机科学与技术_____ 授课班号 _________________________ 学生姓名 ___________________

指导教师 ___________________

完成时间 _______________

实验报告格式如下(必要任务必须写上,可选的课后实验任务是加分项,不是必要任务,可不写):

实验一、Fisher分类器实验

1.实验原理

如果在二维空间中一条直线能将两类样本分开,或者错分类很少,则同一类别样本数据在该直线的单位法向量上的投影的绝大多数都应该超过某一值。而另一类数据的投影都应该小于(或绝大多数都小于)该值,则这条直线就有可能将两类分开。

准则:向量W的方向选择应能使两类样本投影的均值之差尽可能大些,而使类內样本的离散程度尽可能小。

2.实验任务

(1)两类各有多少组训练数据?(易)

(2)试着用MATLAB画出分类线,用红色点划线表示(中)

(3)画出在投影轴线上的投影点(较难)

3.实验结果

(1)第一类数据有200组训练数据,第二类数据有100组训练数据。

(2)如图所示,先得出投影线的斜率,后求其投影线的垂直线的斜率,即分类线的斜率,再求分类线的过的中垂点,加上即可得出。

画出红线代码:m = (-40:0.1:80);

kw = w(2)/w(1);

b = classify(w1, w2, w, 0);

disp(b);

n = (-1/kw).* m + b;

plot(m,n,'r-', 'LineWidth', 3);

(3)画出投影上的投影点

如图,点用X表示。

代码:

u = w/sqrt(sum(w.^2));

p1 = w1*u*u';

plot(p1(:,1),p1(:,2),'r+')

p2 = w2*u*u';

plot(p2(:,1),p2(:,2),'b+')

实验二、感知器实验

1.实验原理

(1)训练数据必须是线性可分的

(2)最小化能量,惩罚函数法-错分样本的分类函数值之和(小于零)作为惩罚值(3)方法:梯度下降法,对权值向量的修正值-错分样本的特征向量

2.实验任务

(1)训练样本不线性可分时,分类结果如何?

(2)程序33-35行完成什么功能?用MATLAB输出x1、x2、x的值,进行观察(中)(3)修改程序,输出梯度下降法迭代的次数(易);

3.实验结果

(1)在创建样本时,故意将两组数据靠近,实现训练样本非线性。

训练样本

由于训练样本不是非线性的,所以无法保证收敛,得不出结果,在运行非线性样本时,无法得到收敛,所以我的程序也经常卡住,只能重启matlab。

(2)程序33-35行在计算得出训练样本,x1加上全为1的一维矩阵得到新的x1,x2也如此,只不过x2全部取烦,取负。

最后得到X = [x1;x2],为下面应用于感知器算法做准备。

(3)通过增加一些代码可得,梯度下降法迭代次数为1244次。

实验三、BP网络预测实验

1.实验原理

学习过程中由信号的正向传播与误差的逆向传播两个过程组成。正向传播时, 模式作用于输入层, 经隐层处理后, 传入误差的逆向传播阶段, 将输出误差按某种子形式, 通过隐层向输入层逐层返回, 并“分摊”给各层的所有单元, 从而获得各层单元的参考误差或称误差信号, 以作为修改各单元权值的依据. 权值不断修改的过程, 也就是网络学习过程. 此过程一直进行到网络输出的误差准逐渐减少到可接受的程度或达到设定的学习次数为止. BP网络模型包括其输入输出模型, 作用函数模型, 误差计算模型和自学习模型。

BP网络由输入层, 输出层以及一个或多个隐层节点互连而成的一种多层网, 这种结构使多层前馈网络可在输入和输出间建立合适的线性或非线性关系, 又不致使网络输出限制在-1和1之间. 见图1。

2.实验任务

(1)将net = newff(inputn,output, [5,5]),均方误差,运行时间如何变化,与

net = newff(inputn,output, 5)进行对比

(2)net = newff(inputn,output, 5)中的5,设置为6,7,8,9,10,分别观察均方误差,运行时间的变化

3.实验结果

(1)任务1

当net = newff(inputn,output, 5)时,结果如图:

当net = newff(inputn,output, [5,5])时,结果如图:

前者为一个隐藏层,中有5个隐藏节点,第二个为有两个隐藏层,各有5个隐藏节点。

两者从实验结果中,均方误差后者更小,运行时间上后者需要时间长,因为其隐藏层多一层,迭代次数增加。结论为,利用两层隐藏节点比一层误差小,效果更好。

(2)任务2

当net = newff(inputn,output, 6)时如下图,

当net = newff(inputn,output, 7)时如下图,

下面为隐藏节点为8和9的结果:

结论:随着隐藏节点的增加,运行时间逐渐变长,但是均方误差不一定越来越小,而且可能出现误差越来越大的情况,说明隐藏节点数不是越多越好,而是有一个最佳值,在最佳值往上或往下,误差都会变大,例如此实验中5便是最佳隐藏节点数。

实验四、SVM实验

1.实验原理

支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧,这使它成为实质上的非线性分类器。SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。

svm是一个二分器,只能用于2类样本的分类,现在我们将它推广到多类问题。本文是

对svm进行推广到能够处理多类问题。采用一对一的投票策略。将a、b、c、d 4类样本两类两类的分成训练集,即(a,b)、(a,c)、(a,d)、(b,c)、(b,d)、(c,d),

相关文档
最新文档