模式识别系列实验指导书Word格式.docx

上传人:b****1 文档编号:887167 上传时间:2023-04-29 格式:DOCX 页数:19 大小:474.16KB
下载 相关 举报
模式识别系列实验指导书Word格式.docx_第1页
第1页 / 共19页
模式识别系列实验指导书Word格式.docx_第2页
第2页 / 共19页
模式识别系列实验指导书Word格式.docx_第3页
第3页 / 共19页
模式识别系列实验指导书Word格式.docx_第4页
第4页 / 共19页
模式识别系列实验指导书Word格式.docx_第5页
第5页 / 共19页
模式识别系列实验指导书Word格式.docx_第6页
第6页 / 共19页
模式识别系列实验指导书Word格式.docx_第7页
第7页 / 共19页
模式识别系列实验指导书Word格式.docx_第8页
第8页 / 共19页
模式识别系列实验指导书Word格式.docx_第9页
第9页 / 共19页
模式识别系列实验指导书Word格式.docx_第10页
第10页 / 共19页
模式识别系列实验指导书Word格式.docx_第11页
第11页 / 共19页
模式识别系列实验指导书Word格式.docx_第12页
第12页 / 共19页
模式识别系列实验指导书Word格式.docx_第13页
第13页 / 共19页
模式识别系列实验指导书Word格式.docx_第14页
第14页 / 共19页
模式识别系列实验指导书Word格式.docx_第15页
第15页 / 共19页
模式识别系列实验指导书Word格式.docx_第16页
第16页 / 共19页
模式识别系列实验指导书Word格式.docx_第17页
第17页 / 共19页
模式识别系列实验指导书Word格式.docx_第18页
第18页 / 共19页
模式识别系列实验指导书Word格式.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

模式识别系列实验指导书Word格式.docx

《模式识别系列实验指导书Word格式.docx》由会员分享,可在线阅读,更多相关《模式识别系列实验指导书Word格式.docx(19页珍藏版)》请在冰点文库上搜索。

模式识别系列实验指导书Word格式.docx

分级聚类实验

4

提高

基于非参数核密度估计的行人分割

查阅文献,编程实现

5

基于贝叶斯理论的显著性目标检测

实验考核:

采用实验操作与实验报告综合评分

实验一感知器学习与分类实验

实验目的:

1.理解感知器的原理和网络结构

2.掌握感知器的学习规则

3.熟悉Matlab软件环境和神经网络工具模块

4.锻炼算法设计编程与上机调试能力

实验要求:

一、对实验过程的要求:

编程实现w1,w2类以及w2,w3类的分类

w1=[.16.8-3.52.04.13.1-0.80.95.03.9;

1.17.1-4.12.72.85.0-1.31.26.44.0];

w2=[7.1-1.44.56.34.21.42.42.58.44.1;

4.2-4.30.01.61.9-3.2-4.0-6.13.7-2.2];

w3=[-3.00.52.9-0.1-0.4-1.3-3.41-5.11.9;

-2.98.72.15.22.23.76.23.41.65.1];

w4=[-2.0-8.9-4.2-8.5-6.7-0.5-6.7-8.7-7.1-9.0;

-8.40.2-7.7-3.2-4.0-9.2-6.7-6.4-9.7-6.3]

二、回答以下问题:

1)从a=0开始,将你的程序应用在ω1和ω2的训练数据上。

记下收敛的步数。

2)将你的程序应用在ω2和ω3类上,同样记下收敛的步数。

3)试解释它们收敛步数的差别。

4)提高部分:

ω3和ω4的前5个点不是线性可分的,请手工构造非线性映射,使这些点在映射后的特征空间中是线性可分的,并对它们训练一个感知器分类器。

分析这个分类器对剩下的(变换后的)点分类效果如何?

实验环境:

PC机、WindowsXP操作系统、Matlab软件,利用Matlab自带的神经网络工具包,实现用感知器对二维样本的分类。

实验原理:

感知器是由美国计算机科学家Rosenblatt于1957年提出的。

感知器可谓是最早的人工神经网络。

单层感知器是一个具有一层神经元、采用阈值激活函数的前向网络。

通过对网络权值的训练,可以使感知器对一组输入向量的响应达到元素为0或1的目标输出。

从而实现对输入向量分类的目的。

图1给出了单层感知器神经元模型图。

