利用matlab仿真的BPANN分类器设计.docx
- 文档编号:28847144
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:27
- 大小:333.67KB
利用matlab仿真的BPANN分类器设计.docx
《利用matlab仿真的BPANN分类器设计.docx》由会员分享,可在线阅读,更多相关《利用matlab仿真的BPANN分类器设计.docx(27页珍藏版)》请在冰豆网上搜索。
利用matlab仿真的BPANN分类器设计
BP-ANN分类器设计
1.引言
从深层意义上看,模式识别和人工智能本质都是在解决如何让用机器模拟人脑认知的过程。
一方面,从需要实现的功能出发,我们可以将目标分解为子功能,采用自定而下的的分解法实现我们需要的拟合算法。
而另一方面,无论人脑多么复杂,人类的认知过程都可以认为若干个神经元组成的神经网络在一定机制下经由复杂映射产生的结果。
从神经元的基本功能出发,采用自下而上的设计方法,从简单到复杂,也是实现拟合算法的一条高效途径。
1.1什么是人工神经网络
人工神经网络(ArtificialNeuralNetwork,ANN)是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。
在工程与学术界也常直接简称为神经网络或类神经网络。
神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。
每个节点代表一种特定的输出函数,称为激励函数(activationfunction)。
每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。
网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。
而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
人工神经网络是由大量处理单元互联组成的非线性、自适应信息处理系统。
它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。
人工神经网络具有四个基本特征:
(1)非线性非线性关系是自然界的普遍特性。
大脑的智慧就是一种非线性现象。
人工神经元处于激活或抑制二种不同的状态,这种行为在数学上表现为一种非线性关系。
具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量。
(2)非局限性一个神经网络通常由多个神经元广泛连接而成。
一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定。
通过单元之间的大量连接模拟大脑的非局限性。
联想记忆是非局限性的典型例子。
(3)非常定性人工神经网络具有自适应、自组织、自学习能力。
神经网络不但处理的信息可以有各种变化,而且在处理信息的同时,非线性动力系统本身也在不断变化。
经常采用迭代过程描写动力系统的演化过程。
(4)非凸性一个系统的演化方向,在一定条件下将取决于某个特定的状态函数。
例如能量函数,它的极值相应于系统比较稳定的状态。
非凸性是指这种函数有多个极值,故系统具有多个较稳定的平衡态,这将导致系统演化的多样性。
1.2BP-ANN的优缺点
BP-ANN的优点,主要表现在三个方面:
第一,具有自学习功能。
网络能通过学习带正确答案的实例集自动提取“合理的”求解规则,即具有自学习能力。
自学习功能对于预测有特别重要的意义。
预期未来的人工神经网络计算机将为人类提供经济预测、市场预测、效益预测,其应用前途是很远大的。
例如实现图像识别时,只在先把许多不同的图像样板和对应的应识别的结果输入人工神经网络,网络就会通过自学习功能,慢慢学会识别类似的图像。
第二,具有联想存储功能。
用人工神经网络的反馈网络就可以实现这种联想。
第三,具有拟合任何网络的的能力。
网络实质上实现了一个从输入到输出的映射功能,而数学理论已证明它具有实现任何复杂非线性映射的功能。
这使得它特别适合于求解内部机制复杂的问题
。
BP-ANN的缺点,主要表现在以下几个方面:
第一,BP-ANN算法的学习速度很慢。
由于BP-ANN算法本质上为梯度下降法,而它所要优化的目标函数又非常复杂,因此,必然会出现“锯齿形现象”,这使得BP-ANN算法低效;其次由于存在麻痹现象,由于优化的目标函数很复杂,它必然会在神经元输出接近0或1的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿;另外,为了使网络执行BP-ANN算法,不能用传统的一维搜索法求每次迭代的步长,而必须把步长的更新规则预先赋予网络,这种方法将引起算法低效。
第二,网络训练失败的可能性较大。
从数学角度看,BP-ANN算法为一种局部搜索的优化方法,但它要解决的问题为求解复杂非线性函数的全局极值,因此,算法很有可能陷入局部极值,使训练失败;网络的逼近、推广能力同学习样本的典型性密切相关,而从问题中选取典型样本实例组成训练集是一个很困难的问题。
第三,难以解决应用问题的实例规模和网络规模间的矛盾。
这涉及到网络容量的可能性与可行性的关系问题,即学习复杂性问题;
第四,网络结构的选择尚无一种统一而完整的理论指导,一般只能由经验选定。
为此,有人称神经网络的结构选择为一种艺术。
而网络的结构直接影响网络的逼近能力及推广性质。
因此,应用中如何选择合适的网络结构是一个重要的问题;
第五,新加入的样本要影响已学习成功的网络,而且刻画每个输入样本的特征的数目也必须相同。
第六,BP-ANN网络的预测能力(泛化能力)与训练能力(逼近能力、学习能力)的矛盾。
一般情况下,训练能力差时,预测能力也差,并且一定程度上,随训练能力地提高,预测能力也提高。
但这种趋势有一个极限,当达到此极限时,随训练能力的提高,预测能力反而下降,即出现所谓“过拟合”现象。
此时,网络学习了过多的样本细节,而不能反映样本内含的规律。
1.3人工神经网络当前的研究热点
1.神经网络与遗传算法的结合
这主要体现在以下几个方面:
网络连接权重的进化训练;网络结构的进化计算;网络结构和连接权重的同时进化;训练算法的进化设计。
基于进化计算的神经网络设计和实现已在众多领域得到应用,如模式识别、机器人控制、财政等,并取得了较传统神经网络更好的性能和结果。
但从总体上看,这方面研究还处于初期阶段,理论方法有待于完善规范,应用研究有待于加强提高。
神经网络与进化算法相结合的其他方式也有待于进一步研究和挖掘。
2.神经网络与灰色系统的结合
灰色系统理论是一门极有生命力的系统科学理论。
自1982年华中理工大学的邓聚龙教授提出灰色系统后迅速发展,以初步形成以灰色关联空间为基础的分析体系,以灰色模型为主体的模型体系,以灰色过程及其生存空间为基础与内的方法体系,以系统分析、建模、预测、决策、控制、评估为纲的技术体系。
目前,国内外对灰色系统的理论和应用研究已经广泛开展,受到学者的普遍关注。
灰色系统理论在在处理不确定性问题上有其独到之处,并能以系统的离散时序建立连续的时间模型,适合于解决无法用传统数字精确描述的复杂系统问题。
神经网络与灰色系统的结合方式有:
神经网络与灰色系统简单结合;串联型结合;用神经网络增强灰色系统;用灰色网络辅助构造神经网络;神经网络与灰色系统的完全融合。
3.神经网络与专家系统的结合
基于神经网络与专家系统的混合系统的基本出发点立足于将复杂系统分解成各种功能子系统模块,各功能子系统模块分别由神经网络或专家系统实现。
其研究的主要问题包括:
混合专家系统的结构框架和选择实现功能子系统方式的准则两方面。
由于该混合系统从根本上抛开了神经网络和专家系统的技术限制,是当前研究的热点。
把粗集神经网络专家系统用于医学诊断,表明其相对于传统方法的优越性。
4.神经网络与模糊逻辑的结合
模糊逻辑是一种处理不确定性、非线性问题的有力工具。
它比较适合于表达那些模糊或定性的知识,其推理方式比较类似于人的思维方式,这都是模糊逻辑的优点。
但它缺乏有效的自学习和自适应能力。
而将模糊逻辑与神经网络结合,则网络中的各个结点及所有参数均有明显的物理意义,因此这些参数的初值可以根据系统的模糊或定性的知识来加以确定,然后利用学习算法可以很快收敛到要求的输入输出关系,这是模糊神经网络比单纯的神经网络的优点所在。
同时,由于它具有神经网络的结构,因而参数的学习和调整比较容易,这是它比单纯的模糊逻辑系统的优点所在。
模糊神经网络控制已成为一种趋势,它能够提供更加有效的智能行为、学习能力、自适应特点、并行机制和高度灵活性,使其能够更成功地处理各种不确定的、复杂的、不精确的和近似的控制问题。
5.神经网络与小波分析的结合
小波变换是对Fourier分析方法的突破。
它不但在时域和频域同时具有良好的局部化性质,而且对低频信号在频域和对高频信号在时域里都有很好的分辨率,从而可以聚集到对象的任意细节。
利用小波变换的思想初始化小波网络,并对学习参数加以有效约束,采用通常的随机梯度法分别对一维分段函数、二维分段函数和实际系统中汽轮机压缩机的数据做了仿真试验,并与神经网络、小波分解的建模做了比较,说明了小波网络在非线性系统黑箱建模中的优越性。
小波神经网络用于机器人的控制,表明其具有更快的收敛速度和更好的非线性逼近能力。
1.4本文解决的问题
本文主要完成以下事情:
1.对给定的样本集进行预处理并将其随机分类为训练集和测试集;
2.使用训练集分别训练三层和四层BP-ANN神经网络;
3.使用测试集对已经获得的三层和四层神经网络的性能分别测试;
4.比较和分析两类神经网络的性能并得出结论。
2.BP人工神经网络算法
2.1BP-人工神经网络算法
BP算法包括两个方面:
信号的前向传播和误差的反向传播。
即计算实际输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。
图2-1BP网络结构
图中:
表示输入层第
个节点的输入,j=1,…,M;
表示隐含层第i个节点到输入层第j个节点之间的权值;
表示隐含层第i个节点的阈值;
表示隐含层的激励函数;
表示输出层第
个节点到隐含层第i个节点之间的权值,i=1,…,q;
表示输出层第k个节点的阈值,k=1,…,L;
表示输出层的激励函数;
表示输出层第
个节点的输出。
(1)信号的前向传播过程
隐含层第i个节点的输入neti:
(2-1)
隐含层第i个节点的输出yi:
(2-2)
输出层第k个节点的输入netk:
(2-2)
输出层第k个节点的输出ok:
(2-4)
(2)误差的反向传播过程
误差的反向传播,即首先由输出层开始逐层计算各层神经元的输出误差,然后根据误差梯度下降法来调节各层的权值和阈值,使修改后的网络的最终输出能接近期望值。
对于每一个样本p的二次型误差准则函数为Ep:
(2-5)
系统对P个训练样本的总误差准则函数为:
(2-6)
根据误差梯度下降法依次修正输出层权值的修正量Δwki,输出层阈值的修正量Δak,隐含层权值的修正量Δwij,隐含层阈值的修正量
。
;
;
;
(2-7)
输出层权值调整公式:
(2-8)
输出层阈值调整公式:
(2-9)
隐含层权值调整公式:
(2-10)
隐含层阈值调整公式:
(2-11)
又因为:
(2-12)
,
,
,
(2-12)
(2-14)
(2-15)
(2-16)
所以最后得到以下公式:
(2-17)
(2-18)
(2-19)
(2-20)
2.2BP算法的改进
2.2.1附加动量法
附加动量法使网络在修正其权值时,不仅考虑误差在梯度上的作用,而且考虑在误差曲面上变化趋势的影响。
在没有附加动量的作用下,网络可能陷入浅的局部极小值,利用附加动量的作用有可能滑过这些极小值。
该方法是在反向传播法的基础上在每一个权值(或阈值)的变化上加上一项正比于前次权值(或阈值)变化量的值,并根据反向传播法来产生新的权值(或阈值)变化。
带有附加动量因子的权值和阈值调节公式为:
其中k为训练次数,mc为动量因子,一般取0.95左右。
附加动量法的实质是将最后一次权值(或阈值)变化的影响,通过一个动量因子来传递。
当动量因子取值为零时,权值(或阈值)的变化仅是根据梯度下降法产生;当动量因子取值为1时,新的权值(或阈值)变化则是设置为最后一次权值(或阈值)的变化,而依梯度法产生的变化部分则被忽略掉了。
以此方式,当增加了动量项后,促使权值的调节向着误差曲面底部的平均方向变化,当网络权值进入误差曲面底部的平坦区时,i将变得很小,于是
从而防止了
的出现,有助于使网络从误差曲面的局部极小值中跳出。
根据附加动量法的设计原则,当修正的权值在误差中导致太大的增长结果时,新的权值应被取消而不被采用,并使动量作用停止下来,以使网络不进入较大误差曲面;当新的误差变化率对其旧值超过一个事先设定的最大误差变化率时,也得取消所计算的权值变化。
其最大误差变化率可以是任何大于或等于1的值。
典型的取值取1.04。
所以,在进行附加动量法的训练程序设计时,必须加进条件判断以正确使用其权值修正公式。
训练程序设计中采用动量法的判断条件为:
,E(k)为第k步误差平方和。
2.2.2自适应学习速率
对于一个特定的问题,要选择适当的学习速率不是一件容易的事情。
通常是凭经验或实验获取,但即使这样,对训练开始初期功效较好的学习速率,不见得对后来的训练合适。
为了解决这个问题,人们自然想到在训练过程中,自动调节学习速率。
通常调节学习速率的准则是:
检查权值是否真正降低了误差函数,如果确实如此,则说明所选学习速率小了,可以适当增加一个量;若不是这样,而产生了过调,那幺就应该减少学习速率的值。
下式给出了一个自适应学习速率的调整公式:
,E(k)为第k步误差平方和。
初始学习速率(0)的选取范围可以有很大的随意性。
2.2.3动量-自适应学习速率调整算法
当采用前述的动量法时,BP算法可以找到全局最优解,而当采用自适应学习速率时,BP算法可以缩短训练时间,采用这两种方法也可以用来训练神经网络,该方法称为动量-自适应学习速率调整算法。
3.实验流程
图3-1BP-ANN实验流程图
其中。
输出层定义[1]表示样本1,[0]表示样本2.。
每一层的连接权均为系统随机生成。
在每一次迭代中,对所有样本计算权值修正量求和,“try”修正量的修正系数step,当满足代价降低时,才利用权值修正量和权值修正系数对连接权进行修正。
隐层节点数为人工设定,当神经网络对测试集的测试正确率不再提高时,判定为最优测试性能。
实验迭代次数为500次。
训练样本和测试样本的维度都是2*105(2类,训练目标分别是1和0)。
4.实验结果与分析
4.1.样本归一化和隐层数对BP-ANN的影响
隐层节点数
2
3
4
5
6
7
8
9
10
非归一化样本
0.5524
0.4762
0.7810
0.7619
0.7524
0.7714
0.7333
0.7619
0.6952
归一化样本
0.6667
0.6857
0.6952
0.6571
0.6381
0.6381
0.6571
0.6381
0.6571
表4-1三层BPANN网络对归一化或非归一化样本
的分辨正确率随隐层节点数的变化
隐层节点数
2
3
4
5
6
7
8
9
10
非归一化样本
0.7524
0.7333
0.4762
0.7238
0.7238
0.7905
0.7333
0.7524
0.7905
归一化样本
0.5238
0.6857
0.9810
0.9810
0.9810
0.9810
0.9619
0.9810
0.9619
表4-2第一隐层节点数为6,四层BPANN网络对归一化或非归一化样本
的分辨正确率随第二隐层节点数的变化
由表4-1,可以得出两个个结论:
其一,归一化的样本随隐层节点数的波动不大,说明样本归一化能提高BP-ANN网络性能的稳定性,并且在节点数较小时就能达到较好的性能。
其二,在节点数相同时,未经处理的样本数据训练产生的BP-ANN分类性能可能更好,因此对于具体的样本数据应该具体分析。
由表4-2。
我们可以清楚的看出,归一化样本训练的BP-ANN对测试样本的分辨成功率明显提高,平均提高了20%。
综合表4-1和4-2.我们能够发现。
四层BP-ANN网络的综合性能明显好于三层的网络,这也从实验角度说明多层神经网络能够更好的拟合多维非线性映射问题。
同时,也应该注意到,归一化的样本对训练产生的BP-ANN网络随隐层节点数和隐层数均发生改变,总体来说,归一化训练样本在增加三层BP-ANN网络稳定性的同时降低了分辨能力,但对四层BP-ANN的各方面均产生积极影响。
4.2.隐层节点数对BP-ANN的影响
1st\2nd
2
3
4
5
6
7
8
9
10
2
0.5905
0.6095
0.8762
0.6381
0.6286
0.6381
0.6381
0.6857
0.6381
3
0.9143
0.7048
0.6381
0.6381
0.6857
0.6571
0.6762
0.9714
0.9619
4
0.9524
0.6857
0.7238
0.9143
0.6952
0.6857
0.9810
0.9714
0.9810
5
0.9714
0.8857
0.7143
0.9810
0.6571
0.9619
0.9810
0.9429
0.9810
6
0.5238
0.6857
0.9810
0.9810
0.9810
0.9810
0.9619
0.9810
0.9619
7
0.9810
0.6952
0.6857
0.9714
0.9714
0.9810
0.9810
0.9810
0.8190
8
0.9714
0.9810
0.9810
0.7810
0.9810
0.9810
0.9714
0.9619
0.9810
9
0.5238
0.6952
0.9714
0.7238
0.9810
0.9714
0.9810
0.9714
0.9714
10
0.8095
0.7333
0.8000
0.9810
0.9810
0.9810
0.9810
0.9810
0.9810
表4-34层BP-ANN网络的分辨正确率随隐层节点数表换
其中行标列表分别为第一第二隐层节点
由表4-3,我们可以得出结论。
合适的隐层节点数对于四层BP-ANN神经网络的性能有着较大的影响,如何在降低计算代价即减少节点数的情况下最大可能的提高网络的性能,是一个具体情况具体分析的命题。
过多的隐层节点并不一定能带来额外性能提高。
事实上,我们可以注意到,当第一第二隐层节点数分别为5、5的时候,BP-ANN对于测试样本的分类正确率就已经达到了最高98%。
当然,也不能否定,隐层节点数的增加对BP-ANN的稳定性有着积极的影响,即当有一部分神经网络错误工作时,仍能得到比较满意的分类性能。
4.3ANN-BP对测试样本的分辨能力
图4-1非归一化样本训练的三层BP-ANN网络(隐层节点为4)
对测试样本的分类(左图,红圈表示分类错误)和代价收敛曲线(右图)
图4-2归一化样本训练的三层BP-ANN网络(隐层节点为4)
对测试样本的分类(左图,红圈表示分类错误)和代价收敛曲线(右图)
图4-3非归一化样本训练的四层BP-ANN网络(第一、二隐层节点分别为5和5)
对测试样本的分类(左图,红圈表示分类错误)和代价收敛曲线(右图)
图4-4归一化样本训练的四层BP-ANN网络(第一、二隐层节点数分别为5,5)
对应测试样本的分类(左图,红圈表示分类错误)和代价收敛曲线(右图)
由图4-1和图4-2我们可以看到,非归一化样本训练的三层BP-ANN网络代价收敛速度快。
分类错误的点大量集中在边界点。
由图4-3和4-4我们可以观察到,归一化样本训练的四层BP-ANN网络收敛速度先先慢后快再慢,分类正确率高,105个样本最终只有3个样本分类错误,而其中交叉的“不干净”点得到了正确分类。
总结而言,收敛速度与初始值的设定、隐层数均相关。
但归一化样本训练四层BP-ANN达到了较好的分类效果,推广性和经验误差均表现优良。
5.实验结论
5.1神经网络中隐层数和节点数的讨论
一般认为,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低),提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。
一般来讲应设计神经网络应优先考虑2层网络(即有1个隐层)。
一般地,靠增加隐层节点数来获得较低的误差,其训练效果要比增加隐层数更容易实现。
对于没有隐层的神经网络模型,实际上就是一个线性或非线性(取决于输出层采用线性或非线性转换函数型式)回归模型。
因此,一般认为,应将不含隐层的网络模型归入回归分析中,技术已很成熟,没有必要在神经网络理论中再讨论之。
在BP-ANN网络中,隐层节点数的选择非常重要,它不仅对建立的神经网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因,但是目前理论上还没有一种科学的和普遍的确定方法。
目前多数文献中提出的确定隐层节点数的计算公式都是针对训练样本任意多的情况,而且多数是针对最不利的情况,一般工程实践中很难满足,不宜采用。
事实上,各种计算公式得到的隐层节点数有时相差几倍甚至上百倍。
为尽可能避免训练时出现“过拟合”现象,保证足够高的网络性能和泛化能力,确定隐层节点数的最基本原则是:
在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。
研究表明,隐层节点数不仅与输入/输出层的节点数有关,更与需解决的问题的复杂程度和转换函数的型式以及样本数据的特性等因素有关。
从本实验中,我们可以注意到,归一化样本训练四层BP-ANN,在隐层节点数均为5的时候取得较好的效果。
而比较三层BP-ANN的性能,也说明在实际运用中,具体问题具体分析,多测试的重要的。
查阅资料知,在确定隐层节点数时必须满足下列条件:
(1)隐层节点数必须小于N-1(其中N为训练样本数),否则,网络模型的系统误差与训练样本的特性无关而趋于零,即建立的网络模型没有泛化能力,也没有任何实用价值。
同理可推得:
输入层的节点数(变量数)必须小于N-1。
(2)训练样本数必须多于网络模型的连接权数,一般为2~10倍,否则,样本必须分成几部分并采用“轮流训练”的方法才可能得到可靠的神经网络模型。
总之,若隐层节点数太少,网络可能根本不能训练或网络性能很差;若隐层节点数太多,虽然可使网络的系统误差减小,但一方面使网络训练时间延长,另一方面,训练容易陷入局部极小点而得不到最优点,也是训练时出现“过拟合”的内在原因。
因此,合理隐层节点数应在综合考虑网络结构复杂程度和误差大小的情况下用节点删除法和扩张法确定。
5.2归一化与非归一化样本数据的问题
本实验结果说明,无论样本是否归一化,四层BP-ANN网络的综合性能明显好于三层的网络。
但归一化的样本对训练产生的BP-ANN网络随隐层节点数和隐层数均发生改变,总体来说,归一化训练样本在增加三层BP-ANN网络稳定性的同时降低了分辨能力,但对四层BP-ANN的各方面均产生积极影响。
因此实际运用中,应该在计算消耗,隐层数与隐层节点数,网络的经验误差与推广性,对是否对样本数据归一化找到平衡。
附录1主函数
clc;
clearall;
%*************************************************************%
%获得数据
%***************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 matlab 仿真 BPANN 分类 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)