1、第九章 人工神经网络概论神经计算是一门崭新的信息处理学科,它研究非程序的、适应性的、大脑风格的信息处理的本质和能力。人工神经网络是由大量处理单元组成的非线性大规模自适应动力系统,具有学习能力、记忆能力、计算能力以及智能处理功能,并在不同程度和层次上模仿人脑神经系统的信息处理、存储及检索功能。它是在现代神经科学研究成果的基础上提出来的,试图通过模拟大脑神经网络处理、记忆信息的方式设计一种新的机器使之具有人脑那样的信息处理能力。9.1 引言从 1946 年第一台电子计算机(ENIAC)问世以来直至现在,几乎全部信息处理都采用程序式计算方式。而比较计算机和人的计算能力,其差别是惊人的。一个人能很容易
2、识别脸孔,理解语言,而一台巨型机也很难辨别出一颗树来。另一方面,用计算机进行计算,可以很快得到答案,大大超过了人的计算能力。那么数值计算和辩识物体之间究竟有些什么差别?辩识物体是不能简单明确地加以定义的。要识别一颗树,就必须给出树的全部定义。作出这样一种定义,等于要描述树的每一个可以想象到的变量。这类问题构成了随机问题。所谓随机问题,就是那些需要具备某一系统的实际上每种可能状态的知识才能解答的问题。因此,为解决一个随机问题,就要求记忆所有可能的答案,比给定输入数据时,从所有可能的解答的集合中迅速选出最合适的答案。而象数学一类的计算问题,其解答通常可以用一种算法简洁地表示出来,也就是说,可以用一
3、个精确的指令系列来表示,该指令系列规定了如何处理输入数据以得到答案。信息处理的一种新方法并不需要开发算法和规则,极大地减少了软件的工作量,这种方法称为神经计算。神经计算是一门崭新的信息处理学科,它从神经生理学和认知科学研究成果出发,应用数学方法研究并行分布的、非程序的、适应性的、大脑风格的信息处理的本质和能力。神经计算中主要的信息处理结构是人工神经网络。神经信息处理是介于常规处理形式和人脑的中间。一方面,神经计算企图模仿人脑的功能,而另一方面许多实现技术又是常规的。神经信息处理许多特性与人脑相似,诸如联想、概括、并行搜索、学习和灵活性。人脑信息处理的特点:1:大规模并行处理;2:具有很强的容错
4、性,善于联想、概括、类比和推广;3:具有很强的自适应能力。所以说人脑是最复杂、最完美、最有效的一种信息处理装置,人们正以极大的兴趣研究它的结构和机理。这种研究与 20 世纪初的物理学和 20 世纪 50 年代的分子生物学一样,正酝酿着重大突破,而这一突破将给整个科学的发展带来巨大而深远的影响。人们对大脑的认识已深入到探索脑的核心问题,鉴定出了一系列涉及脑工作的重要分子,在感知、行为、学习和记忆方面都取得了重要进展。这表明人们将有可能最终揭开大脑这个人体最复杂系统的奥秘,为现代科技寻找新的道路。借助大脑工作原理,有可能使信息处理获得新的突破。正因为如此,神经科学受到世界发达国家的高度重视。美国国
5、会通过决议将 1990 年 1 月 5 日开始的十年定为“脑的十年” 。国际脑研究组织号召它的成员国将“脑的十年”变为全球行为。美国国防部高级研究计划局(DARPA)制订的八年研究计划中,神经网络是重要的方向。1986 年日本政府提出了“人类前沿科学计划(HFSP) ”研究计划,1992 年提出“真实世界计算(RWC) ”研究计划。德国从 1988 年开始执行“神经信息论”的研究计划。目前,对大脑思维的过程了解仍然很肤浅,人工神经网络模拟的研究还很不充分,我们面临的是一充满未知的新领域。神经计算是一门新兴的边缘交叉学科。它与神经科学、认知科学、计算机科学、人工智能、信息科学、机器人学、微电子学
6、、光科学、分子生物学等有关。神经计算研究的主要目标是:1:理解脑系统为何具有智能;2:研究各种强调“计算能力”的神经网络模型,并不着重于这些模型的生物学保真程度;3:研究大规模并行自适应处理的机理;4:研究神经计算机的体系结构和实现技术。目前众多人工神经网络中,BP 网络(前向多层反传神经网络)已成为应用最为广泛的代表性网络之一。本章主要包含了以下几个部分:首先介绍了人工神经网络的基本理论,包括人工神经网络理论的发展及现状、神经元的模型和人工神经网络模型。然后对 BP 网络的结构、算法、输入输出方式等进行了讨论和必要的改进。最后讨论了 BP 网络的适用性问题。9.2 神经信息处理的基本原理人工
7、神经网络的发展经历了一条漫长而曲折的道路。1943 年,心理学家麦克洛奇(McCulloch)和数理逻辑学家皮兹 (Pitts)提出了神经网络的数学模型。该模型总结了神经元的一些基本生理特性,提出神经元形式化的数学描述和网络的结构方法,从而开创了人工神经网络的时代。1949 年心理学家赫布(Hebb)提出的规则为神经网络的学习算法奠定了基础。 1957 年罗森勃拉特 (Rosenblatt)提出的感知机(Perceptron)模型是该领域的一个重要进展,第一次把神经网络的研究从纯理论的探讨付诸工程实现,掀起了神经网络研究的第一次高潮。60 年代以后,明斯基(Minsky) 和佩珀特(Paper
8、t)发现了神经网络的极大局限性,从而极大地影响了对神经网络的研究,致使人工神经网络的研究进入低潮。1982 年美国加州工学院物理学家霍普菲尔特(Hopfield) 提出了离散的神经网络模型,标志着神经网络研究高潮的又一次到来。1986 年,鲁梅尔哈特(Rumelhart)和麦克莱伦德(McClelland)等人提出了并行分布处理 (Parallel Distributed Processing,简称 PDP)的理论,并提出了多层网络的误差传播学习法,或称反传(Back-Propagation,简称 BP)算法。这种算法根据学习的误差大小,从后向前修正各层次之间的连接权值。通过不断的学习和修正,
9、可以使网络的学习误差达到最小。BP 算法从实际上证明神经网络的运算能力很强,可以解决许多具体问题。近年来,又研究出一些网络,如自适应神经网络、随机神经网络等。人工神经网络是由大量处理单元组成的非线性大规模自适应动力系统。它是在现代神经科学研究成果的基础上提出来的,试图通过模拟大脑神经网络处理、记忆信息的方式设计一种新的机器使之具有人脑那样的信息处理能力。为了模拟大脑信息处理的机理,人工神经网络具有以下基本属性:1. 非线性。非线性关系是自然界的普遍特性。大脑的智慧就是一种非线性现象。人工神经元处于激活或抑制两种不同的状态,这种行为在数学上表现为一种非线性关系。2 非局域性。一个神经网络通常由多
10、个神经元广泛连接而成。3 非定常性。人工神经网络具有自适应、自组织、自学习能力。4 非凸性。一个系统的演化方向,在一定条件下将处决于某个特定的状态函数,例如能量函数,它的极值相应于系统比较稳定的状态。非凸性是指这种函数有多个极值,故系统具有多个较稳定的平衡态,这将导致系统演化的多样性。 9.3 简单的人工神经网络模型9.4.1 简单线性模型这种模型单元激活值是不加任何限制的实数,输出函数 就等于激活值 。典型)(iaf ia的线性模型由两组单元构成,一组是输入单元,另一组是输出单元。一般输入层的任一单元可与输出层的任一单元相连,而且全部连接都属于同一个类型。假定连接矩阵为 W,简单线性模型的激
11、活规则就是)(1(tWat9.4.2 线性阈值单元对简单线性系统的一些缺点,可以通过引入非线性因素而加以克服。最简单的非 线性系统大概就是由线性阈值元件构成的网络。线性阈值单元是二值的,其激活值只取 0或 1。当单元 的输入加权和大于某一阈值 时,其激活值取 1,否则就取 0。这一 作用iui可借助符号函数表示)(sgn)1(tWata9.4.3 盒中脑状态盒中脑状态 (Brain State in Box , 简称 BSB) 模型是由 J. Anderson 发展起来的。它和简单的线性联想器有密切的关系。在 BSB 模型中,各单元的激活值被限制在一个最小值和一个最大值之间,典型的取值范围是-
12、1,1 区间。BSB 模型的激活规则就是1)()()1(iijjj tawtta 1jja9.4.4 热力学模型 热力学模型使用二值单元,激活值取 0 和 1。这些单元被分为两类;一类是可见单元(即输入单元和输出单元),另一类是隐单元。一般系统中任一单元可与任何其他单元相连,但连接必须是对称的,即 。在这类模型中,单元的输出和激活值没有区别。jiijw单元的激活值是输入的一个随机函数,即jijiTawi etap/)(1)(式中, 是 i 单元接收到的外部的输入, 是该单元的阈值,T 是温度参数,它决定着概i率密度的坡度。热力学模型的一个实例是玻耳兹曼机。9.4 人工神经网络的数学模型一 概述
13、人工神经网络根据其模型建立的原理,可以分为数学模型和认知模型。数学模型主要是在神经元生理特性的基础上,通过抽象用数学表达式描述。而认知模型主要是根据神经系统信息处理的过程建立的。本章着重讨论人工神经网络的数学模型,包括前向网络、反馈网络、随机网络等。下章将讨论人工神经网络的认知模型。1. 前向网络网络中各神经元接受前一级的输入,并输出到下一级,网络中没有反馈,可以用一个有向无环路图表示,这种神经网络称为前向网络。前向网络中节点分为两类,输入节点和计算节点。每个输入节点可以有任意个输入,但只有一个输出。而输出可以耦合到任意多个其他节点的输入。前向网络通常可以分为不同的层,第 层的输入仅与第 层的
14、输出i1i连接。一般认为输入节点为第一层,具有一层计算节点的网络实际上是一个两层网络。由于输入节点和输出节点可以和外界连接,直接接受环境的影响,所以称为可见层。而其他中间层则称为隐层(hidden layer) 。前向网络的工作原理是映射,所以是一种映射网络。映射网络是有界映射的近似实现,即函数 ,利用映射作用的训练标本 , ,mnRAf: ),(1yx,)(2,其中 ,实现从 维欧几里德空间有界子集 A 到 维欧几里德空,)(nyx)(kkxFynm间有界子集 的映射。映射网络基本上有两类:基于特征的网络和基于原型的网络。f基于特征的网络实现函数的输入输出关系,这种关系可以用一种通用的、可修
15、改的函数形式表示。反传网络是属于特征网络。基于原型的人工神经网络是通过创建一组具体的输入输出实例 ,),(1vw, ,统计的表示映射作用。然后,将未知的新向量 与网络中的存储,)(2vw),(nv x的向量 进行比较,把比较的结果与输入向量 组合,产生映射作用。对传网络i iu(counter-propagation)是原型网络的例子。2. 反馈网络19821986 年,美国物理学家霍普菲尔特(Hopfield)对反馈网络进行了研究,并可以应用解决实际问题,引起人们的兴趣。一般讲这种单层反馈网络称为霍普菲尔特(Hopfield)网络。反馈网络可用一个无向的完备图来表示,为简单起见,除另外说明外
16、,我们仍假定各节点是线性阈值单元,网络唯一的由权值矩阵 和阈值 来确定,并且 1) 是对称的,WW对角线元素为零的 矩阵( 为网络中的节点数) ,节点 与节点 间连线上的权值nij。2) 是阈值, 是单元 的阈值。jiijWii3. 工作方式根据系统状态的改变,神经网络有异步和同步两种工作方式。假定时间是离散的,则任一时刻 ( 为正整数)单元 之状态为 ,整个网络状态是 。tiX)(ti ntX1,)(异步方式:各单元分别改变状态,即单元 : )sgn)11j ijii tWtX而其余各单元状态不变,即单元 : , j()(ttjji同步方式:即对于所有单元 : i )(sgn10j ijii
17、 tt有时也可以一部分节点同时改变状态。反馈网络的输出与输入之间在时间上有延时,因而要用动态方程描述神经元和系统的数学模型。系统稳定状态的分析比较困难。4. 联想记忆人脑记忆的主要特征之一是联想。由于反馈网络会收敛到稳定状态,因此可以用作联想记忆。记忆是人脑对过去经验中发生过的事物的反映,是新获得行为的保持。由于记忆,人才能保持过去的反映,使当前的反映在以前的反映的基础上进行,使反映更全面、更深入。也就是有了记忆,人才能积累经验,扩大经验。记忆是心理在时间上的持续,有了记忆,先后的经验才能联系起来,使心理活动成为一个发展的过程,使一个人的心理活动成为统一的过程,并形成他的心理特征。记忆是反映机
18、能的一个基本方面。目前,根据记忆操作的时间长短,人类记忆有三种类型:感觉记忆、短时记忆和长时记忆。近年来,许多人对联想记忆机制进行了大量研究。根据输出与输入信息的关系,联想记忆可以分为两类:自联想记忆和异联想记忆。设在学习过程中存入 M 个样本 , ,使用时要求:若输入)(kXM,21,其中 是 M 个学习样本之一, 是偏差项(可代表噪声、图形的缺损、vXk/ k v崎变) ,要求输出 ,即使之复原。这种人工神经网络称为自联想记忆(Auto-yAssociative Memory) 。异联想记忆中,规定两组样本间有一定的对应关系 ,kyX。例如, 代表某人照片,而 代表他的姓名,使用时若输入k
19、,21kXky,要求输出 。vX/ y5. 随机神经网络每个神经元的兴奋与抑制具有随机性,其概率取决于神经元的输入。采用概率统计分析的方法与信息的处理和测量非常相近。因此,概率计算的神经网络有可能得到更好的效果。在一定约束条件下,用并行分布概率神经网络进行反复迭代搜索以找到一个稳定解的问题。既是一个有吸引力的研究课题又具有潜在的广阔应用前景。概率神经网络的研究主要关心下列问题:1. 网络必须收敛到一个稳定点,不能出现漫无止境的震荡。2. 网络具有足够的计算能力,能够实现所需的分类、复原功能。3. 较好的解决计算复杂性问题,完成搜索所需的反复迭代次数不能过多。4. 容错性好,神经元之间的信息传送
20、容许有误差。人脑神经元之间的信息传送精读不会超过 。5. 调整权值系数%5的学习算法,以便将外界知识存储在网络的权值系数中。二 线性限幅单元线性限幅单元是最基本的前向映射网络,它具有 个输入, ,一个输出nnRX, 个权值 ,和阈值 。图给出了线性限幅单元的结构。1,YnnRWniixw10若若y1Wn1xnx线性限幅单元三 感知机感知机(Perceptron)是一种典型的前向人工神经网络。最早由美国学者罗森勃拉特于1957 年提出,它实际上是一个具有单层计算单元的神经网络,并由线性限幅单元组成。感知机学习算法1. 开始赋给每个权值 以任一较小的不为零的随机数,即 ;)0(iW0)(iW2.
21、随机输入一个样本 和期望输出 C,如果 X 属于期望的类时,则),21neE,否则 ;1C13. 如果权值 对样本 进行正确分类,即 或者i 10IiE和0IiWE和则对权值不作修改。否则形成如下新的权值 iCtWt)(1(4. 转到 2. ,直到对一切样本,权值 W 稳定为止。感知机收敛定理告诉我们,若函数是线性可分的,则上述学习过程在有限次数迭代后可收敛到正确的数值。 1nW1xnx )(ixWfy感知机四 最小二乘分类学习算法对于线性可分类,可用前面所述学习算法,且保证收敛。但是线性可分的条件毕竟过于严格,能够满足这个条件的情况是不多的。在实际情况中,两个类别的集合往往是非线性可分的,甚
22、至是相互重叠的,对于这种情况,我们就不能简单的严格要求神经元的输出值为 1 和 0 进行分类,我们只能做到,当输入向量为时,输出值尽可能为 1,否则接近 0。按最小二乘算法的统计意义而言,就是要求实际输出值与这两个理想的输出值(1 和 0)之间的误差均方值为最小。如果有一种学习算法能够实现这个目标,即称为最小二乘或 LMS学习算法(LMS 是 Least mean square 的缩写) 。为此,需要把单元特性更为可微函数,例如 sigmoid 形式。当给定训练集后,我们的目标是寻找 ,使得 与 尽可能接近,用 E*W)(kXfY表示二者之间的差异。 ,其中 。所以应使 E 达到NkkYE12
23、)(2kkf最小,先求 E 的梯度 ,其中, 。若用kwEgrad1 2*)(1kkY,则有kkxW kkKkk XfYXY )(*(*/则 W 的修改规则为 Nk kkf1/)(*()(在上式中, 。这种学习方法,权值修正是按最陡下降方向进行。因此,有时称0他为梯度学习算法。9.5 BP 网络模型人工神经网络根据其模型建立的原理,可以分为数学模型和认知模型。数学模型主要是在神经元生理特性的基础上,通过抽象用数学表达式描述,它包括前向网络、反馈网络、随机网络等。而认知模型主要根据神经系统信息处理的过程建立的。ANN 的学习方式可以大致分为三大类:1:采用监督学习方式的 ANN。如 BP 网络,
24、这种方式的网络在投入使用前使用一个样本数据集来训练 ANN。2:采用非监督学习方式的 ANN。系统从多项重复工作中学习一个模式,并且在遇到类似问题时可以回忆起学到的模式。3:采用实时学习方式。学习过程和执行过程不加以区分的网络称为实时学习网络,这种 ANN 在使用时也可继续学习。在以上三种学习方式中,BP 网络是目前较为成熟的采用监督学习方式的应用最为广泛的代表性网络之一。以下我们详细介绍这种算法:前向多层神经网络的反传学习理论(Back-Propagation , 缩写为 BP)最早是由 Werbos 在1974 年提出来的。Rumelhart 等于 1985 年发展了反传学习网络算法,实现
25、了 Minsky 的多层网络的设想。网络不仅有输入层节点、输出层节点,而且还有隐层节点。隐层可以是一层,也可以是多层。当信号输入时,首先传到隐节点,经过作用函数后,再把隐节点的输出信号传播到输出层节点。经过处理后给出输出结果。节点的作用函数通常选用 S 型函数,如xef1)(图 9.1 给出了反传学习过程原理图。在这种网络中,学习过程由正向传播和反向传播组成。在正向传播过程中,输入信号从输入层经隐层单元逐层处理,并传向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,则转入反向传播,将输出信号的误差沿原来的连接通路返回。通过修改各层神经元的权值,使得误差信号最
26、小。图 91 反传学习过程原理图设有 n 个节点的任意网络,各节点之特性为 sigmoid 型。为简单起见,认为整个网络只有一个输出 y,任一节点 i 之输出为 ,设有 N 个样本 k=1,2,N ,对io),(kyx某一输入 ,网络之输出为 ,节点 i 之输出为 ,节点 j 之输入为kxkyik(9.5.1) iikjjkOWnet仍使用平方型误差函数 (9.5.2)NkkyE12)(2其中 为网络之实际输出,定义单个样本 k 的误差ky, , ,其中 , 2)(kiijjkOnet jkjnetE)(jkjknetfO于是 (9.5.3) ijkijkijjkij etEWtE(1)当 j
27、 为输出节点时, ,则 kijy )()(/jkkjkjk netfynety(9.5.4)权值修正误差e训练信号+X1X2X3 y2y1输出层隐层输出层(2)当 j 不是输出节点时,则有(9.5.5)ikjijkmjjjkOWEnetf)(/设网络分为 M 层,第 M 层仅为输出节点,第一层为输入节点,则反传学习算法步骤如下:1. 选定权值系数之初值为 W;2. 重复下述过程直至收敛(1)对 k =1 到 Na . 计算 和 (正向过程) jkinetOkyb.对各层 m=M 到 2 反向计算(反向过程)对同一层各节点 由式 (9.5.5)计算 ;( 输出节点与其它节点用不同公式)mjjk(
28、2)修正权值(9.5.6)ijijijWE0其中 (9.5.7)Nkijij1图 9.2 给出了反传单样本学习算法框图。下面以图 9.3 所示的简单网络为例,说明反传单样本学习算法的使用。设误差函数 E 为, , ,hcyOwnet1 )(11yynetfhdyOwt2 )(22yynetf, , 为第 k 样本 的误差函数。222)(k NkE1kkx根据公式NkWE1对第 k 个样本计算 ,去掉下标 k ,则21xwnetbah)(hhnetfO则反向传播过程如下:(1) 计算 : ,E11xetEhak, , 。21xnetWhhbkyyckntW11hyhydkOnetEW221(2)
29、 传播误差信号, , 。)()(11 /1yytf )()(22 /2yyetf )(/21 hdycyh tfw所以,给定 可以计算各个 ,再用最陡下降法修正 W:dcba, E, W0具体的 BP 算法如下:1: 给定权值,赋予每一个权一个较小的随机非零值。2:输入样本集中的某一样本。3:据这一样本的输入值计算出网络的实际输出值,求出差值。4:调整连接权值。5:转回 2,直到样本集中样本全部计算完。6:用改变后的权值对样本集重新计算误差,若精度符合要求,结束训练,否则转回2。图 9. 反传单样本学习算法框图 图 9.3 简单网络9.6 BP 网络的算法及改进从理论上说,上述算法存在局部极小
30、的问题。通过大量的实际运行,我们发现,沿梯度方向下降的误差函数 E 的图象一般如下图。从上图可以看出,随着迭代次数的增加,误差函数 E 有多个极小点,但最小点一般只有一个,且随着迭代次数的无限增加,误差函数E 的波幅会越来越小,直至在某一值附近稳定下来,但该值一般不一定是误差函数 E 的最初始化给定输入向量和目标输出求隐层、输出层各单元输出求目标值与实际输出偏差 EE 满足要求? 全部 ei 满足 ENDYes YesNO NO计算隐层单元误差求误差梯度权值学习Wa输入X1X2Y1Y2输出WaWaWah小点。从我们运行的许多方面的例子来看,只要样本选择合理及注意以下几个方面的问题,BP 网络运
31、行效果极佳。1适当选取特征参数参数的选取有一原则,那就是它的代表性、有效性。代表性要求选取的样品分析值的范围与该区域的物理参数的范围一致。有效性要求样本的个数是网络连接权数目的 35 倍,使之符合一般统计建模要求。误差 E 迭代次数 n 2数据预处理(1) 输入输出层的数据预处理。由于每个样品的各项测定值具有不同的单位或数量级不同。为了提高分类效果,必须把变量的测定值进行转换(笔者曾试过,一般不作变换,根本得不到结果) 。通常采用以下办法:A:标准化。用关系式 对测定值 Xij作变换的方法,称为数据的标准ijijSX/化。其中 m 是样本的特征数,n 是样本数, ,其中 i=1m,j=1,n.
32、jijiX1 nnjiiji /)(12B:正规化。用关系式 ,其中 i=1m;j=1n ,对测定值 Xij ijnjijnjijijij X11/ max作变换的方法,称为数据的正规化。此方法也称为归一化,较简单易行,也是较通常作法。以上为输入输出层的数据预处理方法,还有其它方法,在此不一一列举。需要指出的是,不管选定哪一种方法,待测样本的输入输出层数据要作与训练样本同样的变换。(2) 连接权值的选取。一般取 0 到 1 之间的随机数。3能量函数的选取: 几乎无一例外地选取平方型误差函数 ,其中nkkYE122)(为网络之实际输出,n 为样品数。kY4权值修正:大多采用梯度下降法。虽然其理论
33、上存在局部极小,但该方法简单易行,处理得好也不会导致局部极小。故为大多数人所采用。当然还有其它很多种方法。其中文献 3 中介绍了一种 BP 网络的全局最优学习算法。该方法是用基于 Monte-Conlo 模拟计算的逐步逼近法求解非线性函数总体极值的。据文献 3 计算,两种方法各有优劣,且都能较好的进行预测和区分。在这里为了克服过早地陷入局部极小,以及速度慢等问题,我们对权值系数修改公式实行了动量修改法。该方法并不是在每给一个样本后就立即修改权值系数,而是所用样本都施加后,对每个样本效果计算误差,权值系数调节量与误差总和有关。)()1( mWomWikjii 注意此处 m 为迭代步数而不是像原来
34、那样是样本号,右端是对所有样本求和。实践证明,该方法不会象原来那样存在满足一个样本,而另一样本又不满足,因而易陷入局部极小的问题。现在该方法使得误差减小始终朝着所有样本的误差同时减小的方向前进,直至达到精度要求为止。5隐层、隐层数的大小:随着计算机的升级,速度越来越快,这一问题已不再是问题了。隐层数可设为一层,个别输入特征数与输出层数相差悬殊时,可多设几层。例如,BP 网络用于公路无损检测时,输入层达 100 个以上,输出层只有 3 个。这时隐层数可多设 2 层或者 3 层,可加快收敛速度。至于隐层单元数,可设为输入层单元数与输出层单元数的平均数左右。6参数 的选取、一般取 0 到 1 之间的
35、实数。其中参数 的选取很重不容易,太大会导致振荡,太小会使收敛速度减慢。一般凭经验选取。我们对 的选取作了如下改进。、选择学习系数的最优化。 选择根据误差是否降低而定。若某次修正使误差减小,则在下一步时 乘以大于 1 的因子;若某次修正使误差增大,则放弃这一修正,把 乘以小于 1 的因子,并置 =0 重复一次,直到又得到使误差减小时, 恢复原值。可用式子表示:, 其中 且 都取一小正数,如 0.01。)sgn(10Ec10)sgn(E10,c实践证明,该方法可以使得 BP 网络更快、更早地跳出局部极小,找到符合精度要求的全局最优解。 7训练样本的选取主要有训练样本的数量和分布两个指标。分布指的
36、是训练样本的选取尽可能覆盖所有可能情况和区域,一般来说,至少应尽可能覆盖待测样本所在区域。对模式识别问题,训练样本的数量不在多,一般地说,每种类型选两个左右就行了。主要以分布为主。而对数据处理型问题,则要求训练样本数越多越好,至少应尽可能覆盖待测样本所在区域。根据以上叙述,我们将网络算法结构加以了改进,具体框图见图 9.4。下面我们以一实例来具体说明 BP 网络的算法及应用。实例 1:本实例采用 BP 网络模型,对岩性进行识别。输入层神经元数目由测井曲线(如自然电位,自然伽玛等)的数目决定,输出层神经元数目由岩性数(如砂岩,页岩等)决定。我们采用文献11中的例子,通过数值化作离散与插值得到三条
37、测井曲线,主要岩性是石灰岩、白云岩、页岩和砂岩。图 9.5 是反传神经网络(BP 网络)模型的结构,输入层神经元数目为 3,输出层神经元数目为 4。表 9.1 与表 9.2 是所用的两个学习样本集。表 9.1 学习样本集 1输入 期望输出岩性伽玛射线 中子 密度 石灰岩 白云岩 页岩 砂岩石灰岩 15.0 -2.0 -2.0 1.0 0.0 0.0 0.0白云岩 22.0 18.0 0.0 0.0 1.0 0.0 0.0页岩 135.0 24.0 4.0 0.0 0.0 1.0 0.0砂岩 30.0 6.0 10.0 0.0 0.0 0.0 1.0表 9.2 学习样本集 2岩性 输入 期望输出
38、伽玛射线 中子 密度 石灰岩 白云岩 页岩 砂岩石灰岩 5.0 10.0 10.0 1.0 0.0 0.0 0.0白云岩 5.0 20.0 2.0 0.0 1.0 0.0 0.0页岩 145.0 38.0 15.0 0.0 0.0 1.0 0.0砂岩 5.0 15.0 23.0 0.0 0.0 0.0 1.0图 9.4 改进后 BP 网络算法框图对以上实例,我们将从上面要求的几个方面来详细讨论。逐个样本进行计算NO所有样本周期训练初始化输入样本及期望输出正向计算隐层、输出层各单元输出求目标值与实际输出偏差 Ee 满足要求?YesNO反向计算误差信号权值学习计算总误差 E全部样本已完NO全部样本
39、已完NOYesE 满足要求?学习结束Yes正向计算各单元输出得到预测结果输入待测样本预测结束1.适当选取特征参数。选取了伽玛射线、中子、密度等测井曲线作为特征参数,以离散化形式给出。参见学习样本集 1 和 2。2.数据预处理。 (1)数据预处理。输入层数据采用归一化原则,取 Max=145,Min=-5,变换后见表 9.3:表 9.3 输入输出层的数据预处理输入(表 1) 输入(表 2)岩性伽玛射线 中子 密度 伽玛射线 中子 密度石灰岩 01333 002 002 00667 01 01白云岩 018 01533 00333 00667 01667 00467页岩 09333 01933 0
40、06 10 02867 01333砂岩 02333 00733 01 00667 01333 01867这里是模式识别问题,所以输出层神经元数据不需要进行变换。在处理其它问题如数据处理时也应将输出层神经元数据作归一化处理。应着重指出的是,不管是训练样本,还是待测样本,输入层数据都要作同样的变换。(2)权值的选取。还是取 0 到 1 之间的随机数。3能量函数的选取。选取平方型误差函数 。nkkYE122)(4权值修正。采用梯度下降法和动量修改法。5隐层数、隐层单元数的大小。隐层数取 1 就可以了;当样本数较大,这时隐层数可取 2或 3,当然也可取 1。隐层单元数在输入层单元数和输出层单元数之间为
41、好,最好是与输出层单元数相同。6参数 的选取。一般取 0 到 1 之间的实数。据以往经验,我们取 , 。、 9.07.为了加快其收敛速度,我们在网络运行过程中对 进行了一些改变,参见注意事项 6。 、表 9.4 由样本集 1 对样本集 2 的识别期望输出 网络输出岩性 石灰岩 白云岩 页岩 砂岩 石灰岩 白云岩 页岩 砂岩石灰岩 1.0 0.0 0.0 0.0 .9906577 .0224223 .5074034 .00157729白云岩 0.0 1.0 0.0 0.0 .0072144 .9962325 .0059019 .06884585页岩 0.0 0.0 1.0 0.0 .000001
42、9 .0266447 .9911762 .03469504砂岩 0.0 0.0 0.0 1.0 .0000532 .0000281 .0000343 .99996420伽玛射线中子密度密度 页岩白云岩输出层输出层石灰岩砂岩隐层输入层 隐层从表中可以看出,尽管样本集 1 或样本集 2 中每种岩性只有一个样本,但还是可以互相区分、鉴别。也就是说,对于类似的模式识别问题,选择样本时,每种类型可以只选择一个,图 9.5 实例 1 所用 BP 网络模型的结构表 9.5 由样本集 2 对样本集 1 的识别期望输出 网络输出岩性石灰岩 白云岩 页岩 砂岩 石灰岩 白云岩 页岩 砂岩石灰岩 1.0 0.0 0
43、.0 0.0 0.999299 0.005507 0.002166 0.0214345白云岩 0.0 1.0 0.0 0.0 0.010417 0.994339 0.013347 0.0132373页岩 0.0 0.0 1.0 0.0 0.000021 0.006763 0.995328 0.00238047砂岩 0.0 0.0 0.0 1.0 0.023311 0.012576 0.009860 0.99635540当然选两个也行,更多就没必要了。实例二:两种礞 AF 和 APF 已由生物学家根据它们的触角和翼长加以区分。已知样本(1.24,1.72)、(1.36,1.74)、(1.38,1
44、.64)、(1.38,1.82)、(1.38,1.9)、 (1.4,1.7)、(1.48,1.82)、(1.54,1.82)、(1.56,2.08)是 AF 礞,样本(1.14,1.78)、(1.18,1.96)、(1.2,1.86)、(1.26,2.)、(1.28,2.)、(1.3,1.96) 是 APF 礞。如何根据给出的触角长度和翼长识别出一只标本是 AF 礞还是 APF 礞是重要地。1):给定一只 AF 族或 APF 族的礞,你如何正确区分它属于哪一族?2):将你的方法用于触角长和翼长分别为(1.24,1.80) 、 (1.28,1.84) 、(1.40,2.04)的三个标本。3):设
45、 AF 是传益虫,APF 是某种疾病的载体,是否应修改你的分类方法?这一道题是 1989 年美国数模竞赛题。在此,我们不准备作详细讨论,只用几种方法来区分问题(2)中的三个标本。采用多元统计分析里的 Bayes 方法可以计算得(1.24,1.80)判归 APF,而另外两个判归 AF。采用多元统计分析里的 Fisher 方法,可以判别出(1.24,1.80) 、 (1.28,1.84)属于 APF,而(1.40,2.04)属于 AF。现我们采用 BP 网络来处理:1:首先进行输入数据预处理。采用归一化原则,结果见表 9.6-。2:隐层数定为 1,单元数为 2。3:A=0.7,B=0.9。4:训练
46、网络。经过 141983 次循环后,网络稳定了,精度达 10-6。将待测样本输入,判别结果见表 9.6-10。表 9.6训练样本(1.14,1.78) (1.18,1.96) (1.2,1.86) (1.26,2.)目标输出 (1,0) (1,0) (1,0) (1,0)网络输出 (.9988,.0012) (.9997,.0003) (.9993,.0007) (.9997,.0003)表 9.7训练样本(1.28,2.) (1.3,1.96) (1.24,1.72) (1.36,1.74)目标输出 (1,0) (1,0) (0,1) (0,1)网络输出 (.9996,.0004) (.99
47、85,.0015) (.0006,.9994) (.0001,.9999)表 9.8训练样本(1.38,1.64) (1.38,1.82) (1.38,1.9) (1.4,1.7)目标输出 (0,1) (0,1) (0,1) (0,1)网络输出 (.0000,1.00) (.0002,0.9998) (.0015,0.9985) (.000,1.000)表 9.9训练样本(1.48,1.82) (1.54,1.82) (1.56,2.08)目标输出 (0,1) (0,1) (0,1)网络输出 (0.0002,0.9998) (0.0002,0.9998) (0.0005,0.9995)表 9.
48、10待测样本(1.24,1.80) (1.28,1.84) (1.40,2.04)网络输出 (0.5441,0.4559) (0.247,0.753) (0.9396,0.0603)从表中可以看出, (1.40,2.04)肯定属于 APF, (1.28,1.84)属于 AF,而(1.24,1.80)就较难判别。但如认为将 APF 错判为 AF 的危害要比把 AF 错判为 APF 的为大,则(1.24,1.80)就判为 APF。因此 BP 网络可以得出( 1.40,2.04) 、 (1.24,1.80)属于 APF,而(1.28,1.84)属于 AF。这与以上其它方法的结果相差较大,但我们从图上可以看出,BP 网络的结果显然更符合要求。 为了检验少样本的有效性,我们取两个样本(每种蠓虫一个) 进行训练,结果发现网络对现有 15 个已知样本的预测准确率只有 90%左右,对未知样本就很难知其准确性了。我们分析其图形后发现,两种蠓虫分类是平面区域上的