- 312
- 0
- 约4.21千字
- 约 8页
- 2017-01-28 发布于重庆
- 举报
哈工大模式识别实验报告.
模式识别实验报告
本次报告选做第一个实验,实验报告如下:
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是样本的特征)
样
本 第一类 第二类 X1 X2 X3 X1 X2 X3 1 1.58 2.32 -5.8 0.21 0.03 -2.21 2 0.67 1.58 -4.78 0.37 0.28 -1.8 3 1.04 1.01 -3.63 0.18 1.22 0.16 4 -1.49 2.18 -3.39 -0.24 0.93 -1.01 5 -0.41 1.21 -4.73 -1.18 0.39 -0.39 6 1.39 3.16 2.87 0.74 0.96 -1.16 7 1.20 1.40 -1.89 -0.38 1.94 -0.48 8 -0.92 1.44 -3.22 0.02 0.72 -0.17 9 0.45 1.33 -4.38 0.44 1.31 -0.14 10 -0.76 0.84 -1.96 0.46 1.49 0.68 2 BP网络的构建
三层前馈神经网络示意图,见图1.
图1 三层前馈神经网络
①网络初始化,用一组随机数对网络赋初始权值,设置学习步长?、允许误差?、网络结构(即网络层数L和每层节点数nl);
②为网络提供一组学习样本;
③对每个学习样本p循环
a.逐层正向计算网络各节点的输入和输出;
b.计算第p个样本的输出的误差Ep和网络的总误差E;
c.当E小于允许误差?或者达到指定的迭代次数时,学习过程结束,否则,进行误差反向传播。
d.反向逐层计算网络各节点误差
如果取为S型函数,即,则
对于输出层
对于隐含层
e.修正网络连接权值
式中,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.696
原创力文档

文档评论(0)