神经网络基本知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
神经网络基本知识、BP神经网络
一.概述
1.1神经网络的定义
人工神经网络(Artificial Neural Networks,简写为 ANNs)是由大量类似于生物神经元的处理单元相互连接而成的非线性复杂网络系统。
它是用一定的简单的数学模型来对生物神经网络结构进行描述,并在一定的算法指导下,使其能够在某种程度上模拟生物神经网络所具有的智能行为,解决传统算法所不能胜任的智能信息处理的问题。
它是巨量信息并行处理和大规模并行计算的基础,神经网络既是高度非线性动力学系统,又是自组织自适应系统,可用来描述认知、决策和控制的智能行为。
1.2 神经网络的发展历史
对人工神经网络的研究始于 1943 年,经历 60 多年的发展,目前已经在许多工程研究领域得到了广泛应用。
但它并不是从一开始就倍受关注,它的发展道路曲折、几经兴衰,大致可以分为以下五个阶段:
①奠基阶段:1943 年,由心理学家 McCulloch 和数学家 Pitts 合作,提出第一个神经计算模型,简称 M-P 模型,开创了神经网络研究这一革命性的思想。
②第一次高潮阶段:20 世纪 50 年代末 60 年代初,该阶段基本上确立了从系统的角度研究人工神经网络。
1957 年 Rosenblatt 提出的感知器(Perceptron)模型,可以通过监督学习建立模式判别能力。
③坚持阶段:随着神经网络研究的深入开展,人们遇到了来自认识、应用实
现等方面的难题,一时难以解决。
神经网络的工作方式与当时占主要地位的、以数学离散符号推理为基本特征的人工智能大相径庭,但是更主要的原因是:当时的微电子技术无法为神经网络的研究提供有效的技术保证,使得在其后十几年内人们对神经网络的研究进入了一个低潮阶段。
④第二次高潮阶段:20 世纪 70 年代后期,由于神经网络研究者的突出成果,并且传统的人工智能理论和 Von.Neumann 型计算机在许多智能信息处理问题上遇到了挫折,而科学技术的发展又为人工神经网络的物质实现提供了基础,促使神经网络的研究进入了一个新的高潮阶段。
⑤快速发展阶段:自从对神经网络的研究进入第二次高潮以来,各种神经网
络模型相继提出,其应用已经很快渗透到计算机图像处理、语音处理、优化计
算、智能控制等领域,并取得了很大的发展。
综上所述,神经网络的研究虽然有起伏,出现了研究的高潮与低潮,但总的方向无疑还是正确的。
目前神经网络发展的重点是以应用为导向,研究和利用大脑神经网络的一些特性,设计出具有类似的某些大脑功能的智能系统。
神经网络正在蓬勃发展,其理论研究结果和应用范围一时还无法准确预料。
1.3 神经网络的特点
①具有高速信息处理的能力
神经网络是由大量的神经元广泛互连而成的系统,并行处理能力很强,因此具有高速信息处理的能力。
②神经网络的知识存储容量大
在神经网络中,知识与信息的存储表现为神经元之间分布式的物理联系。
它分散地表示和存储于整个网络内的各神经元及其连线上。
每个神经元及其连线只表示一部分信息,而不是一个完整具体概念。
只有通过各神经元的分布式综合效果才能表达出特定的概念和知识。
③具有很强的不确定性信息处理能力
由于神经网络中神经元个数众多以及整个网络存储信息容量的巨大,使得它具有很强的对不确定性信息的处理能力。
即使输入信息不完全、不准确或模糊不清,神经网络仍然能够联想思维存在于记忆中的事物的完整图像。
只要输入的模式接近于训练样本,系统就能给出正确的推理结论。
④具有很强的健壮性
正是因为神经网络的结构特点和其信息存储的分布式特点,使得它相对于其它的判断识别系统,如专家系统等,具有另一个显著的优点:健壮性。
生物神经网络不会因为个别神经元的损失而失去对原有模式的记忆。
因某些原因,无论是网络的硬件实现还是软件实现中的某个或某些神经元失效,整个网络仍然能继续工作。
⑤一种具有高度非线性的系统
神经网络同现行的计算机不同,是一种非线性的处理单元。
只有当神经元对所有的输入信号的综合处理结果超过某一阈值后才输出一个信号。
因此神经网络是一种具有高度非线性的系统。
它突破了传统的以线性处理为基础的数字电子计算机的局限,标志着人们智能信息处理能力和模拟人脑智能行为。
⑥十分强的自适应、自学习功能
人工神经网络可以通过训练和学习来获取网络的权值与结构,呈现出很强的自学习能力和对环境的自适应能力。
1.4 神经网络的应用
近年来,人工神经网络独特的结构和信息处理方法,使其在许多实际应用领 域中取得了显著的成绩。
神经网络的应用突出的领域有:
①模式识别。
如图像识别、语音识别、手写体识别等。
②信号处理。
包括特征提取、燥声抑制、统计预测、数据压缩、机器人视觉等。
③判释决策。
如模糊评判、市场分析、系统辩识、系统诊断、预测估值等。
1 ④组合优化。
包括旅行商问题、任务分配、排序问题、路由选择等。
⑤知识工程。
如知识表示、专家系统、自然语言处理和实时翻译系统等。
⑥复杂控制。
包括多变量自适应控制、变结构优化控制、并行分布控制、智能及
鲁棒控制等。
二.基本问题和分类
2.1神经元基本结构
人工神经网络是由大量简单的基本元件—神经元(neuron)相互连接而成的自适应非线性动态系统,神经元是神经网络的基本处理单元,它一般是一个多输入单输出的非线性动态系统,其结构模型如图2.1所示
图2.1神经元结构
其中,
i X 为神经元i 个神经元的输入信号,i W 为相应的突触强度或联结权值,()f •为激励函数,它是作用前面部分的加权和,O 为实际输出。
激励函数可取不同的函数,但常用的基本激励函数有三种,分别是阈值函 数(此时神经元的输出取1或0,反映了神经元的兴奋或抑制)、分段线性函数(这种形式的激励函数可看作是非线性放大器的近似)和 S 型(Sigmoid)函数, 它也
是人工神经网络中最常用的激励函数。
人们还在不断研究新的激励函数,如用广义同余函数作激励函数。
2.2基本术语概念
网络训练:要使网络模型实现某种功能,必须对它进行训练,让它逐步学会要做的事情,并把所学到的知识记忆在网络的权值中,人工神经网络的权值的确定不是通过计算,而是通过网络的自身训练来完成的。
调整权重类似于智能过程,网络最重要的信息存在于调整过的权重之中。
于是,神经网络的关键就在于如何决定每一神经元的权值。
网络学习:就是具体到了神经网络模型是怎么样确定最后的权重的,这就是学习的过程,相应的就有很多学习准则(方法),往往网络的训练和网络的学习是放在一起讲的,都是通过样本集最后到确定好权重在模型中,以备下次使用。
由于训练网络权值的原理不同,从而形成各种各样的神经网络学习规则。
常用的学习规则有以下几种:
(1)Hebb 规则
它的基本规则可归纳为:如果某处理单元从另一个处理单元接受到一个输入,并且如果两个单元都处于高度活动状态,这时两单元的连接权重就要被加强。
(2)Delta 规则
Delta 规则是常用的学习规则,其要点是改变单元间的连接权重来减小系统实际输出与应有输出间的误差。
这个规则也叫 Widrow 一 Hoff 规则,它首先应用于Adaline 模型中,也可称为最小均方差规则。
(3)反向传播学习方法
此过程涉及两步,首先是正向传播,当数据输入网络,网络从前往后计算每一个单元输出,将每个单元的输出与应用的输出进行比较,并计算误差。
第二步是反向传播,从后向前重新计算误差,并修改权重。
完成这两步后,才能输入新的数据。
(4)Kohonen 学习规则
该规则只用于无指导训练网络。
在学习过程中,处理单元竞争学习的机会。
具有高的输出单元是胜利者,有能力阻止它的竞争者并激发相邻的单元。
只有胜利者才能被输出,也只有胜利者与其相邻的单元可以调节权重。
(5)Grosberg 学习方法
Grossberg 结合 Hebb 模型,建立了新的模型。
Grossberg 模型将每个神经网络划分为由星内(instars)和星外(Outstars)的单元组成。
星内单元是接受许多输入的处理单元,而星外单元是指其输出发送到许多其他处理单元的单元。
如果一个单元的输入和输出活动激烈,其权重的改变就比较大,如果总的输入或输出小,权重的变化就很小。
对不重要的连接,权重可能接近于零。
泛化能力:它是指经训练(学习)后的预测模型对未在训练集中出现(但具有统一规律性)的样本作出正确反映的能力,学习不是简单地记忆已经学过的输入,而是通过对有限个训练样本的学习,学到隐含在样本中的有关环境本身的内在规律性。
例如,在有导师学习的网络,通过对已有样本的学习,将所提取的样本对中的非线性映射关系存在权值矩阵中,在其后的工作阶段,当向网络输入训练时未曾见过的非样本数据(与训练集同分布)时,网络也能完成由输入空间相输出空间的正确映射。
2.3神经网络分类
到目前为止,人们已经提出了上百种人工神经网络模型,学习算法更是层出不穷。
但是,从人工神经网络的应用价值来看,研究最多的只有十几种,他们是从各个角度对生物神经系统不同层次的描述和模拟,表2-1给出了几种人工神经网络的典型模型。
表 2-1 人工神经网络的典型模型
模型名称有师或无
师学习规则正向或反向传
播
主要应用领域
AG无Hebb律反向数据分类SG无Hebb律反向信息处理ART-I无竞争律反向模式分类DH无Hebb律反向语音处理CH无Hebb/竞争律反向组合优化AM无Hebb律反向模式存储ABAM无Hebb律反向信号处理CABAM无Hebb律反向组合优化FCM无Hebb律反向组合优化LM有Hebb律正向过程监控DR有Hebb律正向工程检测、控
制LAM有Hebb律正向系统控制OLAM有Hebb律正向信号处理FAM有Hebb律正向知识处理BSB有误差修正正向实时分类Perceptron有误差修正正向线性分类、预
测Adalin/Madaline有误差修正反向分类、噪声抑
制BP有误差修正反向分类
AVQ有误差修正反向数据自组织
CPN有Hebb律反向自组织映射
反向组合优化BM有Hebb/模拟退
火
CM有Hebb/模拟退
反向组合优化
火
AHC有误差修正反向控制
ARP有随机增大反向模式匹配、控
制SNMF有Hebb律反向语音、图象处
理而这些网络从结构上也仅可分为多层前向神经网络和动态递归网络两种。
前向神经网络是目前应用最广、发展最迅速的人工神经网络之一,其中, BP神经网络是多层前向神经网络的一种,也是人工神经网络模型中最典型、应用最广泛的一种网络模型。
在人工神经网络的实际应用中,80%~90%的人工神经网络模型是采用BP前向网络或它的变化形式。
如果按学习方式分为:有导师学习和无导师学习。
有导师学习也称为有监督学习。
在这种学习方式下,要对一组给定的输入提供应有的输出结果。
这组已知的输入-输出数据就称为训练数据。
网络根据训练数据的输入和输出来调节本身的权重,使网络的输出符合实际的输出。
所以学习过程的目的在于减小网络应有的输出与实际输出之间的误差,这是靠不断调整权重来实现的。
无导师学习也称为无监督学习。
在学习过程中,只提供输入数据而无相应的输出数据。
网络检查输入数据的规律或趋向,根据网络本身的功能,而不靠外部的影响来自行调整权值,其结果是使网络能对属于同一类的模式进行自动分类。
三.BP神经网络
3.1 BP网络模型
误差反向传播算法(Error Back Propagation,EBP,简称BP)在于利用输出层的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误
差。
如此下去,就获得了所有其他各层的误差估计。
这样就形成了将输出端表现出的误差沿着与输入信号传送相反的方向逐级向网络的输入端传递的过程。
因此,人们就又将此算法称为向后传播算法,简称BP算法。
使用BP算法进行学习的多层前向网络称为BP网络。
用于训练神经网络权值的反向传播学习理论最早由 Werbos 在 1974 年提出,并由Rumelhart 等在 1985 年发展为 BP 算法。
其本质是应用非线性规划方法中的最速下降法修正网络权值虽然这种误差估计本身的精度会随着误差本身的“向后传播”而不断降低,但它还是给多层网络的训练提供了十分有效的办法。
所以,多年来该算法受到了广泛的关注。
BP网络是一种按误差反向传播的多层前馈网络,是目前应用最广泛的神经网络模型之一。
它能学习和存贮大量的输入——输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。
BP 网络由输入层、隐层和输出层构成,每层由许多并行运算的简单神经元组成,网络的层与层之间的神经元采用全互连方式,同层神经元之间无相互连接。
其结构如图 3.1 所示。
图3-1:三层BP网络拓扑结构
在 BP 网络拓扑结构中,输入节点与输出节点是由问题的本身决定的,关键在于隐层的层数与隐层节点的数目。
对于隐层的层数,许多学者都作了理论的研究,著名的 Kolmogorov 定理证明了只要隐层节点足够多,含一个隐层的神经网络就可以任意精度逼近一个非线性函数。
一般来说,BP神经网络的隐层节点数对BP神经网络预测精度有较大的影响:节点数太少,网络不能很好地学习,需要增加训练次数,训练的精度也受到影响;节点数太多,训练时间增加,网络容易过拟合。
选取很困难,在实际操作中主要靠经验和试凑法,也有参考公式:
1l n <-、l a <、2log l n =,式中,n 为输入层节点数 ;m 为输出层节点数;a 为0到10之间的常数。
在实际问题中,隐含层节点数的选择首先是参考公式来确定节点数的大概范围,然后用试凑法确定最佳的节点数。
3.2 BP 网络基本工作原理
3.3 BP 网络算法实例
这一节,讲解一个具体的例子,在于理解训练和利用一个对数激励函数的隐含神经元的简单单输入单输出推导出误差梯度和怎么样具体的调整权值和阀值量,考虑最简单的模型,有两个输入—输出对()0.7853,0.707、()1.57,1.0,它们是正弦函数图象上的两个点,我们的实际问题可能就是要拟合这个图像,而已知很多点,这两点就是其中两个点,现在看看具体是怎么训练和学习,调整权值和阀值的。
一旦决定了网络结构,训练的第一步就是将权值初始化为任意值,下表3.2给出了这个问题的任选的值,并给出了输入x 和目标t 。
然后输入值作用于网络,进行输入的一个前向传递。
这个过程的任务就是首先确定u (输入到隐含神经元的加权和),并将它传递个隐含神经元的输出y 。
下一步,计算输入到输出的加权和v ,并将它传递到z ,这就完成了前向传递。
这时就可以提出网络的目标输出并计算总的误差和了。
表 3-2 初始权值和两个输入输出
对0.7853,0.707x t ==,根据前向传递确定网络输出为
()()010.457010.1430.30.20.78530.457
110.612110.10.40.6120.143
110.53611u v u a a x y e e
v b b y z e e
----=+=+====++=+=-+====++ 预报输出z 和目标输出t 不相等,因此就存在一个预报误差,它可以由平方误差表示。
对单一的输入—输出,它是()212E z t =
-,对这个实际问题,它等于()210.5360.7070.01462
E =-=,同理可以算出另外一个训练样本的误差。
3.4 BP 网络模型的不足
对 BP 神经网络,就目前的研究现状而言,主要存在以下几个方面的问题: BP 网络的理论依据坚实,推导过程严谨,所得公式对称优美,物理概念清楚, 通用性强。
但是,人们在使用过程中发现 BP 网络也存在许多不足之处,主要包括以下几个方面:
①收敛速度慢
由于 BP 算法本质上为梯度下降法,而它所要优化的目标函数又非常复杂, 因此,误差曲面存在平坦区域。
在这些区域中,误差梯度变化较小,即使权值的 调整量很大,误差依然下降缓慢,使训练过程几乎停顿。
② 易陷入局部极小
BP 网络的训练是从某一起始点开始的斜面逐渐达到误差的最小值。
对于复杂的网络,其误差函数为多维空间的曲面,就像一个碗,其碗底是最小点。
但是这个碗底表面是凹凸不平的,因而在其训练过程中,可能陷入某一小谷区,而这小谷区产生的是一个局部极小值,由此点向各方向变化均使误差增加,以至于使训练无法跳出这一局部极小值。
③网络结构的确定。
BP 神经网络网络结构的确定目前还没有一个固定的模式或是可以套用的公式,结构参数(包括隐层数、隐层神经元数)缺乏理论上的指导,大都是凭经验,严重影响了 BP 神经网络的性能和其应用的推广。
④ 泛化能力差
一般情况下,训练能力差时,泛化能力也差,并且一定程度上,随训练能力
的提高,泛化能力也提高。
但这种趋势有一个极限,当达到此极限时,随训练能力的提高,泛化能力反而下降,即出现所谓“过拟合”现象。
此时,网络学习了过多的样本细节,而不能反映样本内含的规律。
四.BP神经网络的一个改进方法
4.1 对收敛速度的一个改进
传统BP算法是一种利用实际输出与期望输出之间的误差对网络的各层连接权重和各结点的阈值由后向前逐层进行校正的一种监督式学习方法。
它根据最小二乘原理和梯度搜索技术,将学习过程分为输入样本的正向传播和误差的反向传播两个阶段。
针对 BP 算法收敛速度慢的问题,提出一种基于局部权值阈值调整的 BP 算法。
该算法结合生物神经元学习与记忆形成的特点,针对特定的训练样本,只激发网络中的部分神经元以产生相应的输出,而未被激发的神经元产生的输出值则与目标输出相差较大,那么我们就需要对未被激发的神经元的权值阈值进行调整。
所以提出的算法是对局部神经元权值阈值的调整,而不是传统的 BP 算法需要对所有神经元权值阈值进行调整,这样有助于加快网络的学习速度。
该算法的主要思想是在传统 BP 算法的第二阶段加入了隐层神经元的竞争,针对训练样本,神经元权值阈值的调整只发生在获胜神经元相连的路径上。
算法简单描述如下:
(1)所有的输入层神经元无条件为获胜神经元。
(2)隐层的神经元之间进行竞争。
考察输入向量和隐层神经元与输入层的权值W之间的关系,关系较远的隐层神经元未被激发。
因为关系较远,说明神经即
ij
W与输入向量之间的差距较大,则它的输出值就会和目标值有所元记忆的内容
ij
偏离,所以需要调整与它相连的权值阈值,那么该神经元就是竞争获胜的隐层神经元。
(3)所有的输出层神经元无条件为获胜神经元。
该算法每次学习过程调整的是局部神经元的权值和阈值,这样有助于加快学习速度,并且实验结果也证实了这一点。
4.2 对泛化能力的一个改进
泛化能力是神经网络最主要的性能,没有泛化能力的神经网络没有任何使用
价值。
如何提高NN的泛化能力一直是该领域研究者所关注的问题。
而神经网络的结构复杂性和样本复杂性是影响神经网络泛化能力的主要因素,所以,人们的研究大都集中于此。
在构建网络之前,我们唯一所知的只有训练样本数据,Partridge对用于分类的三层BP网的研究发现,训练集对泛化能力的影响甚至超过网络结构(隐节点数)对泛化能力的影响。
有人利用主成分分析法对训练样本进行预处理,这样既可降噪又可降维,降维对减小网络结构提高网络泛化能力有利。
然而,在实际应用中,样本的个数远远大于指标的个数,并且当遇到样本数据很大时,人们往往随机选取其中一部分作为训练样本,这样很可能使训练样本集本身没有包含全部样本的特征,使预测的结果出现较大的误差。
也有人利用模糊聚类法首先对样本进行分类,然后再从每一类中按一定比例选择训练样本。
但是一般聚类算法只擅长处理低维的数据,对高维数据的聚类质量则较差,就会使最终所选取的训练样本有偏差,从而影响到最后预测结果的精度。
此处运用因子分析对高维大样本数据先进行预处理,再利用分析所得的公因子进行聚类,这样除了降噪降维外,还可以从大样本集中选出几乎可以包含全部样本特性的训练样本,从而可以解决上述问题。
具体方法是:
(1)先对原始数据样本作因子分析,将样本的多个指标综合为数量较少的几个因子,并得到因子得分。
(2)用因子得分计算各样品间的欧式距离,来进行聚类分析,将样本分成若干小类。
(3)从每小类中按一定比例科学地选取适量样本。
通过以上三步,就可以从大样本数据中选出几乎可以包含全部样本特性的训练样本,从而达到对高维大样本数据的样本数和指标的降维。
实验证明,该方法简化了网络结构、加快了网络的收敛速度,对提高网络的泛化能力有一定的帮助。