(本实验输入为二维向量)

图1感知器神经元模型

其中,每一个输入分量通过一个权值分量进行加权求和,并作为阈值函数的输入。

偏差的加入使得网络多了一个可调参数,为使网络输出达到期望的目标向量提供了方便。

感知器特别适合解决简单的模式分类问题。

由感知器的网络结构,我们可以看出感知器的基本功能是将输入向量转化成0或l的输出。

这一功能可以通过在输入向量空间里的作图来加以解释。

感知器权值的调整目的,就是根据学习法则设计一条轨迹,使所有的输入向量都能达到期望位置的划分。

对于一个n维的输入向量来说,这个轨迹为一个n-1维的超平面,在这个超平面以上的输入向量将产生一个值为1的输出,而在这个超平面以下的输入向量将产生一个值为0的输出。

在MATLAB中,感知器的训练及学习法则都已经被编成了一个子程序并被集成在神经网络工具箱中。

首先用newp函数创建感知器神经网络,再利用train函数创建神经网络,最后可以使用sim函数对训练后的网络进行仿真。

在Matlab神经网络工具箱中,可以用plotpc函数绘制R<

=3感知器神经网络的分类线。

实验设计:

1.对于线性可分问题:

分类1

P=[-0.5123;

2112];

T=[1100];

net=newp([-13;

-13]);

%建立网络

handle=plotpc(net.iw{1},net.b{1});

net.trainParam.epochs=10;

net=train(net,P,T);

%网络训练

figure;

plotpv(P,T);

handle=plotpc(net.iw{1},net.b{1},handle);

%画出分界线

分类2

P=[11.52346;

120.5210];

T=[110100];

net=newp([06;

06]);

net.trainParam.epochs=30;

分类3

P=[-2-112;

1.510.5-1];

T=[0011];

net=newp([-22;

-22]);

2.对于线性不可分问题:

P=[0.5123;

T=[0101];

%建立网络

net.trainParam.epochs=100;

%画出分界线

P=[1122;

1212];

T=[0110];

net=newp([12;

12]);

%建立网络

%画出分界线

P=[-1012;

2121];

T=[1001];

感知器的训练流程:

实验结果:

线性可分问题结果:

线性不可分问题结果:

表2实验结果统计

线性可分问题

线性不可分问题

P

[-0.5123;

2112]

[11.52346;

120.5210]

[-2-112;

1.510.5-1]

[0.5123;

2112

[1122;

1212]

[-1012;

2121]

T

[1100]

[110100]

[0011]

[0101]

[0110]

[1001]

分类结果

正确分类

错误分类

实验二BP网络学习与分类实验

1.理解BP网的网络结构;

2.掌握BP网的学习规则;

3.培养编程与上机调试能力;

4.熟悉Matlab软件环境;

一、对实验过程的要求

1.使用matlab软件设计BP网对尿沉渣图像样本进行模式识别

2.对待测尿沉渣图像进行分类

3.对分类结果进行统计分析

二、对实验报告的撰写要求(参见实验报告)

1.实验报告包含的内容有:

·

实验题目

实验环境(硬件环境、软件环境)

实验中遇到的问题及解决方案

PC机、WindowsXP操作系统、Matlab软件,利用Matlab自带的神经网络工具包

一个具有r个输入和一个隐含层的神经网络模型结构如图2所示。

图2具有一个隐含层的神经网络模型结构图

感知器和自适应线性元件的主要差别在激活函数上:

前者是二值型的,后者是线性的。

BP网络具有一层或多层隐含层,除了在多层网络上与前面已介绍过的模型有不同外,其主要差别也表现在激活函数上。

BP网络的激活函数必须是处处可微的,所以它就不能采用二值型的阈值函数{1,0}或符号函数(-1,1),BP网络经常使用的是S型的对数或正切激活函数和线性函数。

对于多层网络,这种激活函数所划分的区域不再是线性划分,而是由一个非线性的超平面组成的区域。

它是比较柔和、光滑的任意界面,因而它的分类比线性划分精确、合理、这种网络的容错性较好。

另外一个重要的特点是由于激活函数是连续可微的,它可以严格利用梯度法进行推算,它的权值修正的解析式十分明确,其算法被称为误差反向传播法,也简称BP算法,这种网络也因此而被称为BP网络。

因为S型函数具有非线性放大系数功能,它可以把输人从负无穷大到正无穷大的信号,变换成-l到l之间输出,对较大的输入信号,放大系数较小;

而对较小的输入信号,放大系数则较大,所以采用S型激活函数可以去处理和逼近非线性的输入输出关系。

不过,如果在输出层采用S型函数,输出则被限制到一个很小的范围了,若采用线性激活函数,则可使网络输出任何值。

所以只有当希望对网络的输出进行限制,如限制在0和1之间,那么在输出层应当包含S型激活函数,在一般情况下,均是在隐含层采用S型激活函数,而输出层采用线性激活函数。

在MATLAB工具箱中,上述计算均已编成函数的形式,通过简单的书写调用即可方便地获得结果。

具体有:

1)对于隐含层输出.若采用对数s型激活函数,则用函数logsig.m;

若采用双曲正切S型激活函数,则用函数tansig.m;

2)对于输出层输出,若采用线性激活函数有purelin.m与之对应;

