模式识别课程设计
模式识别导论 课程设计
学号:
班级: 姓名:
(2)分类器设计方法概述及选择依据分析;(10分) (3)感知器算法原理及算法步骤;(20分) (4)感知器算法流程设计;(20分) (5)感知器算法程序;(10分) (6)程序仿真及结果分析;(20分) (7)结论;(5分) (8)参考文献。(5分)
四、请结合具体的应用背景,设计基于K-L 变换的特征提取算法,并编写程序,分析结果,提交报告一份。
报告内容包括: (1)具体应用背景的介绍;(10分)
(2)特征提取方法概述及选择依据分析;(10分) (3)基于K-L 变换的特征提取算法原理及步骤;(20分) (4)基于K-L 变换的特征提取算法流程设计;(20分) (5)基于K-L 变换的特征提取算法程序;(10分) (6)程序仿真及结果分析;(20分) (7)结论;(5分) (8)参考文献。(5分)
1具体应用背景的介绍
随着社会经济的发展、人口的增多,人们对水资源的利用更加重视,不同的水资源质量程度不一,为了更好地适应人类的需求,需要对水资源根据污染物有机物、无机物、重金属含量进行适当的分类。在这里将运用模式识别的方法简单的对其分类为一类水与二类水。
2分类器设计方法概述及选择依据分析
感知器是一种神经网络模型,是20世纪50年代中期到60年代初人们对模拟人脑学习能力的一种分类学习机模型的称呼,当时有些人认为它是一种学习记的强有力模型,后来发现估计过高,由于无法实现非线性分类,到60年代中期,从事感知器研究的实验室纷纷下马,但在发展感知器是所获得的一些数学概念,如“赏罚分明”今天仍在模式识别中起着很大的作用。
将用感知器的方法在本次设计中对水资源进行分类
3感知器算法原理及算法步骤
T
d (X ) =W X 其中,两类线性可分的模式类 ω1, ω2,设
W =[w 1, w 2, , w n , w n +1],X =[x 1, x 2, , x n , 1]应具有性质
T
T
⎧>0, 若X ∈ω1
d (X ) =W X ⎨
⎩
T
(3-1)
对样本进行规范化处理,即ω2类样本全部乘以(-1) ,则有:
d (X ) =W T X >0 (3-2)
感知器算法通过对已知类别的训练样本集的学习,寻找一个满足上式的权向量。
感知器算法步骤:
(1)选择N 个分属于ω1和 ω2类的模式样本构成训练样本集{ X1 ,…, XN }构成增广向量形式,并进行规范化处理。任取权向量初始值W(1),开始迭代。迭代次数k=1。
(2)用全部训练样本进行一轮迭代,计算W T (k ) X i 的值,并修正权向量。
分两种情况,更新权向量的值:
1. 若W T (k )X i ≤0,分类器对第i 个模式做了错误分类,权向量校正为:W (k +1)=W (k )+c X i c :正的校正增量。
T
(k )X i >0,W 2. 若分类正确,权向量不变:W (k +1)=W (k ), 统
一写为:
⎧⎪W (k ),
W (k +1)=⎨
⎪⎩W (k )+C X k ,
W T (k )X k ≥0
W T (k )X k
(3-3)
(3)分析分类结果:只要有一个错误分类,回到(2),直至对所有样本正确分类。
感知器算法是一种赏罚过程:
分类正确时,对权向量“赏”——这里用“不罚”,即权向量不变; 分类错误时,对权向量“罚”——对其修改,向正确的方向转换。
采用多类情况3的方法时,应有: 若X ∈ωi ,则d i (X ) >d j (X ),
∀j ≠i , j =1, , M
对于M 类模式应存在M 个判决函数: 算法主要内容:
{d i ,
i =1, , M },,,,,
j =1, , M 训练样
设有M 中模式类别:ω1, ω2, , ωM 设其权向量初值为:W j (1),
本为增广向量形式,但不需要规范化处理。第K 次迭代时,一个属于ωi 类的模式样本X 被送入分类器,计算所有判别函数
d j (k )=W j T (k )X ,
分二种情况修改权向量:
j =1, , M
(3-4)
① 若d i (k )>d j (k ), ∀j ≠i ; j =1, 2, , M ,则权向量不变;
W j (k +1)=W j (k ),
j =1, 2, , M
② 若第L 个权向量使d i (k )≤d l (k ),则相应的权向量作调整,即:
⎧W i (k +1)=W i (k )+c X
⎪
⎨W l (k +1)=W l (k )-c X
⎪W (k +1)=W (k ), j ≠i , l
j ⎩j
(3-5)
其中c 为正的校正增量,只要模式类在情况3判别函数时是可分的,则经过有限次迭代后算法收敛。
4感知器算法流程设计
5感知器算法程序
P= [0.4 0.5 0.6; 0.8 0.2 0.1]; %给定训练样本数据
T= [1 1 0]; %给定样本数据所对应的类别,用1表示二类水质,0表示一类水质
net=newp([0 1;0 1],1); %创建一个有两个输入、样本数据的取值范围都在[0,1]之间,并且网络只有一个神经元的感知器神经网络
net.trainParam.epochs = 40; %设置网络的最大训练次数为40次
net=train(net,P,T); %使用训练函数对创建的网络进行训练
Y=sim(net,P) %对训练后的网络进行仿真
E1=mae(Y-T) %计算网络的平均绝对误差,表示网络错误分类
Q=[0.6 0.9 0.4; 0.1 0.3 0.5 ]; %检测训练好的神经网络的性能
Y1=sim(net,Q) %对网络进行仿真,仿真输出即为分类的结果
figure; %创建一个新的绘图窗口 plotpv(Q,Y1); %在坐标图中绘制测试数据 plotpc(net.iw{1},net.b{1}) %在坐标图中绘制分类
6程序仿真及结果分析
从上可知,网络错误分类为0,输出三个数据中一个是一类水质,两个是二类水质。
从上图中可以看出直线上为二类水质,直线下为一类水质。
7结论
感知器算法是一种很好的二分类在线算法。在解决线性可分问题时, 感知器 具有运算速度快, 性能可靠的优点。同时理解感知器的工作原理, 可以为我们更好的理解其它复杂的神经网络模型奠定基础。本次设计将matlab 知识运用到其中,对本门课程有很好的帮助。
8参考文献
1模式识别导论 齐敏、李大健著 , 清华大学出版社
2模式识别与智能计算 杨淑莹著 电子工业出版社
3模式识别与智能计算机的matlab 实现 贾瑛编 北京航空航天大学出版社