哈工大模式识别实验报告概论

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

模式识别实验报告

本次报告选做第一个实验,实验报告如下:

1 实验要求

构造1个三层神经网络,输出节点数1个,即多输入单输出型结构,训练它用来将表中的第一类样本和第二类样本分开。

采用逐个样本修正的BP算法,设隐层节点数为4,学习效率η=0.1,惯性系数α=0.0;训练控制总的迭代次数N=100000;训练控制误差:e=0.3。在采用0~1内均匀分布随机数初始化所有权值。

对1)分析学习效率η,惯性系数α;总的迭代次数N;训练控制误差e、初始化权值以及隐层节点数对网络性能的影响。要求绘出学习曲线----训练误差与迭代次数的关系曲线。并将得到的网络对训练样本分类,给出错误率。

采用批处理BP算法重复1)。比较两者结果。

表1 神经网络用于模式识别数据(X1、X2、X3是样本的特征)

2 BP 网络的构建

三层前馈神经网络示意图,见图1.

图1 三层前馈神经网络

①网络初始化,用一组随机数对网络赋初始权值,设置学习步长η、允许误差ε、网络结构(即网络层数L 和每层节点数n l );

②为网络提供一组学习样本; ③对每个学习样本p 循环

a .逐层正向计算网络各节点的输入和输出;

b .计算第p 个样本的输出的误差Ep 和网络的总误差E ;

c .当E 小于允许误差ε或者达到指定的迭代次数时,学习过程结束,否则,进行误差反向传播。

d .反向逐层计算网络各节点误差)

(l jp δ

如果l f 取为S 型函数,即x

l e x f -+=

11

)(,则 对于输出层))(1()

()()()(l jp jdp l jp l jp l jp O y O O --=δ 对于隐含层∑+-=)1()()()()()1(l kj l jp l jp l jp l jp w O O δδ

e .修正网络连接权值

)

1()()()1(-+=+l ip l jp ij ij O k W k W ηδ

式中,k 为学习次数,η为学习因子。η取值越大,每次权值的改变越剧烈,可能导致学习过程振荡,因此,为了使学习因子的取值足够大,又不至产生振荡,通常在权值修正公式中加入一个附加动量法。

在BP中希望误差反向传递,有两种误差反向传递的方式:逐个样本与批处理。在BP算法。一种模式是在给神经网络每提供一组学习样本,就计算一次误差并调整权重系数,这种方法称逐个样本模式.另一种模式是给网络提供所有的样本数据学习完之后,再计算出误差,进而调整权重系数,这种方法称批处理模式.这两种模式各有各的特点.Rumelhart和McClelland假定在学习了全部样榜数据之后才修改权重系数.但是,逐个样本模式在系统辩识和实时控制系统中显得十分重要,因为实时控制中无法将所有模式学习完之后才进行权重系数调整.下面给出了两种算法的程序流程图,见图2.

因为只有两类样本,所以使用0代表第一类样本,使用1代表第二类样本,也就是使用0和1作为输出结果T。

对应的输出结果T=[0;0;0;0;0;0;0; 0; 0; 0;1;1;1;1;1;1;1;1;1;1]’;

通过算法流程图,使用计算机语言对于BP神经网络进行编程实验。

图2 算法程序图

3 BP网络参数设置比较

使用BP网络中的有动量的梯度下降法对于连接权值与阈值进行调整。在建立好网络之后,通过控制某些参数不变的情况下,调整某一个参数的变化,去实验模拟网络的好坏,通过经验的方式找到较好的训练参数,为今后模型的初始化提供可靠的参数。

3.1 网络评价标准

评价网络设计的好坏,首先是它的精度,其次是它的训练时间。训练时间包含两层:一层是循环次数,二是每一次循环的时间。本报告选用样本分类的错误率,迭代的次数与总的迭代时间,对于网络进行必要的评价。

3.2 初始权值的设置

初始权值的选取对于学习是否达到局部最小,是否能够收敛,以及训练的时间有很大的关系。初始权值的过大与过小,均会影响学习的速度,因此在报告中选用(0,1)之间随机分布的小数进行设置。具体的设置结果如图所示:inputWeights =

0.5857 0.2531 0.0688

0.1742 0.9171 0.1835

0.7286 0.7582 0.7371

0.5343 0.8870 0.6967

inputbias =

0.7770

0.5019

0.4255

0.6112

layerWeights =

0.8558 0.6708 0.5236 0.2988

layerbias =

0.7040

inputWeights为输入层与隐含层的连接权值的初始化;inputbias为隐含层的阈值;layerWeights为隐含层到输出层的连接权值;layerbias为输出层阈值的设置。

通过对于权值初始化的改变,观察网络的性能,具体见表2:

表2 权值实验参数表

权值范围(0,1)(-1,0)(0.5,1)(-1,-0.5)(0,0.5)(-0.5,0)

迭代次数177230500520250180

迭代时间112201

错误率055500

由实验可知,网络的性能以初始化的权值有很大的关系,初始值的好坏,直接影响迭代次数与网络的精度。并且可以初步猜想:初始权值的随机性能,对于网络的结果产生了直接的影响,后面的变量控制之后,网络所得结果也会出行随机波动的现象。为了产生稳定的结果,后面的操作将初始值进行固定化,取值在(0,1)之间的随机数。

3.3 学习速率η的选取

学习速率决定每一次循环训练所产生的权值变化量。学习速率高,系统可能不稳定;过低,训练时间长,不收敛。经验的话,一般取值在0.01~0.8之间。实验参数见表:

表3 学习速率实验参数表

学习速率0.010.050.10.20.70.8

迭代次数9302313734219210

迭代时间(S)310011

错误率(%)1510151550100

通过实验发现,随着学习速率的增加,迭代次数现减少后增加,错误率也是同样的变化趋势。推荐本报告的学习速率取值在0.1至0.2之间。

3.4 学习误差的选取

学习误差越小,样本训练的精度越高,但是迭代的次数与训练的时间会相应的增加。实验参数见表:

表4 学习误差实验参数表

相关文档
最新文档