成晓鹏,侯道琪
(解放军电子工程学院,合肥 230037)
基于前馈神经网络的模式识别效率分析
成晓鹏,侯道琪
(解放军电子工程学院,合肥230037)
人工神经网络(Artificial Neural Networks,ANN)融会了生物物理学和数学,是一种新兴的问题求解办法,被广泛应用于机器学习、专家系统、智能控制、模式识别以及计算机视觉等多领域[1]。前馈神经网络算法(Feed-forward Neural Networks)是一种基础的人工神经网络算法,被广泛应用于求解模式识别问题中;但是其网络训练过程一直是一个值得研究和探索的重点。本文基于一个字符识别系统的设计开发流程,重点探讨了应用前馈神经网络算法求解模式识别问题的方法,并进行了影响网络训练效率的相关要素分析,最后通过实例仿真,更为直观地展现了各相关因素对网络训练效率的影响。
现代计算机虽然有很强的计算和信息处理能力,但是它解决模式识别、感知、评判和决策等复杂问题的能力却远不如人,缺乏向环境学习、适应环境的能力。人脑则具有大量的神经元,在情况分析判断、学习和决策等方面的性能要比计算机高的多。为了模仿人脑的工作方式,构造一种更接近人类智能的信息处理系统以提高计算机求解智能问题的能力,人们设计实现了人工神经网络。简言之,人工神经网络就是一种具有大量连接的并行分布处理器,它具有通过学习获取知识并解决问题的能力,且知识是分布存储在连接权(对应于生物神经元的突触)中,而不是像常规计算机那样按地址存在特定的存储单元中[2]。
人工神经元模型的设计是计算机仿生学的一个重大成就,目前已经非常成熟。本文由于篇幅限制,只对其进行简要的介绍。图1所示为神经元模型的基本结构,它主要有三个基本要素:
(1)一组连接权(对应于生物神经元的突触),连接强度由各连接上的权值表示,权值为正表示激励,权值为负表示抑制。
(2)一个求和单元,用于求取各输入信息的加权和(线性组合);此外为了对各输入信息进行调节,还需要设置一个阈值θk。
(3)一个非线性激励函数,起到非线性映射作用并限制神经元输出幅度在一定的范围之内 (一般限制在[0,1]或[-1]之间)。
图1 人工神经元模型
以上作用可以用数学表达为:
其中激励函数φ(·)的形式常取阈值函数、分段线性函数和Sigmoid函数三种。但是因为Sigmoid函数具有平滑和渐进性,并且保持单调性,所以最为常用。其函数形式如式(2)所示:
式中,参数α可以控制其斜率。Sigmoid函数的图形如图2所示。
图2 Sigmoid函数曲线图
前馈型网络是ANN的一种典型拓扑结构。在前馈型网络中,各神经元接受前一层的输入,并输出给下一层,没有反馈。结点分为两类,即输入单元和计算单元。每一计算单元可以有任意多个输入,但只有一个输出(它可以耦合到任意多个其他结点作为其输入)。前馈网络可分为不同的层,第i层的输入只与第i-1层输出相连,输入和输出结点与外界相连,而其他中间层称为隐层。图3所示为具有一个隐层的前馈型神经网络的网络结构。
图3 含一个隐层的前馈型神经网络结构
前馈神经网络的工作过程主要分为两个阶段。一个阶段是学习期,此时各计算单元状态不变,各连线上的权值通过学习来修改。第二阶段是工作期,此时连接权固定,计算单元状态的变化,以达到某种稳定的状态。这一部分将在后面的章节结合具体问题进行详述。
前馈型网络的作用效果主要是函数映射,可以有效运用于模式识别和函数逼近,所以在解决字符识别、语音识别等模式匹配问题时具有独到的优势。为了探究前馈神经网络在字符识别技术中的运用,本文构建了一个简易的字符识别系统。该系统能够通过人工神经网络,对给定的字符样本进行学习记忆,最终实现对用户给定的未知形状的字符的识别。
在第二节中已经论述了典型的前馈神经网络由输入层、隐层和输出层组成。在解决实际问题时,所谓网络结构的设计主要就是确定输入层、输出层的神经元的个数,以及隐层的层数和每个隐层的神经元的个数。这些数值的确定需要算法运用人员结合具体问题具体分析;但由于具有偏差和至少一个S型隐层加上一个线性输出层的网络,能够逼近任何有理函数;所以神经网络的结构不完全受所要解决的问题的限制。网络的输入神经元数目及输出层神经元的数目是由问题的要求所决定的,而输入和输出层之间的隐层数以及每层的神经元数是由设计者来决定的。
通过向环境学习获取知识并改进自身性能是ANN的一个重要特点。性能的改善是按某种预定的度量通过调节自身参数 (如权值)随时间推移逐步达到的。在前馈神经网络的学习方式中,最常用的学习方式就是监督学习(有教师学习)。这种学习方式需要外界存在一个“教师”,它可对给定一组输入提供应有的输出结果(正确答案),根据已知输出与实际输出之间的差值(误差信号)来调节系统参数,其流程图如图4所示。
图4 监督学习方式的学习流程图
如果学习系统所处的环境平稳时,那么学习系统的参数在完成学习记忆之后就会形成一个稳定的状态。字符学习系统的样本是已经广泛应用的成型字符,是基本不会发生变化的。所以本文在设计ANN的学习规则时重点采用了误差纠正学习。这种学习规则的数学表示如下:
令yk(n)是输入为xk(n)时神经元k在n时刻的实际输出,dk(n)表示应有的输出(可有训练样本决定),则误差信号可写为ek(n)=dk(n)-yk(n)。为了达到网络中的每一单元的实际输出在某种统计意义上逼近应有输出,可以选取误差平方和的均值:
作为目标函数进行网络学习训练的目标函数,当J值在训练过程中达到给定阈值φ以下时,就可以认为网络的学习训练过程可以结束了。但是在实际过程中很难直接得到误差平方和的均值,所以常用J在时刻n的瞬时值ξ(n)代替J,即,此时问题变为求ξ(n)对权值ω的极小值,根据梯度下降法,可以得到Δωkj=ηek(n)xj(n),η为预先设定的学习步长。
该字符识别系统的给定样本如图5所示。该样本共有十个字符,每个字符是一个8×8的点阵,教师向量是长度为10的行向量,所以在设计网络结构时,把输入层的神经元的个数设计为64个,把输出层的神经元的个数设计为10个。同时由于问题本身相对简单,维度较小,所以设计网络的隐层的层数为1层,隐层所含的神经元的个数对网络训练的影响效果将在下文进行详细论述。
图5 字符样本集
网络中的权值体现了把输入模式映射到网络所需的知识;寻找有用权值的过程称为网络训练。前馈神经网络的训练方法主要是反向传播 (Back Propagation,BP)算法。本小节主要就是结合简易字符识别系统的设计过程来论述BP算法在前馈神经网络训练中的运用。结合前面所述,神经网络应用于模式识别的基本原理就是将代表识别模式的输入矢量输入至输入层,并传至后面的隐层,最后通过连接权输出到输出层。该网络中的每个神经元的输出的数学描述如下:
式(4)中outi是所考虑层中第i个神经元的输出;outj是前一层第j个神经元的输出,ωij是各神经网络结点间的权值,φ是激励函数,常取Sigmoid函数。
在进行网络训练之前,首先必须度量网络收敛到用户的期望值的程度。如前所述,可以采用网络误差的均方差作为度量函数。由此,可以定义均方差如下:
式(5)中,Ep是第p个表征矢量的误差,tpj是第个神经元的期望值,Opj是第j个输出神经元的实际值。因为最终形式是整体求和,所以上式可以反映单个输出神经元对整体误差的影响。根据梯队下降训练算法,我们可以调整权值来使得网络整体误差最小,这就涉及到了网络训练的最为核心本质的内容:权值究竟应该如何调整。
根据梯度的定义,权值的误差函数负梯度指向误差函数减小最快的方向。如果在权值空间沿这个矢量移动,最终将达到最小值,且最小值处梯度为零。该过程用数学方法可以描述为:
式(6)中,Δpωji表示连接第l-1层的源神经元i和l层的目的神经元j之间的权值的变化。因为权值的这个变化规律,将导致梯度沿着降低误差的方向的变化,最终达到误差的最小值。
确定了权值的变化规律之后,就必须要确定如何调整每个权值使得网络收敛。为了便于计算机计算,需要对式(5)进行变形:
根据微分的数学原理:
netpj代表对l-1层的所有神经元的输出Opl求和,由此
继续变形:
由此:
但是在计算权值变化量时,必须考虑目的神经元是位于输出层还是隐层之内。经过数学计算,可以得到如下结论:
但是真正的梯度下降法在实际使用过程中以无穷小的步长进行,这显然在实际中做不到。由此,我们必须对该算法进行改进,在权值调整过程中加入学习步长η和动量因子α,这样权值调整公式就变为了:
学习步长η相当于步长的增益,动量因子α通过考虑过去权值的变化可以滤掉高频变量,最终使网络达到快速收敛的目的。
综合前面的算法分析,在前馈神经网络的学习训练过程中,网络训练效率的相关影响因素主要有:隐层神经元的个数H(取隐层的层数为一层)、学习步长η、动量因子α和用户对于网络训练效果的期望值Ø。图6是进行实例仿真的相关效果图。同时根据仿真效果图,还可以进行相关因素对网络训练效率的影响效应分析,得出实际结论,为前馈神经网络训练的相关效应因子的选取提供现实指导。
图6 相关因素对网络训练效率的影响效应仿真图
通过对以上仿真效果图进行分析,我们可以得出如下结论:
①隐层神经元的数目H对网络训练效率的影响是十分显著的,所以利用前馈神经网络求解问题时,合理设计网络结构十分必要。如果设计的隐层神经元数目较少,很有可能出现在较短的网络训练周期内无法达到满意的训练效果,甚至会使网络误差出现较大的震荡,形成“毛刺”效应。
②用户选取学习步长η时,应该结合待求解问题本身的解空间的容量,同时应该结合网络误差效应函数的单调性。以本文所述的字符识别问题为例,由于问题本身维度较少,空间复杂度低,同时网络误差函数随着训练次数的增加呈现单调递减性,所以在选取学习步长时可以选取较大的常数。如果利用前馈神经网络算法求解复杂性问题,同时网络误差效应函数是不可预期的,这时必须尽量选取较小的学习步长,以牺牲时间效率来换取最大限度得对解空间的遍历。
③动量因子本身考虑的是前次权值调整量对本次权值调整量的影响效应,体现了网络训练的动态连续性。在动量因子的选取上,应该尽量遵循选取较小值的原则。如仿真图所示,当选取的动量因子较大时,网络误差效应函数曲线会出现很多小的“毛刺”,缺乏平滑性。根据经验值,动量因子α的取值一般要求小于0.5。
④用户自定义期望ø实质上代表的是神经网络设计人员对网络训练误差的容忍度。当问题本身的解空间较小或者问题本身对求解结果的精确度有要求时,我们应尽可能地选取较小的网络训练误差期望值以提高神经网络模式识别的准确率。当然,如果问题的解空间较大或者用户对网络训练效率有要求时,就必须折衷考虑网络效率和求解结果精确度,做到统筹兼顾,选取一个合适的期望阈值。一般情况下,如果对精确度没有更高的要求时,我们可以选取Ø=0.0001。
⑤综合以上结论,可以看出,影响前馈神经网络训练效率的四个因素中,H的贡献率最大,η、α以及Ø的贡献率较小。所以,增加H是提高前馈神经网络训练效率的最快办法。另外,适当调整、α以及的值也可以对网络训练效率进行微调。
在对上述四个因素进行分析之后,取H=30、η=1、α=0.2、Ø=0.0001,进行编程,得到的软件仿真结果如图7所示。
图7 软件仿真结果图
本文以前馈神经网络算法在简易字符识别系统设计中的应用为背景,重点研究了利用BP算法进行ANN网络训练的算法原理和过程,对影响网络训练效率的相关因素进行了详细地分析;并通过MATLAB仿真图直观地展示了隐层神经元个数、学习步长、动量因子以及用户自定义网络误差期望值对网络训练效率的影响效果,最后通过简易字符识别系统的设计实现证明了前馈神经网络算法在解决模式识别问题方面的高效性。
[1]王士同.人工智能教程(第2版)[M].北京,电子工业出版社,2006.
[2]姚瑞波,孙国雄.多层神经网络BP算法的改进[J].东南大学学报,2007,26(4):126-129.
[3]俞杰,沈寿林.基于BP神经网络算法的弹药需求仿真研究[J].系统仿真学报,2009,21(9):2734-2736.
[4]王桂娟.基于MATLAB仿真的神经网络控制器的设计与实现[J].系统仿真学报,2005,17(3):742-745.
[5]白焰,何芳.球磨机存煤量和钢球动能信息融合的神经网络模型[J].系统仿真学报,2015,27(4):689-696.
[6]梁久桢,何新贵.神经网络BP算法动力学分析[J].自动化学报,2002,28(5):729-735.
Feed-Forward Neural Networks;BP Algorithm;Network Training
Research on the Network Training of the Feed-forward Neural Networks Algorithm
CHENG Xiao-peng,HOU Dao-qi
(Information Warfare Laboratory,Electronic Engineering Institute,Hefei 230037)
1007-1423(2015)26-0021-06
10.3969/j.issn.1007-1423.2015.26.006
成晓鹏(1991-),男,山西介休人,硕士研究生,研究方向为作战仿真
2015-08-13
2015-09-06
结合简易字符识别系统的设计过程,论述前馈神经网络算法的基本数学原理,并给出利用该算法求解模式识别问题的基本流程;重点研究利用BP算法进行网络训练的原理,并对影响网络训练效率的相关因素进行深入分析,结合MATLAB进行影响效应分析。通过实例仿真,结合仿真效果,验证前馈神经网络算法应用于求解模式识别问题的高效性。
前馈神经网络;BP算法;网络训练
侯道琪(1990-),男,河南焦作人,硕士研究生,研究方向为作战仿真
Combining with the design procedure of the simple character recognition system,introduces the mathematics theory of the Feed-forward Neural Networks.Demonstrates the process that solves schema recognition and the theory of BP algorithm.At the same time,analyses the factors that can contribute to the networks training efficiency deeply by using MATLAB.Designs the character recognition system and confirms the algorithm is efficient in solving this type of problem.