HarbinInstituteofTechnology实验报告课程名称:模式识别院系:电子与信息工程学院姓名:学号:授课教师:宿富林哈尔滨工业大学1实验目的(1)掌握人工神经网络(artificialneutralnetwork,ANN)的基本原理、结构及用途;(2)深入学习反向传播(backpropagation,BP)神经网络的信息传递与处理模型、基本算法及其在模式识别中的应用;(3)构造不同样本修正算法的BP神经网络对实验数据根据要求进行分类,并对分类结果进行验证、分析。2实验原理2.1人工神经网络概述人工神经网络(ArtificialNeuralNetworks,即ANN)是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型。该模型以并行分布的处理能力、高容错性、智能化和自学习等能力为特征,将信息的加工和存储结合在一起,以其独特的知识表示方式和智能化的自适应学习能力,引起各学科领域的关注。它实际上是一个有大量简单元件相互连接而成的复杂网络,具有高度的非线性,能够进行复杂的逻辑操作和非线性关系实现的系统。2.2人工神经网络的特点神经网络模型用于模拟人脑神经元的活动过程,其中包括对信息的加工、处理、存储、和搜索等过程。人工神经网络具有如下基本特点:(1)高度的并行性;(2)高度的非线性全局作用;(3)联想记忆功能和良好的容错性;(4)良好的自适应、自学习功能;(5)知识的分布存储。人工神经网络是一种旨在模仿人脑结构及其功能的信息处理系统。因此,它在功能上具有某些智能特点:(1)联想记忆功能;(2)分类与识别功能;(3)优化计算功能;(4)非线性映射功能。正是神经网络所具有的这种学习和适应能力、自组织、非线性和运算高度并行的能力,解决了传统人工智能对于直觉处理方面的缺陷,例如对非结构化信息、语音模式识别等的处理,使之成功应用于神经专家系统、组合优化、智能控制、预测、模式识别等领域。2.3人工神经网络的组织结构2.3.1神经元1.生物神经元的结构:神经细胞是构成神经系统的基本单元,称之为生物神经元,简称神经元,主要由四部分组成:胞体、轴突、树突和突触。典型神经元结构如图1所示。图1生物神经元结构神经元的信息传递和处理是一种电化学活动。树突由于电化学作用接受外界的刺激,通过胞体内的活动体现为轴突电位,当轴突电位达到一定的值则形成神经脉冲或动作电位;再通过轴突末梢传递给其它的神经元。神经元的功能特性:(1)时空整合功能;(2)神经元的动态极化性;(3)兴奋与抑制状态;(4)结构的可塑性;(5)脉冲与电位信号的转换;(6)突触延期和不应期;(7)学习、遗忘和疲劳。2.人工神经元的结构:神经元是构成神经网络的最基本单元(构件)。它是一个多输入单输出的信息处理单元,而且,它对信息的处理是非线性的。一个n输入的神经元模型如图2所示。图2人工神经元模型神经元的输出表示为:1()RiiiiiYfX(2-1)其中,神经元的输入向量表示为12[,,,]TRXXXX;神经元的权值向量表示为12[,,,]R;神经元的阀值为i;神经元的传递函数为f;神经元的输出为iY。2.3.2激活函数在神经网络中,网络解决问题的能力与效率除了与网络结构有关外,在很大程度上取决于网络所采用的激活函数。激活函数的选择对网络的收敛速度有较大的影响,针对不同的实际问题,激活函数的选择也应不同。通常我们会选取有界的、分段可微的函数作激活函数,常用的激活函数有以下几种形式:(1)阈值函数:该函数通常也称为阶跃函数。当激活函数采用阶跃函数时,人工神经元模型即MP模型。此时神经元的输出取1或0,反应了神经元的兴奋或抑制。(2)线性函数:该函数可以在输出结果为任意值时作为输出神经元的激活函数,但是当网络复杂时,线性激活函数大大降低网络的收敛性,故一般较少采用。(3)对数S形函数:对数S形函数的输出介于0~1之间,常被要求为输出在0~1范围的信号选用。它是神经元中使用最为广泛的激活函数。(4)双曲正切S形函数:双曲正切S形函数类似于被平滑的阶跃函数,形状与对数S形函数相同,以原点对称,其输出介于-1~1之间,常常被要求为输出在-1~1范围的信号选用。本次试验选取S型(Sigmoid)函数,如图3中,图(a)和图(b)。Sigmoid函数的特性:1)非线性,单调性。2)无限次可微。3)当权值很大时可近似阈值函数。当权值很小时可近似线性函数。(a)(b)图3人工神经网络激活函数示意图2.3.3学习规则神经网络的学习规则是修正权值的一种算法,分为联想式和非联想式学习,有监督学习和无监督学习等。下面介绍几个常用的学习规则。(1)误差修正型规则:是一种有监督的学习方法,根据实际输出和期望输出的误差进行网络连接权值的修正,最终网络误差小于目标函数达到预期结果。误差修正法,权值的调整与网络的输出误差有关,它包括δ学习规则、Widrow-Hoff学习规则、感知器学习规则和误差反向传播的BP(BackPropagation)学习规则等。(2)竞争型规则:无监督学习过程,网络仅根据提供的一些学习样本进行自组织学习,没有期望输出,通过神经元相互竞争对外界刺激模式响应的权利进行网络权值的调整来适应输入的样本数据。对于无监督学习的情况,事先不给定标准样本,直接将网络置于“环境”之中,学习(训练)阶段与应用(工作)阶段成为一体。(3)Hebb型规则:利用神经元之间的活化值(激活值)来反映它们之间联接性的变化,即根据相互连接的神经元之间的活化值(激活值)来修正其权值。在Hebb学习规则中,学习信号简单地等于神经元的输出。Hebb学习规则代表一种纯前馈﹑无导师学习。该学习规则至今在各种神经网络模型中起着重要作用。典型的应用如利用Hebb规则训练线性联想器的权矩阵。(4)随机型规则:在学习过程中结合了随机、概率论和能量函数的思想,根据目标函数(即网络输出均方差)的变化调整网络的参数,最终使网络目标函数达到收敛值。2.3.4神经元之间的连接形式单独的人工神经元不能独自处理输入信号,神经网络是一个复杂的互连系统,单元之间的互连模式将对网络的性质和功能产生重要影响,互连模式种类繁多。典型的神经网络结构可以分为以下两类:前馈型神经网络和反馈型神经网络。1.前馈型神经网络(前向网络):网络可以分为若干“层”,各层按信号传输先后顺序依次排列,。第i层的神经元只接受第(i-1)层神经元给出的信号,各神经元之间没有反馈。前馈型网络可用一有向无环路图表示,如图4所示。图4前馈神经网络结构示意图可以看出,输入节点并无计算功能,只是为了表征输入矢量各元素值。各层节点表示具有计算功能的神经元,称为计算单元。每个计算单元可以有任意个输入,但只有一个输出,它可送到多个节点作输入。称输入节点层为第零层。计算单元的各节点层从下至上依次称为第1至第N层,由此构成N层前向网络。第一节点层与输出节点统称为“可见层”,而其他中间层则称为隐含层(hiddenlayer),这些神经元称为隐节点。从控制的观点看,前馈型神经网络的用途主要体现在它的非线性的映射关系能被用来实现非线性系统的建模、辨别和控制。最为典型的是BP神经网络。2.反馈型神经网络:典型的反馈型神经网络如图5(a)所示。在反馈网络中每个节点都表示一个计算单元,同时接受外加输入和其它各节点的反馈输入,每个节点也都直接向外部输出。在某些反馈网络中,各神经元除接受外加输入与其它各节点反馈输入之外,还包括自身反馈。有时,反馈型神经网络也可表示为一张完全的无向图,如图5(b)。图中,每一个连接都是双向的。这里,第i个神经元对于第j个神经元的反馈与第j至i神经元反馈之突触权重相等。反馈型神经网络的机构相比前馈型神经网络的结构要复杂得多,Hopfield神经网络和Elman神经网络是典型的反馈型神经网络。(a)(b)图5反馈型神经网络结构示意图以上介绍了两种最基本的人工神经网络结构,实际上,人工神经网络还有许多种连接形式,例如,从输出层到输入层有反馈的前向网络,同层内或异层间有相互反馈的多层网络等等。2.4BP神经网络模型BP神经网络(Back-PropagationNeuralNetwork)是一种多层前馈网络,在模式分类、预测等方面有较广泛的应用,是现今最流行的神经网络之一。Rumelhart,McClelland和他们的同事在1982年成立了PDP小组,研究并行分布信息处理方法。1985年发展了BP网络,系统地解决了多层神经元网络中隐含层连接权的学习问题,并且在数学方面提出了完整的推导。2.4.1BP网络结构BP神经网络是误差反向传播的有三层或者三层以上神经元的前馈型神经网络,即网络在输入层和输出层之间有一层或者多层隐含神经元。BP算法又称为“误差反向传播算法”,它的具体过程由两部分组成一一信号的正向传播和误差的反向传播。正向传播时,输入样本从输入层传入,经过中间层处理之后向输出层传播。如果输出层与期望的输出不符合时,要将输出误差经过中间层逐层反传到输入层,把误差分配给各层所有的神经元,并把此作为依据对所有神经元的权值进行修正。最基本的BP网络是三层前馈网络——输入层、隐含层和输出层,每层由很多并行运算的简单神经元组成,网络的层与层之间使用全互连方式,层内部神经元之间无连接,BP神经网络的网络结构可以用图6的形式来描述。图6典型的BP网络结构图因为误差反向传播过程中会对传递函数进行求导计算,所以要求BP网络的传递函数必须是可微的,比如Sigmoid型的对数、正切函数或线性函数都是常用的传递函数。由此,BP网络所划分的区域就是一个非线性超平面组成的区域[2],而不再是一个线性划分,它是比较平滑的曲面,分类比线性划分更加精确,容错性也比线性划分更好;另外,网络可以严格采用梯度下降法进行学习,权值修正的解析式非常明确。2.4.2反向传播算法(BP算法)以结构最简单的基本感知器说明实验中实际应用的反向传播算法基本理论。感知器是一种双层神经网络模型,一层为输入层,另一层具有计算单元,可以通过监督学习建立模型判别的能力,如图7所示。图7感知器模型示意图当感知器用于模式识别时,可以用每个输入节点表示样本的特征向量,每个输出节点可以用来表示类别属性,例如:若ixw时,应使对应于该类的输出节点的输出Oi=1,而其他节点的输出则为Oi=0(或-1)。感知器的学习过程与求取线性判别函数的过程是等价的,需要指出的是:两层感知器只能用于解决线性可分问题,且学习过程收敛很快,且与初始值无关。任何逻辑函数都可以化为析取形式,所以任何逻辑函数都可用一个三层的前馈网络实现。在很宽松的条件下,三层前馈网络可以逼近任意的多元非线性函数,突破了二层前馈网络线性可分的限制。三层前馈网络的适用范围大大超过二层前馈网络,但学习算法较为复杂,主要困难是中间的隐含层不直接与外界连接,无法直接计算其误差。BP算法可解决这一问题,主要思想:从后向前(反向)逐层传播输出层的误差,以间接算出隐含层误差。算法分为两个阶段:第一阶段(正向过程),输入信息从输入层经隐含层逐层计算各单元的输出值;第二阶段(反向传播过程),输出误差逐层向前算出隐含层各单元的误差,并用此误差修正前层权值。在反向传播算法中通常采用梯度法修正权值,为此要求输出函数可微,通常采用Sigmoid函数作为输出函数。不失普遍性,我们研究处于某一层的第j个计算单元,脚标i代表其前层第i个单元,脚标k代表后层第k个单元,jO代表本层输出,ijw是前层到本层的权值,如图8所示。图8反向传播算法结构示意当输入某个样本时,从前到后对每个单元作如下计算(正向算法)jijiinetwO(2-2)jjOfnet()(2-3)对于输出层而言,ˆjjyO是实际输出值,jy是理想输出值,此样本下的误差为:21ˆ2jjjEyy(2-4)为了使式子简化,定义局部梯度jjEnet(2-5)如果节点j是输出单元,则ˆjjOy'ˆEˆˆjjjjjjjy