3)对于误差函数,可用函数sumsqr.m求出;

4)有learnbp.m函数专门求输出层以及隐含层中权值与偏差的变化量。

1.本次实验中的样本从原图中所占比例较大的四类样本中获得,分别为:

红细胞(redcell),白细胞(leucocyte),盐结晶(crystal),杆菌(bacillus)。

将训练样本从尿沉渣图像中的红细胞(redcell),白细胞(leucocyte),盐结晶(crystal),杆菌(bacillus)手工分离出来并转化为灰度图像

2.在图像的分割及分类阶段中,我们共获得样本图像103个,将其中的83个作为训练样本,其余的20个作为测试分类样本。

训练样本及测试样本中的四类样本所占比例均大致相同。

3.我们将所有的样本图像都依次送入MATLAB,转化成32*32的二维矩阵,再将矩阵的每一列首尾相连,变成一列1024维的列向量,最后将训练用的列向量组合在一起,成为训练所用的数据矩阵。

并将该数据矩阵保存为matlab软件可以读取的.mat文件。

4.建立目标库,目标库共由83个4位列向量组成,每个列向量对应一个学习样本。

每一类样本所对应的目标向量是相同的,红细胞样本所对应的目标列向量为[1000]T,白细胞样本所对应的目标列向量为[0100]T,盐结晶样本所对应的目标列向量为[0010]T,杆菌样本所对应的目标列向量为[0001]T。

5.网络参数的选择:

由于系统是非线性的,初始值对于学习是否达到局部最小、是否能够收敛以及训练时间的长短的关系很大。

如果初始权值太大,使得加权后的输入落在了s型激活函数的饱和区,从而导致其导数非常小,使得调节过程几乎停顿下来。

所以,一般总是希望经过初始加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在它们的s型激活函数变化最大之处进行调节。

所以,一般取初始权值在(-1,1)之间的随机数。

另外,为了防止上述现象的发生,威得罗等人在分析了两层网络是如何对一个函数进行训练后,提出了一种选定初始权值的策略,利用他们的方法可以在较少的训练次数下得到满意的训练结果。

在MATLAB新版本的工具箱中再初始化隐含层权值时将自动进行优化。

其方法仅需要使用在第一隐含层的初始值的选取上,后面层的初始值仍然采用随机取数。

学习速率决定每一次循环训练中所产生的权值变化量。

大的学习速率可能导致系统的不稳定;

但小的学习速率导致较长的训练时间,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值。

所以在一般情况下.倾向于选取较小的学习速率以保证系统的稳定性。

学习速率的选取范围在0.01-0.8之间。

6.BP网络训练:

BP算法是由两部分组成,信息的正向传递与误差的反向传播。

在正向传播过程中,输入信息从输入经隐含层逐层计算传向输出层,每一层神经元的状态只影响下一层神经元的状态。

如果在输出层没有得到期望的输出,则计算输出层的误差变化值,然后转向反向传播,通过网络将误差信号沿原来的连接通路反传回来修改各层神经元的权值直至达到期望目标。

在Matlab中用trainbp函数可实现这一过程。

7.对待测样本进行分类并对结果进行统计分析

BP网络的训练流程:

图象样本转化方法和程序:

1.图象转化方法同实验一。

2.网络隐含层的选择:

