人工神经网络(Artificial Neural Networks,简记作ANN),是对人类大脑系统的一阶特性的一种描述。简单地讲,它是一个数学模型,可以用电子线路来实现,也可以用计算机程序来模拟,是人工智能研究的一种方法。
一 、人工神经网络概述
人工神经网络(Artificial Neural Networks,简记作ANN)的主要哲学基础就是它们具有通过范例进行学习的能力,或者更技术地来说,它们可以系统地改进输入数据且能反映到输出数据上。
什么是人工神经网络?
的定义:“人工神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。”
脑神经信息活动的特征
(1)巨量并行性。
(2)信息处理和存储单元结合在一起。
(3)自组织自学习功能。
神经网络研究的发展
(1)第一次热潮(40-60年代未)
1943年,美国心理学家和数学家在提出了一个简单的神经元模型,即MP模型。1958年,等研制出了感知机(Perceptron)。
(2)低潮(70-80年代初):
(3)第二次热潮
1982年,美国物理学家提出Hopfield模型,它是一个互联的非线性动力学网络他解决问题的方法是一种反复运算的动态过程,这是符号逻辑处理方法所不具备的性质. 1987年首届国际ANN大会在圣地亚哥召开,国际ANN联合会成立,创办了多种ANN国际刊物。1990年12月,北京召开首届学术会议。
神经网络基本模型
人工神经元
神经元是构成神经网络的最基本单元(构件)。
人工神经元模型应该具有生物神经元的六个基本特性。
1)神经元及其联接;
2)神经元之间的联接强度决定信号传递的强弱;
3)神经元之间的联接强度是可以随训练改变的;
4)信号可以是起刺激作用的,也可以是起抑制作用的;
5)一个神经元接受的信号的累积效果决定该神经元的状态;
6) 每个神经元可以有一个“阈值”。
另一种描述
神经元是神经网络中基本的信息处理单元,他由下列部分组成:
一组突触和联结,联结具有权值 W1, W2, …, Wm
通过加法器功能,将计算输入的权值之和
激励函数限制神经元输出的幅度
激活函数
激活函数——执行对该神经元所获得的网络输入的变换,也可以称为激励函数、活化函数:o=f(net)
a、线性函数(Liner Function)
b、非线性斜面函数(Ramp Function)
γ>0为一常数,称为饱和值,为该神经元的最大输出。
b、非线性斜面函数(Ramp Function)
c、阈值函数(Threshold Function)
阶跃函数
c、阈值函数(Threshold Function)
阶跃函数
d、S形函数
压缩函数(Squashing Function)和逻辑斯特 函数(Logistic Function)。
f(net)=a+b/(1+exp(-d*net))
a,b,d为常数。它的饱和值为a和a+b。
最简单形式为:
f(net)= 1/(1+exp(-d*net))
函数的饱和值为0和1。
S形函数有较好的增益控制
d、S形函数
人工神经网络的拓扑特性
a、联接模式
用正号(“+”,可省略)表示传送来的信号起刺激作用,它用于增加神经元的活跃度;
用负号(“-”)表示传送来的信号起抑制作用,它用于降低神经元的活跃度。
层次(又称为“级”)的划分,导致了神经元之间的三种不同的互连模式:
a、联接模式
1、层(级)内联接
–层内联接又叫做区域内(Intra-field)联接或侧联接(Lateral)。
–用来加强和完成层内神经元之间的竞争
2、循环联接
–反馈信号。
a、联接模式
3、层(级)间联接
–层间(Inter-field)联接指不同层中的神经元之间的联接。这种联接用来实现层间的信号传递
–前馈信号
–反馈信号
b、网络的分层结构
单级网 –简单单级网
–W=(wij)
–输出层的第j个神经元的网络输入记为netj:
–netj=x1w1j+x2w2j+…+xnwnj
–其中, 1≤j ≤m。取
–NET=(net1,net2,…,netm)
–NET=XW
–O=F(NET)
b、网络的分层结构
单级网 –单级横向反馈网
V=(vij)
NET=XW+OV
O=F(NET)
时间参数——神经元的状态在主时钟的控制下同步变化
考虑X总加在网上的情况
–NET(t+1)=X(t)W+O(t)V
–O(t+1)=F(NET(t+1))
O(0)=0
考虑仅在t=0时加X的情况。
稳定性判定
b、网络的分层结构
多级网
层次划分
–信号只被允许从较低层流向较高层。
–层号确定层的高低:层号较小者,层次较低,层号较大者,层次较高。
–输入层:被记作第0层。该层负责接收来自网络外部的信息
–第j层:第j-1层的直接后继层(j>0),它直接接受第j-1层的输出。
–输出层:它是网络的最后一层,具有该网络的最大层号,负责输出网络的计算结果。
–隐藏层:除输入层和输出层以外的其它各层叫隐藏层。隐藏层不直接接受外界的信号,也不直接向外界发送信号
约定:
–输出层的层号为该网络的层数:n层网络,或n级网络。
–第j-1层到第j层的联接矩阵为第j层联接矩阵,输出层对应的矩阵叫输出层联接矩阵。今后,在需要的时候,一般我们用W(j)表示第j层矩阵。
多级网
非线性激活函数
F(X)=kX+C
F3(F2(F1(XW(1))W(2))W(3))
b、网络的分层结构
循环网
循环网
如果将输出信号反馈到输入端,就可构成一个多层的循环网络。
输入的原始信号被逐步地“加强”、被“修复”。
大脑的短期记忆特征——看到的东西不是一下子就从脑海里消失的。
稳定:反馈信号会引起网络输出的不断变化。我们希望这种变化逐渐减小,并且最后能消失。当变化最后消失时,网络达到了平衡状态。如果这种变化不能消失,则称该网络是不稳定的。
存储与映射
在学习/训练期间,人工神经网络以CAM方式工作;权矩阵又被称为网络的长期存储(Long Term Memory,简记为LTM)。
CAM方式(Content Addressable Memory):内容寻址方式是将数据映射到地址。
网络在正常工作阶段是以AM方式工作的;神经元的状态表示的模式为短期存储(Short Term Memory,简记为STM).
AM方式(Associative Memory):相联存储方式是将数据映射到数据。
自相联(Auto-associative)映射:训练网络的样本集为向量集合为{A1,A2,…,An}。在理想情况下,该网络在完成训练后,其权矩阵存放的将是上面所给的向量集合。
异相联(Hetero-associative)映射:{(A1,B1),(A2,B2),…,(An,Bn)}该网络在完成训练后,其权矩阵存所给的向量集合所蕴含的对应关系。
人工神经网络的训练
人工神经网络最具有吸引力的特点是它的学习能力。
1962年,Rosenblatt给出了人工神经网络著名的学习定理:人工神经网络可以学会它可以表达的任何东西。
人工神经网络的表达能力大大地限制了它的学习能力。
人工神经网络的学习过程就是对它的训练过程
无导师学习
无导师学习(Unsupervised Learning)与无导师训练(Unsupervised Training)相对应
抽取样本集合中蕴含的统计特性,并以神经元之间的联接权的形式存于网络中。
有导师学习
有导师学习(Supervised Learning)与有导师训练(Supervised Training)相对应。
输入向量与其对应的输出向量构成一个“训练对”。
从样本集合中取一个样本(Ai,Bi);
计算出网络的实际输出O;
求D=Bi-O;
根据D调整权矩阵W;
对每个样本重复上述过程,直到对整个样本集来说,误差不超过规定范围。
训练算法的主要步骤
神经网络的应用
人工神经网络以其具有自学习、自组织、较好的容错性和优良的非线性逼近能力,受到众多领域学者的关注。在实际应用中,80%~90%的人工神经网络模型是采用误差反传算法或其变化形式的网络模型(简称BP网络),目前主要应用于函数逼近、模式识别、分类和数据压缩或数据挖掘。
二、BP(Backpropagation)网络
概述
BP算法的出现
非循环多级网络的训练算法
UCSD PDP小组的Rumelhart、Hinton和Williams1986年独立地给出了BP算法清楚而简单的描述
1982年,Paker就完成了相似的工作
1974年,Werbos已提出了该方法
弱点:训练速度非常慢、局部极小点的逃离问题、算法不一定收敛。
优点:广泛的适应性和有效性
基本BP算法
网络的构成
神经元的网络输入:
neti=x1w1i+x2w2i+…+xnwni
神经元的输出:
网络的拓扑结构
1).BP网的结构
2).输入向量、输出向量的维数、网络隐藏层的层数和各个隐藏层神经元的个数的决定
3).实验:增加隐藏层的层数和隐藏层神经元个数不一定总能够提高网络精度和表达能力。
4).BP网一般都选用二级网络。
训练过程概述
样本:(输入向量,理想输出向量)
权初始化:“小随机数”与饱和状态;“不同”保证网络可以学。
1、向前传播阶段:
(1)从样本集中取一个样本(Xp,Yp),将Xp输入网络;
(2)计算相应的实际输出Op:
Op=Fl(…(F2(F1(XpW(1))W(2))…)W(L))
2、向后传播阶段——误差传播阶段:
(1)计算实际输出Op与相应的理想输出Yp的差;
(2)按极小化误差的方式调整权矩阵。
(3)网络关于第p个样本的误差测度:
(4)网络关于整个样本集的误差测度:
误差传播分析
输出层权的调整
隐藏层权的调整
基本的BP算法
样本集:S={(X1,Y1),(X2,Y2),…,(Xs,Ys)}
基本思想:
–逐一地根据样本集中的样本(Xk,Yk)计算出实际输出Ok和误差测度E1,对W(1),W(2),…,W(L)各做一次调整,重复这个循环,直到ΣEp<ε。
–用输出层的误差调整输出层权矩阵,并用此误差估计输出层的直接前导层的误差,再用输出层前导层误差估计更前一层的误差。如此获得所有其它各层的误差估计,并用这些估计实现对权矩阵的修改。形成将输出端表现出的误差沿着与输入信号相反的方向逐级向输入端传递的过程
.样本数据
收集和整理分组
采用BP神经网络方法建模的首要和前提条件是有足够多典型性好和精度高的样本。而且,为监控训练(学习)过程使之不发生“过拟合”和评价建立的网络模型的性能和泛化能力,必须将收集到的数据随机分成训练样本、检验样本(10%以上)和测试样本(10%以上)3部分。此外,数据分组时还应尽可能考虑样本模式间的平衡。
输入/输出变量的确定及其数据的预处理
一般地,BP网络的输入变量即为待分析系统的内生变量(影响因子或自变量)数,一般根据专业知识确定。若输入变量较多,一般可通过主成份分析方法压减输入变量,也可根据剔除某一变量引起的系统误差与原系统误差的比值的大小来压减输入变量。输出变量即为系统待分析的外生变量(系统性能指标或因变量),可以是一个,也可以是多个。一般将一个具有多个输出的网络模型转化为多个具有一个输出的网络模型效果会更好,训练也更方便。
由于BP神经网络的隐层一般采用Sigmoid转换函数,为提高训练速度和灵敏性以及有效避开Sigmoid函数的饱和区,一般要求输入数据的值在0~1之间。因此,要对输入数据进行预处理。一般要求对不同变量分别进行预处理,也可以对类似性质的变量进行统一的预处理。如果输出层节点也采用Sigmoid转换函数,输出变量也必须作相应的预处理,否则,输出变量也可以不做预处理。
预处理的方法有多种多样,各文献采用的公式也不尽相同。但必须注意的是,预处理的数据训练完成后,网络输出的结果要进行反变换才能得到实际值。再者,为保证建立的模型具有一定的外推能力,最好使数据预处理后的值在~之间。
.神经网络拓扑结构的确定
隐层数
一般认为,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低),提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。Hornik等早已证明:若输入层和输出层采用线性转换函数,隐层采用Sigmoid转换函数,则含一个隐层的MLP网络能够以任意精度逼近任何有理函数。显然,这是一个存在性结论。在设计BP网络时可参考这一点,应优先考虑3层BP网络(即有1个隐层)。一般地,靠增加隐层节点数来获得较低的误差,其训练效果要比增加隐层数更容易实现。对于没有隐层的神经网络模型,实际上就是一个线性或非线性(取决于输出层采用线性或非线性转换函数型式)回归模型。因此,一般认为,应将不含隐层的网络模型归入回归分析中,技术已很成熟,没有必要在神经网络理论中再讨论之。
隐层节点数
在BP 网络中,隐层节点数的选择非常重要,它不仅对建立的神经网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因,但是目前理论上还没有一种科学的和普遍的确定方法。
目前多数文献中提出的确定隐层节点数的计算公式都是针对训练样本任意多的情况,而且多数是针对最不利的情况,一般工程实践中很难满足,不宜采用。事实上,各种计算公式得到的隐层节点数有时相差几倍甚至上百倍。为尽可能避免训练时出现“过拟合”现象,保证足够高的网络性能和泛化能力,确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。研究表明,隐层节点数不仅与输入/输出层的节点数有关,更与需解决的问题的复杂程度和转换函数的型式以及样本数据的特性等因素有关。
在确定隐层节点数时必须满足下列条件:
隐层节点数必须小于N-1(其中N为训练样本数),否则,网络模型的系统误差与训练样本的特性无关而趋于零,即建立的网络模型没有泛化能力,也没有任何实用价值。同理可推得:输入层的节点数(变量数)必须小于N-1。
(2) 训练样本数必须多于网络模型的连接权数,一般为2~10倍,否则,样本必须分成几部分并采用“轮流训练”的方法才可能得到可靠的神经网络模型。
总之,若隐层节点数太少,网络可能根本不能训练或网络性能很差;若隐层节点数太多,虽然可使网络的系统误差减小,但一方面使网络训练时间延长,另一方面,训练容易陷入局部极小点而得不到最优点,也是训练时出现“过拟合”的内在原因。因此,合理隐层节点数应在综合考虑网络结构复杂程度和误差大小的情况下用节点删除法和扩张法确定。
.神经网络的训练
训练
BP网络的训练就是通过应用误差反传原理不断调整网络权值使网络模型输出值与已知的训练样本输出值之间的误差平方和达到最小或小于某一期望值。虽然理论上早已经证明:具有1个隐层(采用Sigmoid转换函数)的BP网络可实现对任意函数的任意逼近。但遗憾的是,迄今为止还没有构造性结论,即在给定有限个(训练)样本的情况下,如何设计一个合理的BP网络模型并通过向所给的有限个样本的学习(训练)来满意地逼近样本所蕴含的规律(函数关系,不仅仅是使训练样本的误差达到很小)的问题,目前在很大程度上还需要依靠经验知识和设计者的经验。因此,通过训练样本的学习(训练)建立合理的BP神经网络模型的过程,在国外被称为“艺术创造的过程”,是一个复杂而又十分烦琐和困难的过程。
由于BP网络采用误差反传算法,其实质是一个无约束的非线性最优化计算过程,在网络结构较大时不仅计算时间长,而且很容易限入局部极小点而得不到最优结果。目前虽已有改进BP法、遗传算法(GA)和模拟退火算法等多种优化方法用于BP网络的训练(这些方法从原理上讲可通过调整某些参数求得全局极小点),但在应用中,这些参数的调整往往因问题不同而异,较难求得全局极小点。这些方法中应用最广的是增加了冲量(动量)项的改进BP算法。
学习率和冲量系数
学习率影响系统学习过程的稳定性。大的学习率可能使网络权值每一次的修正量过大,甚至会导致权值在修正过程中超出某个误差的极小值呈不规则跳跃而不收敛;但过小的学习率导致学习时间过长,不过能保证收敛于某个极小值。所以,一般倾向选取较小的学习率以保证学习过程的收敛性(稳定性),通常在~之间。
增加冲量项的目的是为了避免网络训练陷于较浅的局部极小点。理论上其值大小应与权值修正量的大小有关,但实际应用中一般取常量。通常在0~1之间,而且一般比学习率要大。
三、人工神经网络的优点及局限性
与其他类型的计算方法,人工神经网络具有一些明显的优点,但它并不是万能的。对于一个明智的工程技术人员来讲,在应用人工神经网络时,应同时了解其优点与局限性,以便能更好地确定人工神经网络对特定问题的适用性。
人工神经网络只不过是另一种计算机建模工具而已,但与一些著名的、传统的计算机建模方法相比,具有一些明显的优点。这些优点包括:
(1)自适应性:人工神经网络具有对周围环境的自适应或学习的能力。当给人工神经网络以输入-输出模式时,它可以通过自我调整使误差达到最小,即通过训练进行学习。对于某些难以参数化的因素,可以通过训练,自动总结规律。
人工神经网络的优点
(2)容错性:在输入-输出模式中混入错误信息,对整体不会带来严重的影响。与传统的经验曲线拟合模型相比,人工神经网络对噪声和不完整信息的敏感程度要低。原因是:在经验模型中,每一自变量通常都起重要作用,但在人工神经网络中,每一个节点只反映问题的一个微特征,因此,如果某一节点的输入不完整或带有噪声,这一输入在人工神经网络中所体现出的影响不会那么严重。人工神经网络能够处理不完善的问题,能比其他适用性差的经验模型更有效地归纳、得出实质性结论。
(3)模式识别性能:人工神经网络能够很好地完成多变量模式识别。在化学工程中,过程控制与故障诊断包含了大量的模式识别。
(4)外推性:人工神经网络有较好的外推性,即从训练中,从部分样本中学到的知识推广到全体祥本。
(5)自动抽提功能:人工神经网络能通过采用直接的(有时是不精确的)数值数据进行训练,并能自动地确定原因-结果关系。
(6)在线应用的潜力:人工神经网络的训练可能要花费大量的时间,但训练一旦完成,它们就能从给定的输入很快地计算出结果。由于训练好的网络能在不到1s的时间里得出计算结果,所以它有可能在控制系统中在线使用。但是应该注意,此时的人工神经网络必须是离线训练好的。
人工神经网络的局限性:
(1)训练时间长:人工神经网络需要长时间的训练,有时可能使之变得不实用。大多数简单问题的网络训练需要至少上千次迭代,复杂问题的训练可能需要多达数万次迭代。根据网络的大小,训练过程可能需要主机时间几个到几十个小时。
(2)需大量训练数据:人工神经网络在很大程度上取决于训练时关于问题的输入-输出数据,若只有少量输入-输出数据,一般不考虑使用人工神经网络。
(3)不能保证最佳结果:反向传播是调整网络的一个富有创造性的方法,但它并不能保证网络能恰当地工作。训练可能导致网络发生偏离,使之在一些操作区域内结果准确,而在其他区域则不准确。此外,在训练过程中,有可能偶尔陷入“局部最小”。
(4)不能保证完全可靠:尽管这一点对所有的计算问题均适用,但对人工神经网络尤其如此。例如在故障诊断中,对于某些故障,误诊率可能只有1%,而对同一问题的其他故障,误诊率可能高达33%。重要的是:事先无法知道(用反向传播训练)哪些故障比其他故障更易于出现误诊。因此,对于需要近乎100%可靠的军事问题,在采用人工神经网络时必须小心谨慎。
另外,对于一些“操作性的”问题,如训练集过小,由于传感器的故障导致采集到的数据错误等,这些问题有时能明显影响人工神经网络的使用效果。
一般而言, ANN与经典计算方法相比并非优越, 只有当常规方法解决不了或效果不佳时ANN方法才能显示出其优越性。尤其对问题的机理不甚了解或不能用数学模型表示的系统,如故障诊断、特征提取和预测等问题,ANN往往是最有利的工具。另一方面, ANN对处理大量原始数据而不能用规则或公式描述的问题, 表现出极大的灵活性和自适应性。
黑箱
*