第5章 神经网络技术 神经网络是由众多简单的神经元连接而成的一个网络。尽管每个神经元结构、功能都不复杂,但网络的整体动态行为却是极为复杂的,可以组成高度非线性动力学系统,从而可以表达很多复杂的物理系统。神经网络的下列特性对控制是至关重要的。 (1) 并行分布处理。神经网络具有高度的并行结构和并行实现能力,因而能够有较好的耐故障能力和较快的总体处理能力,这特别适于实时控制和动态控制。 (2) 非线性映射。神经网络具有固有的非线性特性,这源于其近似任意非线性映射(变换)能力,这一特性给非线性控制问题带来新的希望。 (3) 通过训练进行学习。神经网络是通过所研究系统过去的数据记录进行训练的,一个经过适当训练的神经网络具有归纳全部数据的能力,因此,神经网络能够解决那些数学模型或描述规则难以处理的控制过程问题。 (4) 适应与集成。神经网络能够适应在线运行,并能同时进行定量和定性操作,神经网络的强适应和信息融合能力使得网络过程可以同时输入大量不同的控制信号,解决输入信息间的互补和冗余问题,并实现信息集成和融合处理。这些特性特别适于复杂、大规模和多变量系统的控制。 (5) 硬件实现。神经网络不仅能通过软件而且可借助硬件实现并行处理。近年来,由一些超大规模集成电路实现的硬件已经面市,这使得神经网络成为具有快速和大规模处理能力的网络。 很显然,神经网络由于其学习和适应、自组织以及大规模并行处理等特点,在自动控制领域展现了广阔的应用前景。 5.1 神经网络基础 5.1.1 生物神经元结构 图5-1 生物神经元结构从生物控制与信息处理的角度看,神经元结构如图5-1所示,它由细胞体、树突和轴突组成。细胞体由细胞核、细胞质和细胞膜组成。由细胞体向外伸出的最长的一条分支称为轴突,即神经纤维。远离细胞体一侧的轴突端部有许多分支,称轴突末梢,其上有许多扣结称突触扣结。轴突通过轴突末梢向其他神经元传出神经冲动。由细胞体向外伸出的其他许多较短的分支称为树突。树突相当于细胞的输入端,它用于接受周围其他神经细胞传入的神经冲动。神经冲动只能由前一级神经元的轴突末梢传向下一级神经元的树突或细胞体,不能作反方向的传递。 神经元具有两种常规工作状态: 兴奋与抑制,即满足“0-1”律。当传入的神经冲动使细胞膜电位升高超过阈值时,细胞进入兴奋状态,产生神经冲动并由轴突输出;当传入的神经冲动使膜电位下降低于阈值时,细胞进入抑制状态,没有神经冲动输出。 5.1.2 神经元数学模型 根据神经元的结构和功能,从20世纪40年代开始先后提出的神经元模型有几百种之多。下面介绍一种基于控制观点的神经元的数学模型,它由三部分组成,即加权加法器、线性动态系统和非线性函数映射,如图5-2所示,图中,yi 为神经元的输出,wi 为神经元的阈值,aij、bik为权值,uk(k=1,2,…,M)为外部输入;yi(j=1,2,…,N)为其他神经元的输出。 图5-2 神经元数学模型 1. 加权加法器 加权加法器用来实现一个神经细胞对接收来自四面八方信号的空间整合功能,即vi(t)=∑Nj=1aijyj(t)+∑Mk=1bikuk(t)+wi(5-1)其中,vi(t)为空间整合后输出信号;wi为一常数,其作用是在某些情况下控制神经元保持某一状态。 式(5-1)记为矩阵形式为V(t)=AY(t)+BU(t)+W (5-2)其中,A={aij}N×N,B={bij}M×M,V=[v1,…,vN]T,Y=[y1,…,yN]T,U=[u1,…,uM]T,W=[w1,…,wN]T. N维常向量W可以合并在U中,但分开列写对于清楚表达是有用的。 2. 线性动态系统的传递函数描述 神经元的输入信号来自其他神经元的各种神经冲动,这种信号具有典型的脉冲特点。因此,从控制系统的角度,可以让经过加权加法器空间整合后的信号v(t)通过一个单输入单输出线性系统,该系统对于单位脉冲函数的响应就完成了时间整合作用。该线性动态系统的脉冲函数的响应为卷积积分,即xi(t)=∫tt0h(t-t′)vi(t′)dt′, t≥t0 (5-3)依卷积定理可得: Xi(s)=H(s)Vi(s)(5-4)式中,H(s)为线性动态系统的网络函数,通常取为1,1s,11+Ts,e-Ts. 在时域中,相应的线性动态系统的输入vi(t)和输出xi(t)的关系分别为:  ①xi(t)=vi(t) ② x·i(t)=vi(t) ③ Tx·i(t)+xi(t)=vi(t) ④ xi(t)=vi(t-T)(5-5)3. 常用的非线性函数 图5-2中的非线性函数实际上是神经元模型的输出函数,它是一个非动态的非线性函数,用以模拟神经细胞的兴奋、抑制以及阈值等非线性特性。 经过加权加法器和线性动态系统进行时空整合的信号xi,再经非线性函数g(·)后即为神经元的输出 yi,即yi=g(xi) 常用的非线性函数如表5-1所示。表5-1 神经元模型中常用的非线性函数名称阈值函数双向阈值函数S型函数双曲正切函数高斯函数公式 g(x)g(x)=1,x>0 0,x≤0g(x)=+1,x>0 -1,x≤0 g(x)=11+e-xg(x)=ex-e-xex+e-xg(x)=e-(x2/σ2)图形特征不可微,类阶跃,正值不可微,类阶跃,零均值可微,类阶跃,正值可微,类阶跃,零均值 可微,类脉冲 上述非线性函数具有两个显著的特征,一是它的突变性,二是它的饱和性,这正是为了模拟神经细胞兴奋过程中所产生的神经冲动以及疲劳等特性。 5.2 神经网络的结构和学习规则5.2.1 神经网络的结构 如果将大量功能简单的基本神经元通过一定的拓扑结构组织起来,构成群体并行分布式处理的计算结构,那么这种结构就是神经网络结构。 根据神经元之间连接的拓扑结构上的不同,可将神经网络结构分为两大类: 层状结构和网络结构。层状结构的神经网络是由若干层组成,每层中有一定数量的神经元,相邻层中神经元单向联接,一般同层内的神经元不能联接;网状结构的神经网络中,任何两个神经元之间都可能双向联接。下面介绍几种常见的网络结构。 1. 前向网络(前馈网络) 前向网络通常包含许多层,如图5-3所示为含有输入层、隐层和输出层的三层网络,该网络中有计算功能的结点称为计算单元,而输入结点无计算功能。 2. 反馈网络 反馈网络从输出层到输入层有反馈,既可接收来自其他结点的反馈输入,又可包含输出引回到本身输入构成的自环反馈,如图5-4所示,该反馈网络每个结点都是一个计算单元。 图5-3 前向网络 图5-4 反馈网络 3. 相互结合型网络 相互结合型网络如图5-5所示,它是属于网状结构,构成网络中的各个神经元都可能相互双向联接。在前向网络中,信息处理是从输入层依次通过隐层到输出层,最后处理结束;而在相互结合型网络中,若某一时刻从神经网络外部施加一个输入,各个神经元一边相互作用,一边进行信息处理,直到使网络所有神经元的活性度或输出值收敛于某个平均值作为信息处理的结束。 4. 混合型网络 混合型网络联接方式介于前向网络和相互结合型网络之间,如图5-6所示。这种在前向网络的同一层神经元之间有互联的结构,称为混合型网络。这种在同一层内的互连,目的是为了限制同层内神经元同时兴奋或抑制的神经元数目,以完成特定的功能。 图5-5 相互结合型网络 图5-6 混合型网络 5.2.2 神经网络的学习 学习是神经网络最重要的特征之一。神经网络能够通过训练、改变其内部表征,使输入输出间变换朝好的方向发展。 神经网络的学习过程就是不断调整结构网络的连接权值,以获取期望输出。下面介绍常用的神经网络的学习规则。 1. 联想式学习--Hebb规则 Hebb学习规则可以描述为: 如果神经网络中某一神经元与另一直接与其相连的神经元同时处于兴奋状态,那么这两个神经元间的连接强度应该加强,如图5-7所示,从神经元uj到神经元ui的连接强度,即权值变化Δwij可用下式表达Δwij=G[ai(t),ti(t)]×H[y-j(t),wij] (5-6)式中,ti(t)是神经元ui的教师信号;函数G是神经元ui的活性度ai(t)和教师信号ti(t)的函数;H是神经元uj的输出y-j和连接权值wij的函数。 图5-7 Hebb学习规则 输出y-j(t)与活性度aj(t)之间满足非线性关系,即y-j(t)=fj[aj(t)] (5-7) 当上述的教师信号ai(t)没有给出时,函数H又只与输出y-j成正比,于是式(5-6)可变为更简单的形式为Δwij=ηaiy-j (5-8)其中: η是学习率常数(η>0). 上式表明,对一个神经元较大的输入或该神经元活性度大的情况,它们之间的联接权值会更大。 2. 误差传播式学习--delta规则 根据Hebb学习规则,考虑到下面问题。 (1) 函数G与教师信号ti(t)和神经元ui实际的活性度ai(t)的差值成比例; (2) 函数H和神经元的输出y-j(t)成比例,可得Δwij=η[ti(t)-ai(t)]y-j(t) (5-9)式中,η为学习率常数(η>0). 在式(5-9)中,若将教师信号ti(t)作为期望输出di,而把ai(t)理解为实际输出yi,则该式变为Δwij=η(di-yi)y-j(t)=ηδ×y-j(t) (5-10)其中,δ=di-yi为期望输出与实际输出的差值,称式(5-10)为δ规则,又称为误差修正规则。根据这个规则的学习算法,通过反复迭代运算,直到求出使δ达到最小时的wij权值。 上述δ规则只适用于线性可微函数,不适用于多层网络非线性可微函数。 3. 竞争式学习 竞争式学习是属于无教师学习方式。竞争学习网络的核心--竞争层,是许多神经网络的重要组成部分。基本竞争学习网络由两层组成。第一层为输入层,由接收输入模式的处理单元组成;第二层为竞争层,竞争单元争相响应输入模式,胜者表示输入模式的所属类别。输入层单元与竞争层单元的连接为全互连方式,连接权是可调节的。 竞争单元的处理分为两步: 首先计算每个单元输入的加权和;然后进行竞争,产生输出。对于第j个竞争单元,其输入总和为sj=∑jwijxj (5-11) 当竞争层所有单元的输入总和计算完毕,便开始竞争。竞争层中具有最高输入总和的单元被定为胜者,其输出状态为1,其他各单元输出状态为0。对于某一输入模式,当获胜单元确定后,便更新权值。也只有获胜单元的权值才增加一个量,使得再次遇到该输入模式时,该单元有更大的输入总和。权值更新规则表示为Δwij=ηxjm-wij (5-12)式中: η为学习因子,0<η≤1; m为输入层状态为1的单元个数。 注意: 各单元初始权值的选取,是选其和为1的一组随机数。 5.2.3 神经网络的记忆 神经网络的记忆包含两层含义: 信息的存储与回忆。网络通过学习将所获取的知识信息分布式存储在连接权的变化上,并具有相对稳定性。一般来讲,存储记忆需花较长时间,因此这种记忆称为长期记忆,而学习期间的记忆保持时间很短,称为短期记忆。 5.3 典型前向网络--BP网络5.3.1 感知机 基本感知机是一个两层网络,分为输入层和输出层,每个可由多个处理单元构成,如图5-8所示。感知机的图5-8 基本感知机结构 学习是典型的有教师学习(训练)。训练要素有两个: 训练样本和训练规则。当给定某一训练模式时,输出单元会产生一个实际的输出向量,用期望输出与实际输出之差修正网络权值。权值修正采用δ学习规则,因此感知机的学习算法为yj(t)=f∑ni=1wij(t)xi-θj(5-13)式中,yj(t)为t时刻输出; xi为输入向量的一个分量; wij(t)为t时刻第i个输入的加权值; θj为阈值; f[·]为阶跃函数。wij(t+1)=wij(t)+η[dj-yj(t)]xi (5-14)式中,η为学习因子,在(0,1]区间取值; di为期望输出(教师信号); yj(t)为实际输出。 令δj=dj-yj(t)=1,dj=1 0,dj=yj(t) -1,dj=0,yj(t)=1输入状态为xi=1 或 0 可见,权值变化量与三个量有关: 输入状态xi、输出误差δ及学习因子η。当且仅当输出单元有输出误差且相连输入状态为1时,修正权值,或增加一个量或减小一个量。学习因子η控制每次的误差修正量。η的取值一般不能太大,也不能太小,太大会影响学习的收敛性,太小会使权值的收敛速度太慢,训练时间太长。 5.3.2 BP网络1. BP网络模型 通常所说的BP模型,即误差后向传播神经网络,是神经网络模型中使用最广泛的一类。从结构上看,BP网络是典型的多层网络。它分为输入层、隐层和输出层。层与层之间多采用全互连方式。同一层单元之间不存在相互连接,如图5-9所示,BP网络的基本处理单元(输入层单元除外)为非线性输入输出关系,一般选用S型作用函数,即f(x)=11+e-x且处理单元的输入、输出值可连续变化。 BP网络模型实现了多层网络学习的设想。当给定网络的一个输入模式时,它由输入层单元传到隐层单元,经隐层单元逐层处理后再送到输出层单元,由输出层单元处理后产生一个输出模式,故称为前向传播。如果输出响应与期望输出模式有误差,且不满足要求,那么就转入误差后向传播,即将误差值沿连接通路逐层向后传送,并修正各层连接权值。 2. 学习算法 一般BP神经网络是多层前向网络,其结构如图5-10所示。设BP神经网络具有m层,第一层称为输入层,最后一层称为输出层,中间各层称为隐层。输入信息由输入层向输 图5-9 一个三层BP网络结构 图5-10 BP神经网络结构出层逐层传递。各个神经元的输入输出关系函数是f,由k-1层的第j个神经元到k层的第i个神经元的连接权值wij,输入输出样本为{xsi,yi},i=1,2,…,n。并设第k层第i个神经元输入的总和为uki,输出为yki,则各变量之间的关系为yki=f(uki) uki=∑jwijyk-1j k=1,2,…,m(5-15)BP学习算法是通过反向学习过程使误差最小,因此选择目标函数为: J=12∑nj=1(dj-yj)2(5-16) 即选择神经网络权值使期望输出dj与实际输出yj之差的平方和最小。这种学习算法实际上是求误差函数J的极小值,约束条件是式(5-15),可以利用非线性规划中的“快速下降法”,使权值沿误差函数的负梯度方向改变,因此,权值的修正量为: Δwij=-εJwij (ε>0)(5-17)式中,ε为学习步长。 下面推导BP学习算法。先求Jwij,即有Jwij=Jukiukiwij=Jukiwij∑jwijyk-1j=Jukiyk-1j令dki=Juki=Jykiykiuki则由式(5-17)得:Δwij=-εdkiyk-1j 下面推导dki的计算公式: dki=Juki=Jykiykiuki=Jykidf(uki)duki取f(·)为S型函数,即yki=f(uki)=11+e-uki ykiuki=df(uki)duki=e-uki[1+e-uki]2=yki(1-yki) dki=yki(1-yki)Jyki下面分为两种情况求Jyki. ① 当i为输出层(第m层)的神经元,即k=m,yki=ymi。由误差定义式得Jyki=Jymi=ymi-di则dmi=ymi(1-ymi)(ymi-di) ② 若i为隐单元层k,有Jyki=∑lJuk+1luk+1lyki=∑lwlidk+1l则dki=yki(1-yki)∑lwlidk+1l综上所述,BP学习算法可以归纳为: Δwij=-εdkiyk-1i dmi=ymi(1-ymi)(ymi-di) dki=yki(1-yki)∑lwlidk+1l(5-18) 从以上公式可以看出,求k层的误差信号dki,需要上一层的dk+1l,因此,误差函数的求取是一个始于输出层的反向传播的递归过程,所以称为反向传播学习算法。通过多个样本的学习,修改权值,不断减少偏差,最后达到满意的结果。BP学习算法的程序框图如图5-11所示。 图5-11 BP算法程序框图 5.4 典型反馈网络--Hopfield网络 前述的前向网络是单向连接没有反馈的静态网络,从控制系统的观点看,它缺乏系统动态处理能力。美国物理学家Hopfield对神经网络的动态性能进行了深入研究,在1982年和1984年先后提出离散型Hopfield神经网络和连续型Hopfield神经网络,引入“计算能量函数”的概念,给出了网络稳定性判据,尤其是给出了Hopfield神经网络的电子电路实现,为神经计算机的研究奠定了基础,同时开拓了神经网络用于联想记忆和优化计算的新途径,从而有力地推动了神经网络的研究。 5.4.1 离散型Hopfield网络 Hopfield神经网络是全互连反馈神经网络,它的每一个神经元都和其他神经元相连接。n阶离散Hopfield神经网络N,可由一个n×n阶矩阵W=[wij]和一个n维向量θ=[θ1,…,θn]所唯一确定,记为N=(W,θ),其中,wij表示神经元i与j的连接强度,θi表示神经元i的阈值。若用xi(t)表示t时刻神经元所处的状态(可能为1或-1),即xi(t)=±1,那么神经元i的状态随时间变化的规律(又称演化律)为xi(t+1)=sgn(Hi(t))=1,Hi(t)≥0 -1,Hi(t)<0(5-19)其中Hi(t)=∑nj=1wijxj(t)-θi i=1,2,…,n Hopfield神经网络是一个多输入多输出带阈值的二态非线性动力学系统,因此存在一种所谓能量函数。在满足一定参数条件下,该能量函数值在网络运行过程中不断降低,最后趋于稳定的平衡状态。Hopfield引入这种能量函数作为网络计算求解的工具,因此常常称它为计算能量函数。 离散Hopfield神经网络的计算能量函数定义为E=-12∑Ni=1∑Nj=1j≠iwijxixj+∑Ni=1θixi(5-20)其中,xi、xj是各个神经元的输出。 下面考察第m个神经元的输出变化前后能量函数E值的变化。设xm=0的能量函数值为E1,则E1=-12∑Ni=1∑Nj=1j≠iwijxixj+∑Ni=1θixi将i=m项分离出来,并注意到xm=0,得E1=-12∑Ni=1i≠m∑Nj=1j≠iwijxixj+∑Ni=1i≠mθixi(5-21)类似地,当xm=1时的能量函数值为E2,则有E2=-12∑Ni=1i≠m∑Nj=1j≠iwijxixj+∑Ni=1i≠mθixi-12∑Nj=1j≠mwmjxj+θm (5-22)当神经元状态由“0”变为“1”时,能量函数E值的变化量ΔE为ΔE=E2-E1=-12∑Nj=1j≠mwmjxj-θm (5-23)由于此时神经元的输出是由0变为1,因此满足神经元兴奋条件12∑Nj=1j≠mwmjxj-θm>0(5-24)