1989年RobertHecht-Nielson曾经证明了当各节点具有不同的阈值时,具有一个隐层的网络就可以用来逼近任意连续函数。

然而由于其先决条件很难满足,很少被完整地使用。

通常对大多数的实际问题,往往不考虑这个先决条件,而取用一个隐层,即三层网络,就能完成大多数的非线性映射。

而对于隐层节点数的个数选择,并没有一个明确的理论,大多是通过经验确定,有这么几个经验公式来计算隐层节点数:

m:

隐层节点数n:

输入节点数o:

输出节点数a:

1-10之间的常数

m=sqrt(n+o)+a;

m=log2^n

m=sqrt(n*o)

在本次毕设实验中,样本为一个1024维的输入向量,输出为一个4维向量,由以上公式中求出隐层节点数,取其中最小的,将隐层节点数设为10个。

3.程序:

P=train2;

T=T1;

%将样本及目标矩阵赋给训练函数

%初始化

[R,Q]=size(P);

[S2,Q]=size(T);

S1=10;

P=normc(P);

%归一化

[W1,B1]=rands(S1,R);

[W2,B2]=rands(S2,S1);

%赋给权值矩阵以随机初始值

disp_fqre=50;

%设定显示频率

err_goal=0.02;

%设定希望误差最小值

lr=0.01;

%设定学习速率

max_epoch=80000;

%设定最大循环次数

TP=[disp_fqremax_epocherr_goallr];

%设定训练参数

[w1,B1,W2,B2,epochs,errors]=trainbp(W1,B1,'

tansig'

W2,B2,'

logsig'

P,T,TP)%开始训练

识别:

A1=tansig(w1*train3);

fori=1:

20

A1(:

i)=A1(:

i)+B1;

end

A2=logsig(W2*A1)

A2(:

i)=A2(:

i)+B2;

根据本实验所提供的实验样本矩阵,BP网络识别的准确率应该达到35%以上,但是由于没有对样本的冗余信息进行处理,所以网络识别的准确率也不回超过50%。

表4BP网的分类实验结果

条件一

条件二

条件三

平均

识别个数

8

9

8.7

样本总数

正确率

40%

45%

43.3%

实验三分级聚类实验

1.理解分级聚类的三种方法:

均值聚类、最小距离聚类、最大距离聚类

2.掌握这三种聚类方法的原理

3.任选一种编程实现

为了研究世界各国森林、草原资源的分布规律,共抽取了21个国家的数据,每个国家4项指标,原始数据见下表。

要求在Matlab或者VC环境下,使用该原始数据对国别进行聚类分析。

(提示:

聚类变量的测量尺度不同,在进行聚类之前,需要对数据进行标准化处理。

PC机、WindowsXP操作系统、Matlab软件

实验样本数据:

国别

森林面积

(万公顷)

森林覆盖率

(%)

林木蓄积量

(亿立方米)

草原面积

中国

11978

12.5

93.5

31908

美国

28446

30.4

202.0

23754

日本

2501

67.2

24.8

58

德国

1028

28.4

14.0

599

英国

210

8.6

1.5

1147

6

法国

1458

26.7

16.0

1288

7

意大利

635

21.1

3.6

514

加拿大

32613

32.7

192.8

2385

澳大利亚

10700

13.9

10.5

45190

10

前苏联

92000

41.1

841.5

37370

11

捷克

458

35.8

8.9

168

12

波兰

868

27.8

11.4

405

13

匈牙利

161

17.4

2.5

129

14

南斯拉夫

929

36.3

640

15

罗马尼亚

634

11.3

447

保加利亚

385

34.7

200

17

印度

6748

20.5

29.0

1200

18

印尼

2180

84.0

33.7

19

尼日利亚

1490

16.1

0.8

2090

墨西哥

4850

24.6

32.6

7450

21

巴西

57500

67.6

238.0

15900

实验四基于非参数核密度估计的行人分割

1.理解非参数核密度估记的基本内容

2.能用非参数核密度估计解决实际问题

按照课堂所讲PPT中要求,利用Matlab编程实现,非参数核密度估计分割出给定的行人目标。

实验五基于贝叶斯理论的显著性目标检测

1.理解贝叶斯理论的基本内容

2.能用贝叶斯理论解决实际问题

按照课堂所讲ppt,利用贝叶斯理论,编程实现显著性目标检测,完整分割出显著性目标。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2