哈工大模式识别实验报告概论
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 学习误差实验参数表