BP神经网络.docx
- 文档编号:25973685
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:22
- 大小:338.88KB
BP神经网络.docx
《BP神经网络.docx》由会员分享,可在线阅读,更多相关《BP神经网络.docx(22页珍藏版)》请在冰豆网上搜索。
BP神经网络
HarbinInstituteofTechnology
实验报告
课程名称:
模式识别
院系:
电子与信息工程学院
姓名:
学号:
授课教师:
宿富林
哈尔滨工业大学
1实验目的
(1)掌握人工神经网络(artificialneutralnetwork,ANN)的基本原理、结构及用途;
(2)深入学习反向传播(backpropagation,BP)神经网络的信息传递与处理模型、基本算法及其在模式识别中的应用;
(3)构造不同样本修正算法的BP神经网络对实验数据根据要求进行分类,并对分类结果进行验证、分析。
2实验原理
2.1人工神经网络概述
人工神经网络(ArtificialNeuralNetworks,即ANN)是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型。
该模型以并行分布的处理能力、高容错性、智能化和自学习等能力为特征,将信息的加工和存储结合在一起,以其独特的知识表示方式和智能化的自适应学习能力,引起各学科领域的关注。
它实际上是一个有大量简单元件相互连接而成的复杂网络,具有高度的非线性,能够进行复杂的逻辑操作和非线性关系实现的系统。
2.2人工神经网络的特点
神经网络模型用于模拟人脑神经元的活动过程,其中包括对信息的加工、处理、存储、和搜索等过程。
人工神经网络具有如下基本特点:
(1)高度的并行性;
(2)高度的非线性全局作用;
(3)联想记忆功能和良好的容错性;
(4)良好的自适应、自学习功能;
(5)知识的分布存储。
人工神经网络是一种旨在模仿人脑结构及其功能的信息处理系统。
因此,它在功能上具有某些智能特点:
(1)联想记忆功能;
(2)分类与识别功能;
(3)优化计算功能;
(4)非线性映射功能。
正是神经网络所具有的这种学习和适应能力、自组织、非线性和运算高度并行的能力,解决了传统人工智能对于直觉处理方面的缺陷,例如对非结构化信息、语音模式识别等的处理,使之成功应用于神经专家系统、组合优化、智能控制、预测、模式识别等领域。
2.3人工神经网络的组织结构
神经元
1. 生物神经元的结构:
神经细胞是构成神经系统的基本单元,称之为生物神经元,简称神经元,主要由四部分组成:
胞体、轴突、树突和突触。
典型神经元结构如图1所示。
图1生物神经元结构
神经元的信息传递和处理是一种电化学活动。
树突由于电化学作用接受外界的刺激,通过胞体内的活动体现为轴突电位,当轴突电位达到一定的值则形成神经脉冲或动作电位;再通过轴突末梢传递给其它的神经元。
神经元的功能特性:
(1)时空整合功能;
(2)神经元的动态极化性;(3)兴奋与抑制状态;(4)结构的可塑性;(5)脉冲与电位信号的转换;(6)突触延期和不应期;(7)学习、遗忘和疲劳。
2.人工神经元的结构:
神经元是构成神经网络的最基本单元(构件)。
它是一个多输入单输出的信息处理单元,而且,它对信息的处理是非线性的。
一个n输入的神经元模型如图2所示。
图2人工神经元模型
神经元的输出表示为:
(2-1)
其中,神经元的输入向量表示为
;神经元的权值向量表示为
;神经元的阀值为
;神经元的传递函数为
;神经元的输出为
。
激活函数
在神经网络中,网络解决问题的能力与效率除了与网络结构有关外,在很大程度上取决于网络所采用的激活函数。
激活函数的选择对网络的收敛速度有较大的影响,针对不同的实际问题,激活函数的选择也应不同。
通常我们会选取有界的、分段可微的函数作激活函数,常用的激活函数有以下几种形式:
(1)阈值函数:
该函数通常也称为阶跃函数。
当激活函数采用阶跃函数时,人工神经元模型即MP模型。
此时神经元的输出取1或0,反应了神经元的兴奋或抑制。
(2)线性函数:
该函数可以在输出结果为任意值时作为输出神经元的激活函数,但是当网络复杂时,线性激活函数大大降低网络的收敛性,故一般较少采用。
(3)对数S形函数:
对数S形函数的输出介于0~1之间,常被要求为输出在0~1范围的信号选用。
它是神经元中使用最为广泛的激活函数。
(4)双曲正切S形函数:
双曲正切S形函数类似于被平滑的阶跃函数,形状与对数S形函数相同,以原点对称,其输出介于-1~1之间,常常被要求为输出在-1~1范围的信号选用。
本次试验选取S型(Sigmoid)函数,如图3中,图(a)和图(b)。
Sigmoid函数的特性:
1)非线性,单调性。
2)无限次可微。
3)当权值很大时可近似阈值函数。
当权值很小时可近似线性函数。
(a)(b)
图3人工神经网络激活函数示意图
学习规则
神经网络的学习规则是修正权值的一种算法,分为联想式和非联想式学习,有监督学习和无监督学习等。
下面介绍几个常用的学习规则。
(1)误差修正型规则:
是一种有监督的学习方法,根据实际输出和期望输出的误差进行网络连接权值的修正,最终网络误差小于目标函数达到预期结果。
误差修正法,权值的调整与网络的输出误差有关,它包括δ学习规则、Widrow-Hoff学习规则、感知器学习规则和误差反向传播的BP(BackPropagation)学习规则等。
(2)竞争型规则:
无监督学习过程,网络仅根据提供的一些学习样本进行自组织学习,没有期望输出,通过神经元相互竞争对外界刺激模式响应的权利进行网络权值的调整来适应输入的样本数据。
对于无监督学习的情况,事先不给定标准样本,直接将网络置于“环境”之中,学习(训练)阶段与应用(工作)阶段成为一体。
(3)Hebb型规则:
利用神经元之间的活化值(激活值)来反映它们之间联接性的变化,即根据相互连接的神经元之间的活化值(激活值)来修正其权值。
在Hebb学习规则中,学习信号简单地等于神经元的输出。
Hebb学习规则代表一种纯前馈﹑无导师学习。
该学习规则至今在各种神经网络模型中起着重要作用。
典型的应用如利用Hebb规则训练线性联想器的权矩阵。
(4)随机型规则:
在学习过程中结合了随机、概率论和能量函数的思想,根据目标函数(即网络输出均方差)的变化调整网络的参数,最终使网络目标函数达到收敛值。
神经元之间的连接形式
单独的人工神经元不能独自处理输入信号,神经网络是一个复杂的互连系统,单元之间的互连模式将对网络的性质和功能产生重要影响,互连模式种类繁多。
典型的神经网络结构可以分为以下两类:
前馈型神经网络和反馈型神经网络。
1.前馈型神经网络(前向网络):
网络可以分为若干“层”,各层按信号传输先后顺序依次排列,。
第i层的神经元只接受第(i-1)层神经元给出的信号,各神经元之间没有反馈。
前馈型网络可用一有向无环路图表示,如图4所示。
图4前馈神经网络结构示意图
可以看出,输入节点并无计算功能,只是为了表征输入矢量各元素值。
各层节点表示具有计算功能的神经元,称为计算单元。
每个计算单元可以有任意个输入,但只有一个输出,它可送到多个节点作输入。
称输入节点层为第零层。
计算单元的各节点层从下至上依次称为第1至第N层,由此构成N层前向网络。
第一节点层与输出节点统称为“可见层”,而其他中间层则称为隐含层(hiddenlayer),这些神经元称为隐节点。
从控制的观点看,前馈型神经网络的用途主要体现在它的非线性的映射关系能被用来实现非线性系统的建模、辨别和控制。
最为典型的是BP神经网络。
2.反馈型神经网络:
典型的反馈型神经网络如图5(a)所示。
在反馈网络中每个节点都表示一个计算单元,同时接受外加输入和其它各节点的反馈输入,每个节点也都直接向外部输出。
在某些反馈网络中,各神经元除接受外加输入与其它各节点反馈输入之外,还包括自身反馈。
有时,反馈型神经网络也可表示为一张完全的无向图,如图5(b)。
图中,每一个连接都是双向的。
这里,第i个神经元对于第j个神经元的反馈与第j至i神经元反馈之突触权重相等。
反馈型神经网络的机构相比前馈型神经网络的结构要复杂得多,Hopfield神经网络和Elman神经网络是典型的反馈型神经网络。
(a)(b)
图5反馈型神经网络结构示意图
以上介绍了两种最基本的人工神经网络结构,实际上,人工神经网络还有许多种连接形式,例如,从输出层到输入层有反馈的前向网络,同层内或异层间有相互反馈的多层网络等等。
2.4BP神经网络模型
BP神经网络(Back-PropagationNeuralNetwork)是一种多层前馈网络,在模式分类、预测等方面有较广泛的应用,是现今最流行的神经网络之一。
Rumelhart,McClelland和他们的同事在1982年成立了PDP小组,研究并行分布信息处理方法。
1985年发展了BP网络,系统地解决了多层神经元网络中隐含层连接权的学习问题,并且在数学方面提出了完整的推导。
BP网络结构
BP神经网络是误差反向传播的有三层或者三层以上神经元的前馈型神经网络,即网络在输入层和输出层之间有一层或者多层隐含神经元。
BP算法又称为“误差反向传播算法”,它的具体过程由两部分组成一一信号的正向传播和误差的反向传播。
正向传播时,输入样本从输入层传入,经过中间层处理之后向输出层传播。
如果输出层与期望的输出不符合时,要将输出误差经过中间层逐层反传到输入层,把误差分配给各层所有的神经元,并把此作为依据对所有神经元的权值进行修正。
最基本的BP网络是三层前馈网络——输入层、隐含层和输出层,每层由很多并行运算的简单神经元组成,网络的层与层之间使用全互连方式,层内部神经元之间无连接,BP神经网络的网络结构可以用图3的形式来描述。
图6典型的BP网络结构图
因为误差反向传播过程中会对传递函数进行求导计算,所以要求BP网络的传递函数必须是可微的,比如Sigmoid型的对数、正切函数或线性函数都是常用的传递函数。
由此,BP网络所划分的区域就是一个非线性超平面组成的区域[2],而不再是一个线性划分,它是比较平滑的曲面,分类比线性划分更加精确,容错性也比线性划分更好;另外,网络可以严格采用梯度下降法进行学习,权值修正的解析式非常明确。
反向传播算法(BP算法)
以结构最简单的基本感知器说明实验中实际应用的反向传播算法基本理论。
感知器是一种双层神经网络模型,一层为输入层,另一层具有计算单元,可以通过监督学习建立模型判别的能力,如图4所示。
图7感知器模型示意图
当感知器用于模式识别时,可以用每个输入节点表示样本的特征向量,每个输出节点可以用来表示类别属性,例如:
若
时,应使对应于该类的输出节点的输出
=1,而其他节点的输出则为
=0(或-1)。
感知器的学习过程与求取线性判别函数的过程是等价的,需要指出的是:
两层感知器只能用于解决线性可分问题,且学习过程收敛很快,且与初始值无关。
任何逻辑函数都可以化为析取形式,所以任何逻辑函数都可用一个三层的前馈网络实现。
在很宽松的条件下,三层前馈网络可以逼近任意的多元非线性函数,突破了二层前馈网络线性可分的限制。
三层前馈网络的适用范围大大超过二层前馈网络,但学习算法较为复杂,主要困难是中间的隐含层不直接与外界连接,无法直接计算其误差。
BP算法可解决这一问题,主要思想:
从后向前(反向)逐层传播输出层的误差,以间接算出隐含层误差。
算法分为两个阶段:
第一阶段(正向过程),输入信息从输入层经隐含层逐层计算各单元的输出值;第二阶段(反向传播过程),输出误差逐层向前算出隐含层各单元的误差,并用此误差修正前层权值。
在反向传播算法中通常采用梯度法修正权值,为此要求输出函数可微,通常采用Sigmoid函数作为输出函数。
不失普遍性,我们研究处于某一层的第
个计算单元,脚标
代表其前层第
个单元,脚标
代表后层第
个单元,
代表本层输出,
是前层到本层的权值,如图5所示。
图8反向传播算法结构示意
当输入某个样本时,从前到后对每个单元作如下计算(正向算法)
(2-2)
(2-3)
对于输出层而言,
是实际输出值,
是理想输出值,此样本下的误差为:
(2-4)
为了使式子简化,定义局部梯度
(2-5)
如果节点j是输出单元,则
(2-6)
如果节点j不是输出单元,则
(2-7)
实际计算时,为了加快收敛速度,一般要加上前次权值修正量,称为惯性量:
(2-8)
则修正权值为:
(2-9)
BP算法解决了隐含层权值修正问题,但它是用梯度法求非线性函数极值,因而可能陷入局部极小点,不能保证收敛到全局极小点。
另外,三层以上的前馈网络使用反向传播算法时,如果权值初始值都为0或者相同,隐含层各单元不能出现差异,运算不能正常运行。
因此通常使用较小的随机数作为权值初始值。
初始值对收敛有影响,当计算不收敛时,可以改变初始值试算。
BP神经网络的设计步骤
图9神经网络设计流程图
输入层和输出层的设计
输入神经元的数量要根据需要求解的问题和数据表示形式来确定[12]。
根据不同需要,输入输出变量的表示方式也不尽相同。
若输入变量是模拟信号,则输入层可以用一个表示为采样的时间序列单元作为输入,也可以根据波形的采样点数目来确定输入单元的维数;若输入是图像,则输入变量可以是图像的特征,比如图像的像素等。
网络功能目标的实现需要通过输出变量来体现,可以直观地展现出来,比如分类问题的类别等等。
网络隐含层层数的设计
BP神经网络的隐含层节点数对BP神经网络预测精度有较大影响:
节点数太少,网络不能很好地学习,需要增加训练次数,训练精度也受影响;节点数太多,训练时间增加,网络容易过拟合。
最佳隐含层节点数选择可参考如下公式:
(2-10)
(2-11)
(2-12)
式中,
为输入层节点数;
为隐含层节点数;
为输出层节点数;
为0-10之间的常数。
在实际问题中,隐含层节点数的选择首先是参考公式来确定节点数的大概范围,然后用试凑法确定最佳的节点数。
初始加权的选取
前馈型神经网络在训练之前必须对权值和阈值进行初始化。
神经网络系统是非线性的,初始值的选择直接影响网络的学习是否能够实现收敛,即达到局部最小化,而且训练时间及预测时间也与其有关。
为了保证每个神经元的权值都能够在其激活函数变化幅度大的地方进行调节,我们尽量使得经过初始加权后的每个神经元的输入值接近为零。
所以通常会取(-1,1)之间的随机数作初始加权,同样,为了使比较大的输入值能落在传递函数梯度值大的地方,又需要对输入样本进行归一化处理。
学习率的选取
神经网学习过程中产生的权值变化量取决于学习率。
学习率过小,收敛速度可能会慢,训练的时间也可能比较长。
学习率过大,算法可能震荡而不稳定。
由此,一般情况下,为了保证系统的稳定性通常选择比较小的学习率,一般选择的范围在0.01-1之间。
3实验内容
用表1数据完成以下实验:
采用多输入多输出型结构,构造三层神经网络,训练它用来将表中的三类样本分开。
(1)给出训练结束时的各网络的各节点权值。
给出网络迭代终止时实际的迭代次数及总误差和错误率。
设隐层节点数为4,学习效率η=0.1,惯性系数α=0.0;训练控制总的迭代次数N=100000;训练控制误差:
e=0.3。
在采用0~1内均匀分布随机数初始化所有权值。
(2)分析学习效率η,惯性系数α;总的迭代次数N;训练控制误差e、初始化权值以及隐层节点数对网络性能的影响。
要求绘出学习曲线----训练误差与迭代次数的关系曲线。
并将得到的网络对训练样本分类,给出错误率。
(3)采用批处理BP算法重复
(1)。
比较两者结果。
表格1神经网络用于模式识别数据(X1、X2、X3是样本的特征
样本
第一类
第二类
第三类
X1
X2
X3
X1
X2
X3
X1
X2
X3
1
1.58
2.32
-5.8
0.21
0.03
-2.21
-1.54
1.17
0.64
2
0.67
1.58
-4.78
0.37
0.28
-1.8
5.41
3.45
-1.33
3
1.04
1.01
-3.63
0.18
1.22
0.16
1.55
0.99
2.69
4
-1.49
2.18
-3.39
-0.24
0.93
-1.01
1.86
3.19
1.51
5
-0.41
1.21
-4.73
-1.18
0.39
-0.39
1.68
1.79
-0.87
6
1.39
3.16
2.87
0.74
0.96
-1.16
3.51
-0.22
-1.39
7
1.20
1.40
-1.89
-0.38
1.94
-0.48
1.40
-0.44
0.92
8
-0.92
1.44
-3.22
0.02
0.72
-0.17
0.44
0.83
1.97
9
0.45
1.33
-4.38
0.44
1.31
-0.14
0.25
0.68
-0.99
10
-0.76
0.84
-1.96
0.46
1.49
0.68
-0.66
-0.45
0.08
本实验应用MATLAB软件平台对给出的三组实验数据应用不同样本修正算法的BP神经网络进行分类,并对实验结果进行分析比较。
4实验结果
4.1本次实验对误差的判定标准
本次实验对于迭代循环时,使用的误差标准为:
当20个样本误差都小于0.1时,跳出循环,结束迭代;否则,每次迭代20个结果中有至少一个结果大于0.1时,则继续循环迭代,直至所有20个样本的判定输出都大于0.1。
4.23-2-1型结构网络随机初始加权分类结果
1、各节点实际应用的权值公式详见本文2.5.2所示内容。
2、在0~1范围内初始化所有权值,并训练网络。
迭代终止时实际的迭代次数为:
10000;总平均误差为:
9.5703e-005;总误差为:
1.9141e-003。
其最后一次迭代的实际输出结果是:
表格2随机加权最后一次迭代输出结果与期望值
标号
1
2
3
4
5
6
7
8
9
10
输出值
0.7987
0.0138
0.1838
0.0528
0.4992
0.0142
0.4354
0.8387
0.8387
0.8387
期望值
0.9
0
0
0
0.9
0
0
0.9
0.9
0.9
标号
11
12
13
14
15
16
17
18
19
20
输出值
0.8387
0.0553
0.8387
0.8140
0.1027
0.6131
0.8387
0.0147
0.0192
0.0138
期望值
0.9
0
0.9
0.9
0
0.9
0.9
0
0
0
3、3-2-1结构网络随机初始加权分类误差学习曲线。
图103-2-1结构网络随机初始加权分类误差学习曲线
4.33-2-1型结构网络初始加权固定分类结果
1各个节点实际应用的权值公式详见本文2.5.2所示内容。
2权值在每一层上初始化为相同的值(所有输入到隐含层的权值初始化为0.5,所有隐含层到输出权值初始化为-0.5)。
迭代终止时实际的迭代次数为:
10000;总平均误差精为:
0.01948;总误差精度为:
0.3896。
其最后一次迭代的实际输出结果是:
表格3固定加权最后一次迭代输出结果与期望值
标号
1
2
3
4
5
6
7
8
9
10
输出值
0.5000
0.5000
0.2513
0.1974
0.1995
0.4543
0.4985
0.1974
0.1974
0.1974
期望值
0.9
0.9
0
0
0
0.9
0.9
0
0
0
标号
11
12
13
14
15
16
17
18
19
20
输出值
0.5000
0.2895
0.4591
0.1974
0.5000
0.1975
0.1974
0.3753
0.5000
0.1974
期望值
0.9
0.9
0.9
0
0.9
0
0
0.9
0.9
0
33-2-1结构网络固定初始加权分类误差学习曲线。
图113-2-1结构网络固定初始加权分类误差学习曲线
4对两个学习曲线的比较与分析:
从图7和图8分析得出,同样网络规模及结构下对同一样本进行分类,权值的初始值设定方式对分类结果的误差学习特性有较为明显的影响。
第一,这一实验的误差学习曲线图7和图8,固定初始加权的网络结构误差学习曲线收敛速度较随机初始加权的网络结构误差学习曲线收敛速度慢;第二,在趋向于最终的迭代次数时,固定初始加权的曲线误差值也比随机初始加权的曲线误差值大。
并且从最终统计的总误差来看,固定初始加权的最终总误差远远大于随机初始加权的误差,网络性能严重下降。
结合神经网络误差收敛理论,得出结论:
(1)神经网络初始加权对网络性能有影响;
(2)网络初始加权的设定,当其较为准确时,对网络的分类及预测性能有好的影响,而当初始加权设定不尽合理时,其反而可以降低网络的分类及预测性能。
4.43个3-1-1型结构网络固定初始加权分类结果
1、迭代结束时,网络各节点加权为:
表格4三个神经网迭代结束时的加权值
输入层-隐含层1
输入层-隐含层2
输入层-隐含层3
隐含层-输出层
第一个神经网
-11.8236
6.81661
-606451
-2.1758
第二个神经网
0.8875
-0.0940
-0.2535
-1.4482
第三个神经网
0.4794
-0.6341
1.4707
-16.0998
2、迭代结束时的总误差,迭代次数及学习曲线
理想输出设置如下:
表格5三个神经网理想输出设置
理想输出设置
第一个神经网
[0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
0.9;0.9;0.9;0.9;0.9;0.9;0.9;0.9;0.9;0.9;]
第二个神经网
[0;0;0;0;0;0;0;0;0;0;0.9;0.9;0.9;0.9;0.9;0.9;0.9;0.9;0.9;0.9;
0;0;0;0;0;0;0;0;0;0;]
第三个神经网
[0.9;0.9;0.9;0.9;0.9;0.9;0.9;0.9;0.9;0.9;
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;]
第一个神经网络(对第一类分类)迭代终止时实际的迭代次数为:
10000;总平均误差为:
0.0051965。
总误差为:
0.155895;
图12固定初始加权第一个神经网络分类误差学习曲线
第二个神经网络(对第二类分类)迭代终止时实际的迭代次数为:
10000;总平均误差为:
0.032471。
总误差为:
0.97413;
图13固定初始加权第二个神经网络分类误差学习曲线
第三个神经网络(对第三类分类)迭代终止时实际的迭代次数为:
10000;总平均误差为:
0.00073928。
总误差为:
0.0221784。
图14固定初始加权第三个神经网络分类误差
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BP 神经网络