第3章 基于神经网络的智能控制 基于神经网络的智能控制又称为神经控制。神经网络是在联结机制上模拟人脑右半球形象思维和神经推理功能的神经计算模型。神经元是构成神经网络的最小单元,它在细胞水平上模拟人的智能。神经元模型、神经网络模型和学习算法构成了神经网络的三要素。本章首先介绍神经元结构、功能及模型,神经网络结构、控制和识别中常用神经网络模型及学习算法; 然后讲述神经控制系统的结构、原理、分类; 最后阐述基于神经网络的系统辨识及基于神经网络的智能控制原理及应用。 3.1神经网络系统基础 3.1.1神经网络研究概述 神经网络(Neural Network,NN)是指用计算机模拟人脑神经系统的网络结构和功能,进行信息处理的人工神经网络(Artificial Neural Network,ANN)的简称。 神经网络的研究过程经历了初创期(1943—1969年)、成长期(1970—1986年)、发展期(1987—2005年)和高潮期(2006年至今)。 1943年,心理学家麦卡洛克(McCulloch)和数学家匹茨(Pitts)首先提出了形式神经元MP模型,把神经元作为双态开关,用布尔逻辑研究客观事件的形式神经网络模拟。1949年,心理学家赫布(Hebb)提出了神经元学习规则,赋予了神经网络的可塑性。Hebb规则为后来的多种神经网络学习规则奠定了基础。1958年,罗森布拉特(Rosenblatt)提出了感知器模型,指出感知过程具有统计分离性,利用教师信号对感知器进行训练,试图模拟人脑感知能力和学习能力。1969年,明斯基(Minsky)和帕伯特(Papert)出版了《感知器》一书,严格地论证了简单线性感知器功能的局限性,并指出多层感知器还缺乏有效的计算方法,致使神经网络的研究陷于困境。 1970—1986年,经过辛顿(Hinton)、科霍恩(Kohonen)、格罗斯伯格(Grossberg)、甘利教授等坚持长期不懈地潜心研究,使得神经网络的研究逐渐摆脱了困境。1982年,美国物理学家霍普菲尔德(Hopfield)通过引入能量函数研究神经网络的动态特性,并给出了网络的稳定性判据。Hopfield网络具有联想记忆和优化计算功能,这是神经网络研究史上具有里程碑意义的重要成果。1986年,鲁姆尔哈特(Rumelhart)和帕克(Parker)又重新发现、提出了反向传播算法,至今仍被广泛使用,并对研究神经网络的学习和训练产生了深远影响。 智能控制(第2版) 1987年,在美国召开了第一届世界神经网络会议,在世界范围内推动了神经网络研究工作的发展。美国国防部于1988年开始了一项投资数亿美元的发展神经网络及其应用研究的八年计划。此后,许多国家也制定了相应计划推动神经网络研究。1989年,切本科(Cybenko )和霍尼克(Hornik)等证明了神经网络的万能逼近定理: 三层神经网络能以任意精度逼近任何函数。这一成果为研究神经网络优异性能提供了强大的理论依据,有力地推动了神经网络研究工作的进一步发展。1998年,乐村等发明的卷积神经网络突破了图像识别复杂问题。此后的近十多年里,多种浅层网络遭遇了反向传播算法存在梯度消失问题的困扰。 2006年,辛顿等提出了深度信念网络及其快速训练法,开启了深度学习的先河。本吉奥(Bengio)等证明了预训练方法也适用于无监督学习,以及波尔特尼等用基于能量模型来有效学习稀疏表示,这些成果奠定了深度学习的基础。2010年,辛顿教授及其学生成功地帮助微软、IBM和谷歌等公司突破了语音识别、图像识别的关键技术。2011年,格洛特(Glorot)等提出的ReLU激活函数有效抑制梯度消失问题。2014年以来,多芬(Dauphin)、齐罗曼斯卡(Choromanska)等证明了局部极小值问题不再是严重问题,消除了笼罩在神经网络上局部极值的阴霾。2015年以来,谷歌DeepMind团队研发的基于深度学习的计算机围棋AlphaGo、AlphaGo Zero多次战胜了国际围棋大师。由此,在世界范围把深度神经网络和深度学习的研究推向了高潮。 纵观神经网络研究的发展史,不难看出多伦多大学辛顿教授始终发挥着引领作用,并做出了巨大的贡献。因此,他和乐村、本吉奥教授3人成功获得2019年计算机领域的诺贝尔奖——图灵奖。在当今大数据、网络化、智能化,并以人工智能技术为引擎的智能时代,人工神经网络作为人工智能的核心技术在新技术革命中将发挥越来越大的作用。 3.1.2神经细胞结构与功能 人的智能来源于大脑,大脑是由一百几十亿个神经细胞构成的。一个神经细胞由细胞体、树突和轴突组成,其结构如图3.1所示。细胞体由细胞核、细胞质和细胞膜组成。细胞体外面的一层膜称为细胞膜,厚为5~10nm,膜内有一个细胞核和细胞质。树突是细胞体向外伸出的许多树枝状长1mm左右的突起,用于接收其他神经细胞传入的神经冲动。 图3.1一个神经细胞的结构 神经细胞在结构上具有如下两个重要的特征。 1. 细胞膜具有选择的通透性 每个神经细胞用细胞膜和外部隔开,使细胞内、外有不同的电位。把没有输入信号的膜电位叫静止膜电位,约为-70mV。当有输入信号时(即其他神经细胞传入的兴奋信号)使膜电位比静止膜电位高15mV左右时, 图3.2一个神经细胞兴奋发出的 电脉冲 该神经细胞兴奋,而激发出宽度为1ms、幅值为100mV电脉冲。兴奋的神经细胞一经发出一次脉冲,膜电位下降到比静止膜电位更低,然后再慢慢返回原值,约在几毫秒内神经细胞处于疲劳状态,即使再强大的输入信号也不能使神经细胞兴奋。 细胞膜具有选择的通透性使神经细胞具有阈值特性,如图3.2所示。 y=y-,u≥θ 0,u<θ(3.1) 其中,θ是一个阈值,随着神经元的兴奋而变化,神经元兴奋时发出电脉冲具有突变性和饱和性。 2. 突触联结的可塑性 突触是指一个神经元轴突末梢和另一个神经元树突或细胞体之间微小的间隙,突触的直径为0.5~2μm。突触起到了两个神经元之间传递信息的“接口”的作用。神经细胞之间通过突触相联结,这种联结强度根据输入和输出信号的强弱而可塑性变化。突触结合强度,即联结权重w不是一定的,根据输入和输出信号的强弱可塑性的变化,使得神经元具有长期记忆和学习功能。 3.1.3人工神经元模型 从信息处理的角度,神经元是一个多输入单输出的信息处理单元。一个人工神经元的形式化结构模型如图3.3所示,其中x1,x2,…,xn表示来自其他神经元轴突的输入信号,w1,w2,…,wn分别为其他神经元与第i个神经元的突触联结强度,θi为神经元i的兴奋阈值。 图3.3人工神经元的形式化 结构模型 对于每个神经元信息处理过程可描述为 Si=∑nj=1wjxj-θi(3.2) ui=g(Si)(3.3) yi=f(ui)(3.4) 其中,Si表示神经元i的状态; ui表示神经元i膜电位的变化; yi表示神经元i的输出; g(·)表示活性度函数; f(·)为输出函数。输出函数又称为激活函数,如图3.4所示。 图3.4神经元常用的输出函数类型 上述输出函数均为非线性函数,都具有突变性和饱和性两个显著特征,这正是模拟神经细胞兴奋产生神经冲动性和疲劳特性。 3.1.4神经网络的特点 大量的神经细胞通过突触联结成神经网络,而神经网络模型用于模拟人脑大量神经元活动的过程,其中包括对信息的加工、处理、存储和搜索等过程,它具有如下基本特点。 (1) 具有分布式存储信息的特点。 神经网络存储信息的方式与传统的计算机的思维方式是不同的,一个信息不是存储在一个地方,而是分布在不同的位置。网络的某一部分也不只存储一个信息,它的信息是分布式存储的。这种分布式存储方式即使当局部网络受损时,仍具有能够恢复原来信息的特点。因此,神经网络具有一定的容错能力。 (2) 对信息的处理及推理具有并行的特点。 每个神经元都可根据接收到的信息作独立的运算和处理,然后将结果传输出去,这体现了一种并行处理。神经网络对于一个特定的输入模式,通过前向计算产生一个输出模式,各个输出结点代表的逻辑概念被同时计算出来。在输出模式中,通过输出结点的比较和本身信号的强弱而得到特定的解,同时排除其余的解。这体现了神经网络对信息并行推理的特点。 (3) 对信息的处理具有自组织、自学习的特点。 神经网络各神经元之间的联结强度用权重大小来表示,这种权重可以事先定义,也可以为适应周围环境而不断地变化,这种过程体现了神经网络中神经元之间相互作用、相互协同、自组织的学习行为。神经网络所具有的自学习过程模拟了人的形象思维方法,这是与传统符号逻辑完全不同的一种非逻辑非语言的方法。 (4) 具有从输入到输出非常强的非线性映射能力。 因为神经网络具有自组织、自学习的功能,所以通过学习它能实现从输入到输出的任意的非线性映射,即它能以任意精度逼近任意复杂的连续函数。 下面通过如图3.5所示的简单神经网络来说明人工神经网络的主要特点。 图3.5一个简单的神经网络结构 设x1,x2,x3,x4为神经网络输入,经神经元N1,N2,N3,N4的输出分别为x′1,x′2,x′3,x′4,然后经过突触权wij连接到y1,y2,y3,y4的输入端,进行累加。 为简单起见,设θi=0,并将式(3.2)、式(3.3)、式(3.4)分别变为 Si=∑nj=1wijx′j(3.5) ui=Si·1(量纲变换)(3.6) yi=f(ui)=1,ui≥0 -1,ui<0(3.7) 又设输入x′j=±1为二值变量,且x′j=xj,j=1,2,3,4。xj是感知器输入,用向量x1=(1,-1,-1,1)T表示眼看到花,鼻子嗅到花香的感知输入,从x1到y1可通过一个连接矩阵 W1=- 0.25+0.25+0.25-0.25 -0.25+0.25+0.25-0.25 +0.25-0.25-0.25+0.25 +0.25-0.25-0.25+0.25(3.8) 来得到。 根据式(3.5)~式(3.7)可得 y1=f(W1x1) 经计算 y1=[-1,-1,+1,+1]T 这表示网络决策x1为一朵花。 不难看出,从x1→y1不是串行计算得到的,而是并行计算得到的。因为W1是可以用一个VLSI中电阻矩阵实现,而yi=f(vi)也可以用一个简单运算放大器来模拟,不管x1和y1维数如何增加,整个计算只用了一个运算放大器的转换时间,显然网络的动作是并行的。 如果x2=[-1,+1,-1,+1]T表示眼看到苹果、鼻嗅到苹果香味的感知器输入,通过矩阵 W2=+0.25-0.25+0.25-0.25 -0.25+0.25-0.25+0.25 -0.25+0.25-0.25+0.25 +0.25-0.25+0.25-0.25(3.9) 得到y2=[-1,+1,+1,-1]T表示网络决策x2为苹果。 从式(3.8)和式(3.9)的权矩阵来看,我们并不知道其输出结果是什么。从局部权的分布也很难看出W中存储了什么,这是因为信息是分布存储在权矩阵中,把式(3.8)和式(3.9)相加,得到一组新的权矩阵 W=W1+W2=000.5-0.5 -0.50.500 00-0.50.5 0.5-0.500(3.10) 由x1输入,通过权矩阵W运算可得到y1,由x2输入,通过权矩阵W运算可得到y2,这说明W存储了两种信息,当然也可以存储多种信息。 如果感知器中某个元件损坏了一个,设第3个坏了,则x1=(1,-1,0,1)T,经W算得y1=(-1,-1,+1,+1)T,而x2=(-1,+1,0,1)T,经W算得y2=(-1,1,1,-1)T的结果和前面的一样,这说明人工神经网络具有一定的容错能力。 上面的例子已经表明,神经网络具有分布存储信息和对信息的处理及推理具有并行的特点。 有关人工神经网络的自学习功能和非线性映射能力将在后续的内容中加以研究。 3.1.5神经网络结构模型 神经网络联结方式的拓扑结构是以神经元为结点、以结点间有向连接为边的一种图,其结构大体上可分为层状和网状两大类。层状结构的神经网络是由若干层组成,每层中有一定数量的神经元,相邻层中神经元单向联结,一般地同层内的神经元不能联结; 网状结构的神经网络中,任何两个神经元之间都可能双向联结。下面介绍几种常见的神经网络结构。 1. 前馈神经网络 前馈网络包含输入层、隐层(一层或多层)和输出层,如图3.6所示为一个三层网络。这种网络特点是只有前后相邻两层之间神经元相互联结,各神经元之间没有反馈。每个神经元可以从前一层接收多个输入,并只有一个输出给下一层的各神经元。 2. 反馈神经网络 反馈网络指从输出层到输入层有反馈,即每一个结点同时接收外来输入和来自其他结点的反馈输入,其中也包括神经元输出信号引回到本身输入构成的自环反馈,如图3.7所示。 图3.6前馈网络 图3.7反馈网络 3. 相互结合型神经网络 相互结合型网络属于网状结构,如图3.8所示。构成网络中各个神经元都可能相互双向联结,所有神经元既作输入也作输出。这种网络对信息处理与前馈网络不一样,如果在某一时刻从神经网络外部施加一个输入,各个神经元一边相互作用,一边进行信息处理,直到使网络所有神经元的活性度或输出值,收敛于某个平均值为止信息处理才结束。 4. 混合型神经网络 如图3.9所示,在前馈网络的同一层间神经元有互联的结构,称为混合型网络。这种在同一层内的互联,目的是为了限制同层内神经元同时兴奋或抑制的神经元数目,以完成特定的功能。 图3.8网状结构网络 图3.9混合型网络 3.1.6神经网络训练与学习 人脑中的神经元通过许多树突的精细结构,收集来自其他神经元的信息,并通过轴突发出电活性脉冲。轴突有上千条分支,在每条分支末端,通过突触的结构把来自轴突的电活性脉冲变为电作用,从而使与之相连的各种神经元的活性受到抑制或兴奋。 当一个神经元收到兴奋输入,而兴奋输入又比神经元的抑制输入足够大时,神经元把电活性脉冲向下传到它的轴突,改变轴突的有效性,从而使一个神经元对另一个神经元的影响改变,便产生了学习行为。因此,可以认为神经网络学习的本质特征在于神经细胞特殊的突触结构所具有的可塑性联结,而如何调整联结权重就构成了不同的学习算法。 神经网络按学习方式分为有教师学习和无教师学习两大类,如图3.10给出了这两种学习方式的直观示意。 图3.10神经网络的训练与学习过程示意图 1. 神经网络的训练 为了应用神经网络解决工程实际问题,必须对它进行训练。从应用环境中选出一些输入输出样本数据,通过教师示教和监督来不断地调整神经元之间的联结强度,直到神经网络得到合适的输入输出关系为止,这个过程称为对神经网络的训练。这种有教师指导训练过程会使神经网络学习到隐含表示问题的知识,故又称这种方式为神经网络有教师学习,或监督学习。 如图3.10上半部分所示,在训练学习中教师提供样板数据集是成对的输入输出数据集{xi,yi},它代表了实际问题输入输出关系。训练的过程就是根据网络输入的xi和网络输出yi的正误程度来反复调整权重的大小,直到网络的实际输出yi全部等于期望的输出为止,训练过程便结束。 2. 神经网络的学习 神经网络的学习通常指神经网络无教师监督学习,如图3.10下半部分所示。神经网络学习的目的是根据实际输出数据和期望输出之间的误差,通过某种学习算法自动地、反复地去调整权重直到消除误差或小于允许的误差为止。 要使人工神经网络具有学习能力,需要使神经网络的知识结构变化,也就是使神经元间的结合模式变化,这同把联结权重用适当方法变化是等价的。因此,神经网络可以通过一定的学习算法实现对突触结合强度的调整,使其具有记忆、识别、分类、优化等信息处理功能。 3. 神经网络的泛化能力 神经网络通过样本数据集的训练后,当输入出现了样本数据集以外的新数据时,神经网络仍能通过学习获得新的输出,并能严格保持神经网络训练后所获得的输入输出映射关系的能力,称为神经网络的泛化能力。神经网络的结构、训练样本的数量和质量、不同的学习算法及其参数等都会影响神经网络的泛化能力。 4. 神经网络的生长与修剪 通过改变神经网络的结构和参数,从而改变了网络的规模大小,使之更适合于某个问题的求解,这样的过程称为神经网络的生长与修剪。例如对于前馈网络的生长算法,可以从单隐层的小网络开始,通过增加一个隐层重新训练,一直持续到再增加一个单元网络的性能不再改变为止。神经网络的修剪方法是从相对大的网络开始,然后逐渐剪去不必要的单元,直到获得满意的网络性能为止。 3.1.7神经网络的学习规则 1. 联想式学习——Hebb规则 1949年,心理学家赫布(Hebb)提出了学习行为的突触联系和神经群理论,并认为突触前与突触后两个同时兴奋的神经元之间的联结强度将得到增强。后来研究者们将这 图3.11Hebb学习规则 一思想加以数学描述,被称为Hebb学习规则。如图3.11所示,从神经元uj到神经元ui的联结强度,即权重变化ΔWij表达为 ΔWij=Gai(t),ti(t)×Hy-j(t),Wij(3.11) 其中,ti(t)是神经元ui的教师信号; G是神经元ui的活性度ai(t)和教师信号ti(t)的函数; H是神经元ui输出y-j和联结权重Wij的函数。 输出y-j(t)与活性度ai(t)之间的关系为 y-j(t)=fjai(t)(3.12) 其中,fj为非线性函数。 当上述的教师信号ti(t)没有给出时,函数H只与输出y-j成正比,于是式(3.11)可变为更简单的形式 ΔWij=ηaiy-j(3.13) 其中,η是学习率(η>0)。 上式表明,对一个神经元较大的输入或该神经元活性度大的情况,它们之间的联结权重会更大。Hebb学习规则的哲学基础是联想,在这个规则基础上发展了许多非监督式联想学习模型。 2. 误差传播式学习 前述的函数G的值和教师信号ti(t)与神经元ui实际的活性度ai(t)的差值成比例,即 Gai(t),ti(t)=η1ti(t)-ai(t)(3.14) 其中,η1为学习率; ti(t)-ai(t)表示差值,记为δ。 函数H和神经元uj的输出y-j(t)成比例,即 Hy-j(t),Wij=η2y-j(t)(3.15) 其中,η2为学习率。 根据Hebb学习规则可得 ΔWij=Gai(t),ti(t)×Hy-j(t),Wij =η1ti(t)-ai(t)·η2y-j(t) =ηti(t)-ai(t)·y-j(t)(3.16) 其中,η为学习率(η>0)。 在式(3.16)中,如将教师信号ti(t)作为期望输出di,而把ai(t)理解为实际输出y-j,则该式变为 ΔWij=ηdi-y-jy-j(t)=η·δ·y-j(t)(3.17) 其中,δ=di-y-j为期望输出与实际输出的差值,称式(3.17)为δ规则或误差修正规则。根据这个规则的学习算法,通过反复迭代运算,直至求出最佳的ΔWij值,使δ达到最小。 上述δ规则只适用于线性可分函数,不适用于多层网络非线性可分函数。1986年,鲁姆尔哈特和辛顿等人系统地总结了误差传播式学习的研究成果,概括了具有普遍意义的δ规则,称为广义δ规则。根据广义δ规则,误差由输出层逐层反向传至输入层,而输出则是正向传播,直至给出网络的最终响应。因此,又称其为误差反向传播学习。 3. 概率式学习 从统计力学、分子热力学和概率论中关于系统稳态能量的标准出发,进行神经网络学习的方式,称为概率式学习。概率式学习的典型代表是Boltzmann机学习规则,它是基于模拟退火的统计优化方法,因此又称模拟退火算法。 Boltzmann机模型是包括输入、输出和隐层的多层网络,但隐层间存在互联结构且网络层次不明显。对于这种网络训练的过程,就是根据下述规则对神经元i、j间的联结权重进行调整 ΔWij=ηp+ij-p-ij(3.18) 其中,η为学习率; p+ij 、p-ij分别是i与j两个神经元在系统中处于α状态和自由运转状态时实现联结的概率。调整权重的原则是,当p+ij>p-ij时,则增加权重,否则减小权重。权重调整的这种规则就是Boltzmann机的学习规则。 4. 竞争式学习 在神经网络中的兴奋性或抑制性联结机制中引入竞争机制的学习方式,称为竞争式学习。它是属于无教师学习方式,它是利用不同层间的神经元发生兴奋性联结,以及同一层内距离很近的神经元间发生同样的兴奋性联结,而距离较远的神经元产生抑制性联结。竞争式学习的本质特征在于神经网络中高层次的神经元对低层次神经元输入模式进行竞争式识别。 1985年,鲁姆尔哈特和兹普瑟提出了用于前馈网络竞争式学习规则。该网络结构设计成第一层为输入层,而以后的每一层都增加许多不重叠的组块,每一组块在特征识别中只有一个竞争优胜单元兴奋,其余单元受到抑制。 设i为输入层某单元,j为获胜的特征识别单元,则它们之间的联结权重变为 ΔWij=ηCik/nk-Wij(3.19) 其中,η为学习率; Cik为外部刺激k系列中第i项刺激成分; nk为刺激k激励输入单元的总数。这种学习方式表明,在竞争中与输入单元间联结权重变化最大的优胜单元实现每一特征识别,而失败的单元ΔWij为零。科霍恩提出的自组织特征映射网络是采用竞争式学习机制的神经网络典型代表。 5. 强化学习 强化学习(Reinforcement Learning,RL)是1961年由明斯基(Minsky)提出的,又称再励学习、增强学习、评价学习。有别于监督学习、无监督学习,强化学习不要求预先给定任何数据,而是通过接收环境对动作的奖励(反馈)获得学习信息并更新模型参数 。 图3.12强化学习的基本原理 强化学习的灵感来源于心理学中的行为主义理论。强化学习的基本原理如图3.12所示,智能体在与环境的交互过程中,智能体对环境感知的当前状态为s,从动作空间A中选择动作a执行。环境会根据智能体的动作提供一个反馈信号作为相应的奖赏r,使智能体转移到新的状态s′。智能体根据得到的奖励来调整自身的策略,并针对新的状态做出新的决 策,以有效地适应环境。这种适应环境的行为便是学习,智能体通过最大化累积奖赏的方式来学习到最优策略。 一个强化学习系统,除了智能体和环境,还包括4个要素: 策略、奖赏函数、值函数及环境的模型。策略(决策函数)规定了智能体在每个可能的状态,应该采取的动作集合; 奖赏函数是智能体在与环境的交互中,对所产生动作好坏作的一种评价; 值函数(评价函数)是从长远的角度来考虑一个状态(状态动作)的好坏。 智能体在当前状态s下,根据策略π来选择动作a, 执行该动作并以概率Pas,s′转移到下一个状态s′, 同时接收到环境反馈回来的奖赏r。策略π:S→A为从状态空间到动作空间的映射。强化学习的目标是通过调整策略来最大化累积奖赏,通常使用值函数估计某个策略π的优劣程度。 假设初始状态s0=s, 策略π的状态值函数定义为 Vπ(s)=∑∞t=0γtr(st,at)|s0=s,at=π(st)(3.20) 其中,γ∈(0,1)为衰减因子。由于最优策略是最大化值函数的策略,因此最优策略为 π=argmaxπVπ(s)(3.21) 另一种形式的值函数是状态动作值函数, 定义为 Qπ(st,at)=r(st,at)+γVπ(st+1)(3.22) 此时,得到的最优策略为 π=argmaxa∈AQπ(s,a)(3.23) 强化学习中常用算法包括: 基于概率统计理论的蒙特卡罗方法; 借助时间差分误差来更新值函数的Q学习和SARAS学习; TD学习建立了蒙特卡罗和时间差分的统一描述,当γ=1时,TD(γ)变成了蒙特卡罗方法, γ=0时,TD(γ)变成了时间差分学习。 上面介绍的都是基于值函数的强化学习方法, 它需要先求出值函数, 再根据值函数来选择价值最大的动作执行。另一种基于策略的强化学习方法是一种直接逼近策略,优化策略,最终得到最优策略的方法。策略梯度法又可以分为确定策略梯度算法和随机策略梯度算法。 强化学习是一种无监督学习的重要方法,具有自学习、在线学习和普适性的优点,已广泛用于博弈论、控制论、运筹学、信息论、智能控制、多主体系统、机器人等领域。 6. 深度学习 深度学习(Deep Learning,DL)是2006年由辛顿教授等提出的一种深度信念网络的训练方法。“深度”是指从输入层到输出层之间所包含的隐层数很多,它反映了网络层次的深度。将具有这样深层次结构的神经网络称为深度网络,对深度网络的训练方法统称为深度学习算法。 辛顿提出的深度信念网络由多个含有两层的网络由下向上堆叠而成。最上面的两层之间为无向连接, 其余的层间均为有向连接。如果同时对网络所有的层进行训练,时间复杂度就会太高; 如果每次训练一层,偏差就会逐层传递,由于深度网络的神经元和参数太多,导致严重欠拟合。 为了解决深度神经网络在训练上的困难,辛顿提出把深度网络的训练过程分为预训练和调优两个阶段。 预训练过程首先从底层开始,自下而上的采用无监督学习方式逐层进行训练,利用数据每次训练一个单层网络参数,这一层的输出作为上一层的输入,直到所有的层都训练完为止。预训练过程,实际上是对网络各层神经元联结权重的初始化过程。 调优阶段是在预训练完成之后,将除最顶层外的其他层间的权重变为双向,这样最顶层仍然是一个单层神经网络。再用监督学习去调整所有层间权重,使网络参数进一步优化。 深度神经网络具有优异的特征学习能力,深度学习能够通过组合低层特征来形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示,这些特征对数据具有更本质的刻画的特点,有利于解决图像识别、语音识别和分类等复杂问题。 7. 深度强化学习 深度强化学习(Deep Reinforcement Learning,DRL)是2015年由姆尼(Mnih)等提出的。深度学习(DL)善于事物特征提取和感知,强化学习(RL)长于选择与决策以及寻找最优策略。深度强化学习方法将深度学习的感知能力和强化学习的决策能力相结合,可以在复杂高维的状态空间中进行端到端的感知决策。深度强化学习原理如图3.13所示。 图3.13DRL原理框图 深度强化学习的过程如下: (1) 每个时刻智能体在与环境交互中,得到一个高维度的观察,并利用深度学习方法来感知观察,以得到具体的状态特征表示; (2) 基于预期回报来评价各动作的价值函数,并通过某种策略将当前状态映射为相应的动作; (3) 环境对此动作做出反应,并得到下一个观察。 通过不断循环上述过程,最终可以获得实现目标的最优策略。 深度强化学习也分为基于值函数的深度强化学习和基于策略梯度的深度强化学习两类。 (1) 基于值函数的深度强化学习 将卷积神经网络和Q学习结合,姆尼提出一种深度Q网络(Deep Q Network, DQN),用于处理基于视觉感知的控制任务。DQN采用时间上相邻的4帧游戏画面作为原始图像输入,经过深度卷积神经网络和全连接神经网络,输出状态动作函数Q(s,a;θ)去逼近目标值,其中s为状态,a为动作,θ为参数,从而实现了端到端的学习控制。 (2) 基于策略梯度的深度强化学习 策略梯度优化方法是通过不断计算策略期望总奖赏来对策略参数的梯度更新策略参数,最终收敛于最优策略。因此,在求解DRL问题时,可以采用参数为θ的深度神经网络来进行参数化表示策略,并利用策略梯度方法来优化策略。采取策略梯度优化方法能够直接优化策略的期望总奖赏,并以端对端的方式直接在策略空间中搜索最优策略,省去了烦琐的中间环节。 最常见的策略梯度思想是增加总奖赏较高情节出现的概率。在大规模状态的DRL任务中,可以通过深度神经网络参数化表示策略,并采用传统的策略梯度方法来求解最优策略。 3.2控制和识别中的常用神经网络 3.2.1感知器 1957年,美国学者罗森布拉特提出了一种用于模式分类的最简单神经网络模型,称为感知器(perceptron)。它是由阈值元件组成且具有单层计算单元的神经网络,它具有学习功能。一个单元的模型如图3.3所示。 感知器信息处理的规则为 y(t)=f∑ni=1Wi(t)xi-θ(3.24) 其中,y(t)为t时刻输出; f为阶跃函数; Wi(t)为t时刻第i个输入的加权; xi为输入向量的一个分量; θ为阈值。 感知器的学习规则如下: Wit+1=Wi(t)+ηdi-y(t)xi(3.25) 其中,η为学习率(0<η<1); di为期望输出(又称教师信号); y(t)是实际输出。通过不断调整权重,使得W对一切样本均保持稳定不变,学习过程就结束。 上述的单层感知器的输出是一个二值量,主要用于模式分类。能够解决一阶谓词逻辑问题,如逻辑与、逻辑或问题,但不能解决像异或问题的二阶谓词逻辑问题,感知器的学习算法保证收敛要求函数是线性可分的(指输入样本函数类成员分别位于直线分界线的两侧),当输入函数不满足线性可分条件时,上述算法受到了限制。 3.2.2前馈神经网络 前馈网络又称前向网络,由于采用误差反向传播学习算法又称BP网络。如图3.14所示,它包含输入层、隐层及输出层,隐层可以为一层或多层,每层上的神经元称为结点或单元。前馈网络的信息传播是由输入单元传到隐单元,最后传到输出单元。这种含有隐层的前馈网络的隐单元可以任意构成它们自身的输入表示,输入单元和隐单元间的权重决定每个隐单元何时是活性的,因此,借修改这些权重,可以选择一个隐单元代表什么。 图3.14前馈网络结构及BP学习算法示意图 1. BP网络误差反向传播学习算法 为了研究神经网络怎样从经验中学习,应该首先向网络提供一些训练例子,可以通过下述方法,教会一个三层前馈网络完成某个特定的任务。其方法步骤如下: (1) 向网络提供训练例子,包括输入单元的活性模式和期望输出单元的活性模式; (2) 确定网络的实际输出与期望输出之间允许的误差; (3) 改变网络中所有联结权重,使网络产生的输出更接近于期望输出,直到满足给定的允许误差。 下面以网络识别手写数字为例说明上述方法。比如使用256个传感器组成传感器阵列,每个传感器记录一个数字的一小部分面积内是否有笔写的痕迹存在。因此,网络需要256个输入单元(每个传感器一个),10个输出单元(每种数字一个)和许多隐单元。为了便于传感器记录每种数字,网络应在适当的输出单元中产生高的活性,并在其他输出单元中产生低的活性。 为了训练此网络,提供一幅某个数字的图像,并把10个输出单元的实际活性和期望活性加以比较,然后计算误差,将实际活性与期望活性差值的平方定义为误差。其次,改变网络中所有联结权重以减少误差。针对每种数字的多种不同图像重复训练,直到网络能对每个手写数字正确地归类为止。 实现上述训练过程的关键是必须改变每个权重,且其变化量应正比于权重改变时误差的变化率,此量称权重的误差导数,简记为EW。但是,对EW的有效计算是十分复杂棘手的问题。如果采取稍许扰动每个权重,并观察误差如何变化,这种方法效率太低,因为要求对每一个权重都要单独加扰动。 1974年前后,正在哈佛大学攻读博士的韦尔博斯(Werbos)发明了一种高效的计算EW的方法,即误差反向传播算法(BP算法)。只因发明后多年未受到重视,也没有充分体会到它的用处,直到1985年鲁姆尔哈特和帕伯特两人各自再次发现该算法后才得以推广。 BP算法的实质是以梯度法求取网络误差平方和使目标函数达到最小值。首先计算改变一个单元活性水平时误差的变化率EA,再计算每个权重的误差导数EW。对于输出单元,EA只是实际输出和期望输出间的差值。为计算在输出层前面一层的一个隐单元的EA,首先辨别该隐单元和与它相连的那些输出单元间的所有权重,然后把这些权重乘以这些输出单元的EA并求和,此和值即为所选定隐单元的EA。将所有隐单元的EA计算出后,可用类似的方法计算其他层的EA值,计算的顺序恰好与活性传播过网络路径相反的方向逐层进行,故称为误差反向传播算法。计算出一个单元的EA后,再计算该单元每条输入联结的EW,EW是EA和经过该输入联结活性的乘积。 对于非线性单元,反向传播算法还包括另外一步,即在反向传播前,必须把EA变换为EI,EI是一个单元所收到的总输入变化时误差的变化率。 综上所述,为了训练前馈网络完成某项任务,必须调整每个单元的权重,即减小期望输出与实际输出间的误差,为此必须计算每个权重变化时误差的变化,即误差导数EW,而反向传播算法是一种确定EW的最有效的方法。 2. BP算法的计算机实现步骤 (1) 初始化,对所有权重赋以随机任意小值,并对阈值设定初值; (2) 给定训练数据集,即提供输入向量X和期望输出y-; (3) 计算实际输出y yj=f∑Wijxi(3.26) 其中,f函数为Sigmoid函数 fx=11+e-(x-θ)(3.27) (4) 调整权重,按误差反向传播方向,从输出结点开始返回到隐层修正权重为 Wijt+1=Wij(t)+ηδjyj(3.28) 其中,η为大于零的学习率,δj为结点j的实际活性与期望活性的差值。根据结点j的形式不同,δj的计算为 δj=yj1-yjy-j-y,当j为输出结点时 yj1-yj∑kδkWjk,当j为隐结点时(3.29) 当使用冲量时,调整权重公式变为 Wijt+1=Wij(t)+ηδjyj+αWij(t)-Wijt-1(3.30) 其中,α为动量因子,0<α<1。 (5) 返回第(2)步重复,直至误差满足要求为止。 3. BP算法的改进算法 BP算法实质上是把一组样本输入输出问题转化为一个非线性优化问题,并通过梯度算法利用迭代运算求解权重问题的一种学习方法。已经证明,具有Sigmoid非线性函数的三层神经网络能够以任意精度逼近任何连续函数。但BP算法尚存在以下一些缺点: (1) 由于采用非线性梯度优化算法,易形成局部极小而得不到整体最优。 (2) 算法迭代次数过多,致使学习效率低,收敛速度慢。 (3) BP网络无反馈连接,影响信息交换速度和效率。 (4) 网络的输入结点、输出结点由问题而定,但隐结点的选取根据经验,缺乏理论指导。 (5) 在训练中学习新样本有遗忘旧样本的趋势,且要求每个样本的特征数目要相同。 针对BP算法的缺点,国内外学者提出了许多改进算法,如变步长、增加惯性因子、修改作用函数、与其他算法融合等。 4. 前馈网络及其BP算法的意义 感知器(感知机)是单层的前馈网络,它的神经元输出函数为阶跃函数,用于模式识别。BP网络的神经元输出函数为Sigmoid函数,输出量是0~1的连续量。一个三层前馈网络就能实现从输入到输出的任意的非线性映射,因此可用于建模、优化、控制等。 前馈网络的重要意义在于,不仅它的网络结构成为后来设计RBF网络、深度网络等许多网络的基础,而且BP算法也成为后来许多网络训练、学习算法或推广算法应用的基础。 3.2.3径向基神经网络 前馈网络的BP算法可以看作递归技术的应用,属于统计学中的随机逼近方法。此外,还可以把神经网络学习算法的设计看作一个高维空间的曲线拟合问题。这样,学习等价于寻找最佳拟合数据的曲面,而泛化等价于利用该曲面对测试数据进行插值。1985年,鲍威尔(Powell)首先提出了实多变量插值的径向基函数(Radial Basis Function, RBF)方法。1988年,布鲁姆里德(Broombead)和罗威(Lowe)将RBF用于神经网络设计,而穆迪(Moody)和达肯(Darken)提出了具有代表性的RBF网络学习算法。 1. RBF神经网络模型 图3.15给出了一个三层结构的RBF网络模型,包括输入层、隐层(径向基层)和输出层(线性层),其中每一层的作用各不相同。输入层由信号 图3.15RBF网络的三层结构 源结点组成,仅起到传入信号到隐层的作用,可将输入层和隐层之间看作权重为1的联结; 隐层通过非线性优化策略对激活函数的参数进行调整,完成从输入层到隐层的非线性变换; 输出层采用线性优化策略对线性权重进行调整,完成对输入层激活信号的响应。 2. RBF网络的工作原理 RBF网络隐层的每个神经元实现一个径向基函数(RBF),这些函数被称为核函数,通常为高斯型核函数。当输入向量加到输入端时,隐层每一个单元都输出一个值,代表输入向量与基函数中心的接近程度。隐层的各神经元在输入向量与RBF的中心向量接近时有较大的反应,也就是说,各个RBF只对特定的输入有反应。 如果输入向量与权重向量相差很多,则径向基层的输出接近0,经过输出层线性神经元的输出也为0; 如果输入向量与权重向量很接近,则径向基层的输出接近于1,经过线性神经元的输出值更靠近输出层的权重。 3. RBF网络的学习算法 RBF网络学习算法需要求解3个参数: 基函数中心、宽度和隐层到输出层的权重。径向基函数通常采用高斯函数,根据对径向基函数中心选取方法的不同,提出了多种RBF网络学习算法,其中穆迪和达肯提出的两阶段学习算法较为常用。 第一阶段为非监督学习,采用K均值聚类法决定隐层的RBF的中心和方差; 第二阶段为监督学习,利用最小二乘法计算隐层到输出层的权重。 RBF神经网络的激活函数通常采用的高斯函数为 Gjx-cj=exp-12σ2j‖x-cj‖2(3.31) 其中,x是输入向量; cj是第j个神经元的RBF中心向量; σj是第j个RBF的方差; ‖·‖表示欧氏范数。 RBF神经网络的输出为 ykx=∑Jj=1wkjGjx-cj(3.32) 实现RBF网络学习算法的具体步骤如下: (1) 随机选取训练样板数据作为聚类中心向量初始化,确定J个初始聚类中心向量。 (2) 将输入训练样板数据xi按最邻近聚类原则选择最近的聚类j。 cj= arg minj‖xi-cj‖(3.33) (3) 聚类中心向量更新。若全部聚类中心向量不再发生变化,则所得到的聚类中心即为RBF网络最终基函数中心,否则返回第(2)步。 (4) 采用较小的随机数对隐层和输出层间的权重初始化。 (5) 利用最小二乘法计算隐层和输出层之间神经元的联结权重wkj。 (6) 权重更新。首先求出各输出神经元中的误差 ek=dk-ykx(3.34) 其中,dk是输出神经元k的期望输出。然后,再更新权重为 wnewkj=woldkj+ηekGjx-cj(3.35) 其中,η是学习率。 (7) 若满足终止条件,则结束; 否则返回第(5)步。 4. RBF神经网络的特点 RBF网络同BP网络一样,都能以任意精度逼近任意连续函数。由于BP网络的隐结点使用的Sigmoid函数值在输入空间无穷大范围内为非零值,具有全局性。而RBF网络隐结点使用的高斯函数,使得RBF神经网络是一个局部逼近网络。RBF网络比BP网络的学习速度更快,这是因为BP网络必须同时学习全部权重,而RBF网络一般分两段学习,各自都能实现快速学习。 3.2.4反馈神经网络 人的大脑没有设定有序的地址来存储记忆的内容,而是分布存储在神经网络的不同区域,要取出时,当线索与回想的内容相同时,就可以取出; 不相同时,就相互联想,分布存储在与线索贴近的内容的新区域。 1982年,美国物理学家霍普菲尔德受到磁场具有记忆功能的启发,结合生物脑思维的机理,提出了一种由非线性元件构成的单层反馈网络系统,被称为Hopfield网络,具有模拟大脑的联想记忆功能,可用于模式识别和优化问题。 Hopfield网络具有反馈,并引用了能量函数,它是一个非线性动力学系统。非线性动力学系统本身涉及稳定性、吸引子以及混沌现象等问题,因此研究反馈网络要比前馈网络(静态网络)复杂得多。在非线性动力学系统的相空间中,当t→∞时,所有轨迹线都趋于一个稳定的不动点集,称为吸引子[15]。 1. Hopfield网络模型 Hopfield网络是一种网状网络,可分为离散和连续两种类型。离散网络的结点仅取+1和-1(或0和1)两个值,而连续网络取0和1之间任一实数。图3.16给出一种离散Hopfield网络的结构形式。 图3.16Hopfield网络的结构 设此网络含有n个神经元,神经元i的状态Si取0或1,各神经元按下列规则随机地、异步地改变状态 Si=1,∑WijSi+Ii-θi>0 0,∑WijSi+Ii-θi<0(3.36) 其中,Wij为神经元i与j间的联结权重; Ii为神经元i的偏流; θi为其阈值。 Hopfield根据系统动力学和统计力学的原理,在网络系统中引入能量函数的概念,给出了网络系统稳定性定理如下。 定理3.1设(W,S)是一个神经网络,若Wij =Wji,且Wii> 0,各神经元随机异步地改变状态,则此网络一定能收敛到稳定的状态。 证明在网络中引入能量函数 E=-12∑ni=1∑nj=1WijSiSj-∑ni=1IiSi+∑ni=1θiSii≠j(3.37) 能量函数E随着状态Sk的变化为 ΔEkΔSk=-12∑ni=1WkiSi-12∑nj=1WjkSj-Ik+θk 当Wik=Wki时,则得 ΔEk=-∑nj=1WkjSj+Ik-θkΔSk(3.38) 若令Sk表示上式括号中部分,即Sk=∑nj=1WkjSj+Ik-θk,则由式(3.36)可知,Sk与ΔSk同号,再从式(3.38)可以看出,Sk与ΔSk之积大于零,故ΔEk<0。这就表明网络系统总是朝着能量减小的方向变化,最终进入稳定状态。 Hopfield网络模型的基本原理是: 只要由神经元兴奋的算法和联结权重所决定的神经网络的状态,在适当给定的兴奋模式下尚未达到稳定状态,那么该状态就会一直变化下去,直到预先定义的一个必定减小的能量函数达到极小值时,状态才达到稳定而不再变化。 对于连续的Hopfield网络,通过引入能量函数,可以类同于离散模型的情况加以研究,它同样朝着能量减小的方向运行,最终到达一个稳定的状态,这里不再讨论。 2. Hopfield网络的联想记忆功能 Hopfield网络是一个非线性动力学系统。引入能量函数后,该网络系统在一定条件下总是朝着系统能量减小的方向变化,并最终达到能量函数的极小值。如果把这个极小值所对应的模式作为记忆模式,那么以后当给这个网络系统一个适当的激励时,它就能成为回想起已记忆模式的一种联想记忆装置,即Hopfield网络具有联想记忆功能。 Hopfield网络的联想记忆过程可分为学习和联想两个阶段: 在给定样本的条件下,按照Hebb学习规则,调整联结权重使得存储的样本成为动力学的吸引子,这个过程就是学习阶段; 联想是指在已调整好权重不变的情况下,给出部分不全或受了干扰的信息,按照动力学规则改变神经元的状态,使系统最终收敛到动力学的吸引子。 Hopfield网络模型的动力学规则是指若网络结点在S(0)初始状态下,经过t步运行后将按下述规则达到S(t+1)状态,即 St+1=sgn∑nj=1WijSj(t)+Ii(3.39) 其中,sgn为符号函数。 3. Hopfield网络的联想记忆学习算法 在偏流I为零的情况下,本学习算法的具体步骤如下: (1) 按照Hebb规则设置权重 Wij=∑nm=1xmixmj,i≠ji,j=1,2,…,n 0,i=j(3.40) 其中,Wij是结点i到结点j的联结权重; xmi表示样本集合m中的第i个元素,xi∈{-1,+1}。 (2) 对未知样本初始化 Si0=xi,i=1,2,…,n(3.41) 其中,Si(t)是t时刻结点i的输出; xi是未知样本的第i个元素。 (3) 迭代计算 Sjt+1=sgn∑ni=1WijSi(t),j=1,2,…,n(3.42) 直至结点输出状态不改变时,迭代结束。此时结点的输出状态即为未知输入最佳匹配的样本。 (4) 返回第(2)步继续迭代。 4. Hopfield网络的优化计算 Hopfield网络用于优化问题的计算与用于联想记忆的计算过程是对偶的。在解决优化问题时,权重矩阵W已知,目的是求取最大能量E的稳定状态。通过将能量函数和代价函数相比较,求出能量函数中权重和偏流,并以此去调整相应的反馈权重和偏流,进行迭代计算,直到系统收敛到稳定状态为止。最后将所得到的稳定状态变换为实际优化问题的解。 旅行商问题(TSP)是给定N个城市,从某一城市出发不重复地走遍所有城市,再回到原出发地所经过的路径必须最短。1985年, 霍普菲尔德本人应用900个神经元组成连续的Hopfield网络,在0.2s内成功地解决了著名的旅行商问题。此问题用普通搜索法极其费时,而采用Hopfield网络在极短时间内找到虽不最短,但却是接近最短的最优近似解,充分显示出Hopfield网络优化计算的巨大潜力。 3.2.5小脑模型神经网络 人的小脑具有管理和协调运动功能。小脑皮层的神经系统从肌肉、四肢、关节、皮肤等接收感觉信息,并感受反馈信息,然后将这些获得的信息整合到一特定的存储区域。当需要的时候,将这些存储的信息从中取出,作为驱动和协调肌肉运动的控制指令。当感受信息和反馈信息出现差异时,通过联想调整达到协调运动控制的目的,这一过程便是学习。 1975年,阿布思(Albus)根据神经生理学小脑皮层结构特点,提出了一种小脑模型关联控制器(Cerebellum Model Articulation Controller,CMAC),被称为CMAC网络。 1. CMAC网络的结构 CMAC网络是模拟小脑神经系统的协调功能而设计的,其结构如图3.17所示。CMAC的功能是通过多个映射实现的。第一个映射是从S→A的映射,其中S为输入状态空间,A为概念存储器。映射的基本原则是: 对相近的输入映射到A中有一定的重合,而不相近的输入在A中也相距较远。第二个映射是从A→M的映射,其中A为概念存储器,M为实际存储器。由于要学习的问题不会是全部可能的输入,故M的存储容量要比A小得多,这就决定了从A到M的映射为多对一的随机映射,因此可用散列编码(hash coding)实现这种映射。 图3.17CMAC网络的结构 2. CMAC网络的工作原理 图3.18给出了CMAC网络原理结构图。图中以输入状态空间的集合元素数等于3为例,输入S1,S2,S3经过量化映射Q变换为q1,q2,q3,输入量的最大值Simax,最小值Simin及量化等级qimax决定了分辨率qi为 qi=QSi,Simax,Simin,qimax(3.43) 其中,输入集合数目i=1,2,…,m,本例中m=3。由于量化等级可以根据需要而增加,因此CMAC网络可达到很高精度。 图3.18CMAC网络原理结构图 再对离散的输入量到虚地址进行映射,它相当于从S→A的映射,映射后变为由3段合成的4个虚地址(V1,V2,V3,V4),即每一个V都由3段所组成,这样的映射使得CMAC网络具有泛化能力,即当某一输入量化值变化一个等级时,只有一个虚地址段变化为1,而其他虚地址段都保持不变,这样,就保证了在相邻量化值的指示权重用的4个虚地址中有3个是相同的。这就意味着,在输入空间中相近的输入量能给出相近的输出。 对上述组合成的3段虚地址,经过一个多对一的随机映射P后,得到与输入量相对应的物理地址为 pj=Pvj,j=1,2,…,g(3.44) 其中,P为一种以散列编码形成的映射。由得到的pj可以通过输出权重值表获得相应的权重为 Wj=Wpj(3.45) 输出为 y=∑gj=1Wj(3.46) 在训练过程中,如果网络输出y与期望输出d不同,则权重修正为 WjK+1=WjK+βd-∑mj=1Wj/g(3.47) 其中,β为学习因子(β≤1); g为推广能力,其值越大,相邻输入的共同虚地址越多,则CMAC的泛化能力越强。 综上所述,CMAC网络是一种通过多种映射实现联想记忆网络,这种映射实质上是一种智能查表技术。它模拟小脑皮层神经系统感受信息、处理信息、存储信息,并通过联想利用信息的功能。它能实现无教师学习,具有在线学习能力,不仅学习速度快,而且精度高,可以处理不确定性知识。它在实时控制,尤其在机器人实时控制领域有着广泛的应用。 3.2.6大脑模型自组织神经网络 脑神经学研究表明,人脑中大量的神经元处于空间的不同区域,有着不同的功能。它们敏感着各自的输入信息模式的不同特征,这样就形成了大脑各种不同感知路径。在大脑皮质中,神经元之间信息交互的共同特征是最邻近的两个神经元互相激励而兴奋,较远的相互抑制,更远的又是弱激励,这种局部作用的交互关系形成一个墨西哥草帽形状的分布关系,如图3.19所示。 1987年,芬兰科霍恩教授提出了一种模拟大脑神经系统自组织特征映射功能的神经网络,它是一种竞争式学习网络,在学习中能无监督地进行自组织自学习,因此又称为自组织神经网络,或称为Kohonen网络。 1. Kohonen网络结构与功能 Kohonen网络如图3.20所示,它是一个完全相互联结的神经元组成的二维点阵结构,在网络的一定邻域内各神经元间存在交互侧向反馈作用。每个神经元的输出都是网络中其他神经元的输入,而每个神经元又都有相同的输入形式。网络中有两种联结权重: 一种是神经元对外部输入反应的联结权重; 另一种是神经元之间的联结权重。它的大小控制着神经元之间的交互作用的大小。 图3.19侧向交互作用关系 图3.20Kohonen网络 科霍恩认为,一个神经网络接受外界输入模式,将分成不同区域,各区域中邻近的神经元通过交互作用,相互竞争,自适应地形成了对输入模式的不同响应检测器,这就是科霍恩提出的自组织特征映射网络的基本思想。 Kohonen网络在结构上模拟了大脑皮质中的神经元呈二维空间点阵结构,在功能上通过网络中神经元间的交互作用和相互竞争,模拟了大脑信息处理的聚类功能、自组织、自学习功能。 2. Kohonen网络学习规则 Kohonen网络当外部输入模式出现后,网络所有神经元都同时工作,它们之间的突触联结权向量试图模仿输入信号,实现网络自组织的目标。这一自组织学习过程包括采用竞争机制选择最佳匹配神经元和权向量自适应更新两个过程。 1) 选择最佳匹配神经元 当输入信号X与神经元i获得最佳匹配时,它们之间的欧氏距离为 ‖X-Wc‖= mini‖X-Wi‖(3.48) 其中,X为输入空间Rn中的输入向量,X=x1,x2,…,xnT; Wi为相应的权向量,Wi=Wi1,Wi2,…,WinT。X与Wi的匹配度等于它们的内积XT·Wi,其最大处正是由于神经元的不断交互作用,其输出分布所形成的“气泡”(bubble)中心C。 因为X与Wi之间内积最大,就意味着它们之间的向量差的范数‖X-Wi‖最小,这个最小的距离确定了神经元C在竞争中获胜。式(3.48)被称为匹配定律。当网络训练好之后,如果同样的输入模式出现时,某个神经元就兴奋起来,表示该神经元已经认识了这个模式。 2) 权向量的自适应更新过程 当某一输入与被选神经元j的权重Wj有差异时,除该权重修正外,被选神经元的邻域Nj中的其他神经元也将根据它们的误差以及按照距离的大小作适当的调整,越靠近j的神经元调整得就越多,这样形成的邻域关系使得输入模式相近时,对应的神经元在位置上也靠近。这种思想来源于人脑内的感觉映射,Kohonen网络中被选神经元j的邻域关系如图3.21所示。 图3.21被选神经元j及其邻域变化(t00时,Pi函数趋于阶跃函数; 当T很大时,两种状态近于各半,而能量差为 ΔEi=ESi=1-ESi=0(3.52) 假设网络的联结权重是对称的,引入能量函数 E=-12∑i≠jWijSiSj(3.53) 其中,Si是包括输入层、隐层和输出层中所有单元的状态。当系统达到平衡时,能量函数达到极小值,可以证明Boltzmann机是收敛的。 2. Boltzmann机的训练步骤 (1) 设定初始高温并随机给定全部权重。 (2) 给定一输入向量,用已有的权重计算代价函数。 (3) 用Boltzmann分布Px=e-x2/T2随机改变每个权重。 (4) 重新计算代价函数,若减小,则将权重置成常数; 否则返回第(3)步。 (5) 求新的温度值如下: Tn+1=T0/log1+n,n≥1(3.54) (6) 满足终止条件,则结束,否则重复第(3)~(6)步。 3. Boltzmann机的学习算法 使用梯度下降法来计算权重Wij的变化 Wij=-ηGWij=-η1TP+ij-P-ij(3.55) 其中,P+ij为网络输入、输出固定并对各种分布平均后,出现Si和Sj同时为1的概率; P-ij为网络仅固定输入时相应的概率,G为两概率分布的测度。 经过反复调整Wij,直至P+ij=P-ij,即ΔWij=0时的Wij即为所期望的权重。由于Boltzmann机模拟退火过程,虽然这种算法可以避免局部最小,但这种获得全局最小的收敛速度很慢,这是其不足。 3.2.8深度信念网络 深度信念网络 (Deep Belief Network, DBN) 是2006 年由辛顿教授等提出的,用于解决手写数字图像的识别问题。深度信念网络是以受限Boltzmann机为单元搭建的深层网络。 1. 受限Boltzmann机 受限Boltzmann机(Restricted Boltzmann Machine,RBM)是1985年由阿克雷(Ackley)和辛顿等提出的。受限就是把相互连接的Boltzmann机同层之间的连接取消,其结构如图3.22所示,它包含一层可视层和一层隐层,两层的神经元彼此互连,同一层内神经元无连接。 图3.22受限Boltzmann机 设可视层v为输入层,有m神经元,隐层h有n神经元,作为输出层,又称推断层,用作特征检测器。 在图3.22中,Wn×m为可视层与隐层间的连接权矩阵; b=(b1,b2,…,bm)为可视结点的偏移向量; c=(c1,c2,…,cm)为隐结点的偏移向量。可视层和隐层间的联合概率分布定义为 p(v,h)=1Zexp(vTWh+vTb+hTc)(3.56) 其中,Z为归一化函数。对式(3.56)的优化目标是最小化式(3.56)的负对数: E(p,h)=-logP(v,h)(3.57) 2002年,辛顿提出RBM的对比分歧(Contrastive Divergence,CD)快速算法,对参数θ=(W,b,c)最大似然求解,通常仅使用k=1步Gibbs采样,就能得到足够好的近似解。针对一个样本的单步对比分歧算法的具体过程描述如下。 取一个训练样本v,计算隐结点的概率,从中获取一个隐结点激活向量的样本h,计算v和h的外积,称为“正梯度”; 从h获取一个重构可视结点的激活向量样本v′,再从v′获得一个隐结点的激活向量样本h′,计算v′和h′的外积,称为“负梯度”; 使用正梯度和负梯度的差以一定的学习率ε更新权重为 ΔWij=ε(vhT-v′h′T)(3.58) 同样地,偏置b和c也可以使用类似的方法进行更新。 2. 深度信念网络的结构 深度信念网络(DBN)是由若干受限Boltzmann机(RBM)堆叠而成,即上一个RBM的隐层作为下一个RBM的可视层,上一个RBM的输出作为下一个RBM的输入,直到最后再连接一层分类层构成,如图3.23所示。 图3.23从受限Boltzmann机到深度信念网络的结构 3. 深度信念网络的训练 DBN的训练过程分为预训练和调优两个阶段。从低到高逐层采用无监督算法进行预训练,初始化的网络参数包括层与层之间的联结权重及各层神经元的偏置值,具体步骤如下: (1) 低层(可视层)使用观测样本对RBM进行训练。 (2) 低层输出作为高层(隐层)的输入对RBM进行训练。 (3) 重复第(1)步和第(2)步,对所有的RBM进行训练,完成模型参数的初始化。 调优是在完成对模型参数初始化的预训练之后,再用传统学习算法对网络参数进行微调,达到进一步优化参数的目的。 深度信念网络采用了逐层初始化和整体反馈的方法,克服了深层网络难以训练的弊端。因此,它可以用于特征识别、特征分类及数据构造等。 3.2.9卷积神经网络 卷积神经网络(Convolution Neural Network, CNN)是1998年由乐村等提出的[119],用于手写字符的识别。为了解决全连接网络图像识别面临的许多问题,乐村等提出局部连接、局部感受野、权重共享、空间或时间子采样的新思想,设计了卷积神经网络LeNet5。 1. 卷积神经网络结构及设计原理 卷积神经网络是一种多层前向神经网络,如图3.24所示,除输入层外,有3个卷积层,2个子采样层(池化层),1个全连接层和输出层,共7层。输入的原始图像大小是32×32像素,卷积层用来提取不同的图像特征,子采样层用作降维。卷积层和子采样层的输出均为特征图。全连接层是一个分类器,输出层给出的是图像在各类别下的预测概率。 图3.24卷积神经网络LeNet5的结构 卷积神经网络设计局部连接和权重共享的思想,源于自然图像存在相邻局部区域的统计特性具有相似性,因此,每个神经元就没必要全连接对全局图像进行感知,只需要局部连接对局部进行感知,从局部区域学习到的图像特征,同样适合于其他相邻的局部区域。这个局部区域称为卷积核(权矩阵)的局部感受野,这样的权矩阵就可以在其他区域共享了。 2. 卷积层与卷积运算 卷积神经网络的每一层都由多个二维向量组成,每个向量由多个独立神经元组成。每个二维向量可以视为一张图像,使用一个权矩阵表示单个像素与其邻域像素之间的关系。卷积层的作用是通过卷积运算提取输入图像的特征。 卷积是一种积分运算,用于求两个重叠区域面积。卷积运算就是用卷积核(权矩阵)作模板和一幅图像进行卷积,对于图像上的一个点,让模板的原点和该点重合,然后模板上的点和图像上对应的点相乘,再把各点的积相加,就得到了该点的卷积值。卷积运算是把一个点的像素用它周围点像素的加权平均代替,起到对图像线性滤波的作用。 卷积操作是将作为卷积核的权矩阵在输入特征图中,按从上到下、从左到右的顺序移动,从而得到整个图像的特征表示。 3. 池化层与池化操作 池化层用来降低数据的维数。类似于卷积操作,池化操作是将池化窗口在输入特征图中,按从上到下、从左到右的顺序移动。取池化窗口所覆盖的子矩阵元素的最大值或平均值作为输出的操作,分别称最大池化或平均池化。 上述的卷积运算和池化过程的示意如图3.25所示。输入图片首先利用卷积核(也称滤波器矩阵)fx对图像进行卷积运算,再赋予偏置项bx,最后得到卷积层Cx的一个特征图。这个特征图被子采样后,先对每个邻域的4个像素求和,得到1个像素值,通过权重Wx+1对x加权,再加上偏置项bx+1,最后利用Sigmoid激活函数得到几乎缩小为1/4倍的特征图Sx+1。 图3.25卷积和子采样过程示意图 卷积神经网络经过多个卷积层和池化层后,将获取图像的全部局部特征送给全连接层。 4. 全连接层 全连接层在整幅图像层面上整合卷积层(或者池化层)中局部的特征信息,将高维的大向量通过全连接变成合适维度的小向量,以形成便于分类的特征,并将这些特征映射到样本的标记空间中。 5. 卷积神经网络的训练 卷积神经网络的训练比起全连接神经网络的训练要复杂一些,但是训练的原理是一样的。都是利用链式求导计算损失函数对每个权重的偏导数(梯度),然后根据梯度下降公式更新权重。训练算法依然是反向传播算法。由于卷积神经网络的参数量较大,很容易发生过拟合,影响最终的测试性能。辛顿等人[120]提出通过在每次训练迭代中随机忽略一半的特征点来防止过拟合。此外还有一些改进方法,如动量法、权重衰变和数据增强等。 卷积神经网络LeNet5已成为深度学习的经典模型,后来相继提出AlexNet、ZFNet和VGGNet等模型,主要应用在图像识别、人脸识别、计算机视觉、自然语言处理、机器学习等领域。 3.2.10循环神经网络 循环神经网络(Recurrent Neural Network, RNN)是具有环路结构和记忆能力,能处理序列数据的一类动态神经网络。对循环神经网络的研究始于20世纪80—90年代,根据“循环”方式的不同和输入输出的变化,约旦(Jordan)、皮内达(Pineda)、威廉姆斯(Williams)等提出了多种RNN结构。 1. RNN的结构与原理 循环神经网络的单元结构如图3.26所示,其中图左侧为包含输入单元、隐单元和输出单元的单元模型。如果去掉了隐单元的自身反馈环,它就变成了最普通的全连接神经网络。 图3.26中的右侧表示由单元模型按时间展开后的情况。网络在t时刻输入xt后,隐单元的状态不仅取决于st,还取决于st-1,st和它的输出值ot分别用下面的公式表示为 st=f(U·xt+Wst-1)(3.59) ot=g(V·st)(3.60) 其中,U为输入x的权矩阵; V为输出层的权矩阵; g和f分别为激活函数。 图3.26循环神经网络结构示意图 不难看出,输出层是一个全连接层,它的每个结点都和隐结点相连。这样能够通过获取输入层的输出和隐单元前一时刻的状态来计算当前时刻的隐单元输出,具有对过去信息进行记忆的功能。 2. RNN的学习算法 1986年,辛顿等人提出了一种循环神经网络训练参数的随时间反向传播(BackPropagation Through Time,BPTT)算法。BPTT算法可以看作反向传播算法由前馈神经网络向循环神经网络的推广,只不过RNN处理的是时间序列数据,所以是基于时间反向传播,故称随时间反向传播。 BPTT算法将循环神经网络视为一个展开的多层前馈网络,其中“每一层”对应循环网络中的“每个时刻”。这样,循环神经网络就可以按照前馈网络中的反向传播算法进行计算参数梯度。在“展开”的前馈网络中,所有层的参数W、U、V都是共享的,训练的目的就是沿着需要优化参数的负梯度方向不断地寻找更优的点,直至收敛。 BPTT算法对循环层的训练的具体步骤如下。 (1) 随时间前向传播计算每个神经元的输入值。 (2) 随时间反向传播计算每个神经元的误差值,将误差项向上一层传播。 (3) 计算每个权重的梯度。 (4) 用梯度下降的误差后向传播算法更新权重。 3. LSTM网络的结构 长短时间记忆单元(Long ShortTerm Memory,LSTM)的特殊结构循环神经网络是1997年由德国的霍克赖特(Hochreiter)和施密特胡伯(Schmidhuber)提出的,它通过控制记忆状态时间对长短来解决BPTT算法当输入序列长时间存在的梯度消失问题。 图3.27一个LSTM网络的单元结构 LSTM网络由多个带有3个门的单元模块组成,一个单元结构如图3.27所示,其中黑圆点表示门,含曲线的圆圈表示激活函数,中间的大圆圈表示该单元的结点。 每个单元模块包含输入门、输出门及遗忘门,它们分别通过不同的取值1或0对当前结点的信息进行控制。例如,输入门通过取值为1(或0)控制信息允许(或不允许)输入当前结点; 输出门通过取值为1(或0)控制当前结点信息允许(或不允许)传递给下个结点; 遗忘门通过取值为1(或0)控制当前结点允许(或不允许)保留历史时刻信息。 LSTM的训练算法仍然是反向传播算法。LSTM网络能够对数据点所在时刻的“历史”信息进行参考,更有利于分析数据。 4. 双向循环神经网络的结构 双向循环神经网络(Bidirectional Recurrent Neural Network,BiRNN)是由两个独立并结构完全对称的循环神经网络叠加在一起组成的,其输出也是由这两个循环神经网络的输出拼接而成,其结构如图3.28所示。 图3.28双向循环神经网络结构 同一个输入会同时提供给两个方向相反的循环神经网络,两个独立的网络独立进行计算,各自产生该时刻的新状态和输出; 双向循环神经网络的最终输出是这两个单向循环神经网络输出的简单拼接。这样可以在同一网络结构中直接用两个相反时间方向的输入信息来减少代价函数的误差,而不需要额外的算法处理“未来”数据信息,能对输入数据的背景信息更加有效的利用,较前面的传统循环神经网络更为简便,并提高了识别率。 5. 深层循环神经网络 RNN的环路结构使得在神经单元之间既有内部反馈连接,又有前馈连接。RNN的内部状态可以展示动态时序行为,可以利用它内部的记忆来处理任意时序的输入序列。RNN比前馈神经网络更加符合生物神经网络的结构,具有更强的动态行为和计算能力。 前面介绍的循环神经网络只有一个循环层,为了增强网络的信息表达和处理能力,在网络中设置多个循环层,将每层循环神经网络的输出传给下一层进行处理,这样网络就称为深层循环神经网络。深层循环神经网络广泛用于语音识别、语言模型以及自然语言生成等领域。 3.2.11递归神经网络 随着大数据和云计算技术的发展,需要设计更为复杂的网络以便在时间和空间维度上解决表征、处理语音识别、图像识别等复杂问题。于是反馈神经网络的结构变得越来越复杂。复杂结构的网络在训练、学习过程中,通常采用递归的结构,一般把这类具有复杂结构的反馈网络称为递归神经网络。 1. 递归神经网络的结构原理 递归神经网络(Recursive Neural Network,RNN)是利用树状神经网络结构来递归构造更为复杂的深度神经网络。递归神经网络的结构上有利于在空间维度上展开,便于处理图像识别等问题。 根据实际应用场合对输入和输出序列数量的要求不同,RNN的结构有多种形式: 单入单出,用于图像分类场景等; 单入多出,可用于图像自动字幕等; 多入单出,可用于文本情感分析等; 多入多出,可用于翻译或聊天对话场景等。 下面介绍RNN怎样把一个树结构信息编码映射为一个向量。 设递归神经网络的输入有两个子结点,输出为这两个子结点编码后产生的父结点,父结点的维度和每个子结点相同,它们都用向量表示。子结点的每个神经元和父结点的每个神经元两两相连。两个子结点和两个父结点就组成一个全连接神经网络,用矩阵表示联结权重。 把产生的父结点向量和其他子结点向量再作为网络的输入,再次产生它们的父结点,如此递归下去,直至整棵树处理完毕。最终,将得到根结点的向量,它是对整棵树的表示。这样就实现了把树结构信息映射为一个向量。 2. 递归神经网络的训练 递归神经网络的训练算法和循环神经网络类似,都是采用辛顿等人在1986 年提出的一种多层前馈网络训练的BPTT算法。但两者训练的区别在于,循环神经网络是将误差从当前时刻反向传播到初始时刻,而递归神经网络要将误差从根结点反向传播到各个子结点。 3. 递归神经网络与循环神经网络的关系 循环神经网络(Recurrent Neural Network,RNN)与递归神经网络(Recursive Neural Network,RNN)二者的英文缩写都是RNN。英文中的recurrent和recursive都有递归的、循环的意思,而译成中文时前者译为循环,而后者译为递归。 循环神经网络指的是时间上的循环,用于在时间维度上展开,处理时间序列结构的信息。这样的信息在时间维度从前往后的传递和积累。递归神经网络指的是结构上的递归,用于在空间维度上展开,处理树/图类结构的信息。 用循环神经网络来建模的话,就是假设句子后面的词的信息和前面的词有关,而用递归神经网络来建模的话,就是假设句子是由几个句成分组成的一个树状结构,而每个部分又可以再分成几个小部分,即某一部分的信息由它的子树的信息组合而来,整句话的信息由组成这句话的几个部分组合而来。 递归神经网络和循环神经网络具有不同的计算图,递归神经网络的计算图的结构为一个深层树(无环图),而不是循环神经网络的计算图为链式结构(有环图)。 除了上述介绍的神经网络模型外,还有许多种类的神经网络模型,如基于自适应共振理论(Adaptive Resonance Theory,ART)的自组织神经网络,基于非线性动力学稳定吸引子理论的双向联想记忆网络(Bidirectional Associative Memory,BAM),基于细胞自动机理论的细胞神经网络(Cellular Neural Network,CNN),模糊神经网络(Fuzzy Neural Network,FNN),以及混沌神经网络(Chaotic Neural Network,CNN)等,在此不再赘述。 3.3基于神经网络的系统辨识 3.3.1神经网络的逼近能力 1989年,罗伯特·赫希特·尼尔森(Robert HechtNielson)证明了对于任何在闭区间内的一个连续函数都可以用一个隐层的BP网络来逼近,因而一个三层的BP网络可以完成任意的n维到m维的映射。这个定理的证明是以数学上维尔斯特拉斯(Weierstrass)的以下两个逼近定理为依据的。 定理3.2任意给定一个连续函数g∈C(a,b)及ε>0,存在一个多项式P(x),使|g(x)-P(x)|<ε,对每个x∈[a,b]成立。 定理3.3任意给定一个函数g∈C2π(C2π是以2π为周期的连续函数)及ε>0,存在三角函数多项式T(x),使得|g(x)-T(x)|<ε,对每个x∈R成立。 推理3.1在n维空间中,任一向量x都可以由基集{ei}表示,x=C1e1+C2e2+…+Cnen,同样在有限区间内x∈[a,b]的一个函数g(x),可以用一个正交函数序列{i(x)}来表示。如果基函数可以扩展到任意大,那么 g(x)=C11(x)+C22(x)+…+Cnn(x)(3.61) 如果正交基函数是有限项,那么 g(x)=C11(x)+C22(x)+…+Cnn(x)+ε(3.62) {i(x)}是正交的,可以用傅里叶级数的三角函数展开,C1,C2,…,Cn为傅里叶级数的系数。 利用推理3.1,对于一个任意给定的一维连续函数g(x),x∈[0,1],可以用一个傅里叶级数来近似,表示为 gF(x)=∑kCkexp(2πikx)(3.63) 其中 Ck=∫[0,1]g(x)exp(-2πikx)dx(3.64) 则有|g(x)-gF(x)|<ε,对每个x成立。 进一步考虑x为一个n维空间的向量,在[0,1]n∈Rn进行映射g′: [0,1]n∈Rn→R,如果积分∫[0,1]n|g′(x)|2dx存在,那么根据傅里叶级数理论,仍旧存在一个级数: g′F(x,N,g′)=∑Nk1=-N∑Nk2=-N…∑Nkn=-NCk1k2…knexp2πi∑ni=1kixi =∑kCkexp(2πi k·x) Ck1,k2,…,kn=Ck=∫[0,1]n g′(x)·exp(-2πik·x)dx (3.65) 当N→∞时,满足 limN→∞∫[0,1]n|g(x)-g′F(x,N,g′)|dx=0(3.66) 现考虑对一个任意多维函数的映射,给定一个函数h(x),x∈Rn,[0,1]nRn→Rm其h(x)=[h1(x),h2(x),…,hm(x)]T,则h中的每一个分量也都可以用式(3.63)中的傅里叶级数来近似,那么可以得到下面的定理。 定理3.4(映照定理)给定任一个ε>0,一个连续函数向量h,其向量中的每个元素满足∫[0,1]n|hi(x)|2dx存在,h: [0,1]nRn→Rm必定存在一个三层BP神经网络来逼近函数h,使逼近误差在ε之内。(证明略) 神经网络的万能逼近能力表明它具有从输入到输出的非常强的非线性映射能力。 3.3.2神经网络系统辨识的原理 系统辨识是对难以通过机理和试验方法建模的复杂对象进行建模的一种方法。扎德把辨识定义为: “辨识就是在系统输入和输出观测数据的基础上,从一组给定的模型中,确定一个与被识别的系统等价的模型。”这个定义指出了辨识应具有以下3个要素。 (1) 输入输出数据: 能够观测到的按时间顺序排列的系统输入输出数据,简称为时序数据。 (2) 模型类: 明确给定所要辨识的系统属于哪一类系统,因为属性完全不同的系统可能具有相同的模型结构。 (3) 等价准则: 从一类模型中按所给定的性能等价准则,选择一个与实际系统最为接近的模型。等价准则就是用以衡量模型与实际系统接近程度的标准,一般表示为误差函数的泛函。 基于神经网络的系统辨识就是选择一个适当拓扑结构的神经网络模型,使该网络从待辨识的实际动态系统中不断地获得输入输出数据,神经网络通过学习算法自适应地调节神经元间的联结强度,从而获得利用神经网络逐渐逼近实际动态系统的模型(正模型)或逆模型(如果系统是可逆的)。这样的动态系统模型实际上是隐含在神经网络的权矩阵中。 3.3.3基于BP网络的非线性系统模型辨识 多层前馈网络是系统辨识中常用的网络,下面介绍一种基于BP网络的非线性动态系统模型辨识算法[43]。 1. 前馈网络的结构设计 为简单起见,考虑单输入单输出动态系统 y(k+1)=f[y(k),y(k-1),…,y(k-n+1); u(k),u(k-1),…,u(k-m+1)](3.67) 其中,u(k),y(k)分别为系统的输入、输出; m,n分别为输入、输出的阶次。 辨识上述系统选用三层前馈网络: 输入层神经元的数目为nI≥m+n+1; 输出层神经元的数目nO应为待辨识的输出维数,在此nO=1; 隐层的神经元数目nH一般取nH>nI。 如果对象的阶次n,m已知,那么BP网络的输入向量为 X(k)=[x1(k),x2(k),…,xnI(k)]T(3.68) xi(k)=y(k-i),1≤i≤n u(k-i-n+1),n+1≤i≤nI(3.69) 如果对象的阶次n,m未知,那么可通过选择n,m的不同组合,由好的性能指标决定。 2. 基于BP网络的系统辨识算法 设输入层到隐层的加权阵为[vji],隐层到输出层的加权阵为[wi]。对于设定的单输入单输出系统,神经网络从输入层到隐层的输入输出关系为 neti(k)=∑nIj=0vjixj(k)(3.70) Ii(k)=H[neti(k)](3.71) H[x]=(1-e-x)/(1+e-x)(3.72) 其中,x0=1为阈值对应的状态。 从隐层到输出层的输入输出关系为 y^(k)=∑nHi=0WiIi(k)(3.73) 其中,I0=1为阈值对应的状态。 BP网络的学习算法采用广义δ规则,使性能指标 J=12[y(k)-y^(k)]2(3.74) 达到最小。为提高网络学习速度,采用带有惯性项的δ规则为 ΔWi(k)=a1e(k)Ii(k)+a2ΔWi(k-1)(3.75) Δvji(k)=a1e(k)H′[neti(k)]Wi(k)xi(k)+a2Δvji(k-1)(3.76) e(k)=y(k)-y^(k)(3.77) H′[neti(k)]=neti(k)[1-neti(k)](3.78) 其中,i=1,2,…,nH; j=1,2,…,nI。 3. 基于BP网络的系统辨识步骤 (1) 初始化权重vji(0),Wi(0)为一小的随机值。 (2) 选择适当形式的输入信号u(k),如二进制伪随机序列,加入到系统式(3.67)。 (3) 采集输出信号y(k)(若为仿真时,y(k)由式(3.67)计算)。 (4) 根据式(3.68)、式(3.69)构成输入向量X(k),并计算误差e(k)。 (5) 根据式(3.75)~式(3.77)修改加权重Wi(k),vji(k)。 (6) 将k→k+1,返回第(2)步。如果是离线辨识,需按预先给定的允许误差ε判断辨识算法的终止条件为 |e(k)|=|y(k)-y^(k)|<ε(3.79) 3.4基于神经网络的智能控制 3.4.1神经控制的基本原理 控制系统的目的在于通过确定适当的控制量输入,使得系统获得期望的输出特性。图3.29(a)给出一般反馈控制系统的原理图,图3.29(b)是采用神经网络替代图3.29(a)中的控制器完成同样的控制任务。 图3.29反馈控制与神经控制的对比 下面分析神经网络是如何工作的。设被控制对象的输入u和系统输出y之间满足如下非线性函数关系 y=gu(3.80) 控制的目的是确定最佳的控制量输入u,使系统的实际输出y等于期望的输出yd。在该系统中,把神经网络的功能看作从输入到输出的某种映射,或称函数变换,并设它的函数关系为 u=fyd(3.81) 为了满足系统输出y等于期望的输出yd,将式(3.81)代入式(3.80),可得 y=gfyd(3.82) 显然,当f(·)=g-1(·)时,满足y=yd的要求。 由于要采用神经网络控制的被控对象一般是复杂的且多具有不确定性,因此非线性函数g(·)是难以建立的,可以利用神经网络具有逼近非线性函数的能力来模拟g(·)。尽管g(·)的形式未知,但根据系统的实际输出y与期望输出yd之间的误差,通过神经网络学习算法调整神经网络联结权重直至误差 e=yd-y→0(3.83) 这样的过程就是神经网络逼近g-1(·)的过程,实际上是对被控对象的一种求逆过程。由神经网络的学习算法实现逼近被控对象逆模型的过程,就是神经网络实现直接控制的基本思想。 3.4.2基于神经网络智能控制的类型 在控制系统中,应用神经网络的非线性映射能力可对难以精确描述的复杂非线性对象进行建模,或充当控制器,或优化计算,或进行推理,或故障诊断等,或同时兼有上述某些功能的适当组合等。 基于神经网络的智能控制本书指只由神经网络单独进行控制或由神经网络同其他智能控制方式相融合的控制的统称,属于这类控制的主要有以下形式。 1. 神经网络直接反馈控制 这是只使用神经网络直接实现智能控制的一种方式。在这种控制方式中,神经网络直接作为控制器,利用反馈等算法实现自学习控制。 2. 神经网络专家系统控制 专家系统善于表达知识和逻辑推理,神经网络长于非线性映射和直觉推理,将二者相结合发挥各自的优势,就会获得更好的控制效果。 图3.30是一种神经网络专家系统的结构方案,这是一种将神经网络和专家系统相结合用于智能机器人的控制系统结构。EC是对动态系统P进行控制的专家控制器。神经网络控制器NC将接受小脑模型神经网络CMAC的训练,每当运行条件变化使神经控制器性能下降到某一限度时,运行监控器EM将调整系统工作状态,使神经网络处于学习状态,此时EC将保证系统的正常运行。该系统运行共有3种状态: EC单独运行,EC和NC同时运行,NC单独运行。监控器EM负责管理它们之间运行的切换。 图3.30神经网络专家系统 对复杂系统可采用递阶控制结构,如图3.31(a)所示,下层为NC,上层为EC,利用NC的映射能力和运算能力进行实时控制,EC则用于知识推理、决策、规划、协调。图3.31(b)表示一种分级结构,EC1帮助NC进行训练等; NC用于决策、求解问题; EC2用来解释NC的输出结果并驱动执行机构对系统P进行控制。图3.31(c)是利用神经网络控制完成专家系统中最耗费时间的模式匹配工作,以加速专家系统的执行。由上面的结构不难看出,神经控制和专家系统的结合具有这样的特点: 在分层结构中,EC在上层,NC在下层; 在分级结构中,EC在前级,NC在后级。 图3.31神经网络专家系统的递阶分级结构 3. 神经网络模糊逻辑控制 模糊系统善于直接表示逻辑,适于直接表示知识,神经网络长于学习通过数据隐含表达知识。前者适于自上而下的表达,后者适于自下而上的学习过程,二者存在一定的互补、关联性。因此,它们的融合可以取长补短,可以更好地提高控制系统的智能性。神经网络和模糊逻辑相结合有以下几种方式。 1) 用神经网络驱动模糊推理的模糊控制 这种方法是利用神经网络直接设计多元的隶属函数,把神经网络作为隶属函数生成器组合在模糊控制系统中。 2) 用神经网络记忆模糊规则的控制 通过一组神经元不同程度的兴奋表达一个抽象的概念值,由此将抽象的经验规则转化成多层神经网络的输入输出样本,通过神经网络如BP网络记忆这些样本,控制器以联想记忆方式使用这些经验进行控制,这在一定意义上模拟了人的联想记忆思维方式。 3) 用神经网络优化模糊控制器的参数 在模糊控制系统中对控制性能影响的因素除上述的隶属函数、模糊规则外,还有控制参数,如误差、误差变化的量化因子及输出的比例因子,利用神经网络的优化计算功能可优化这些参数,改善模糊控制系统的性能。 4. 神经网络滑模控制 变结构控制可以视为模糊控制的特例,因此它属于智能控制的范畴。将神经网络和滑模控制相结合就构成神经网络滑模控制。这种方法将系统的控制或状态分类,根据系统和环境的变化进行切换和选择,利用神经网络具有的学习能力,在不确定的环境下通过自学习来改进滑模开关曲线,进而改善滑模控制的效果。 3.4.3基于传统控制理论的神经控制 将神经网络作为传统控制系统中的一个环节或多个环节,用来充当辨识器,或对象模型,或控制器,或估计器,或优化计算等。这种方式很多,常见的一些方式归纳如下。 1. 神经逆动态控制 设系统的状态观测值为x(t),它与控制信号u(t)的关系为x(t)=F(u(t),x(t-1)),F可能是未知的,假设F是可逆的,即u(t)可从x(t),x(t-1)求出,通过训练神经网络的动态响应为u(t)=H(x(t),x(t-1)),H即为F的逆动态。 2. 神经PID控制 将神经元或神经网络和常规PID控制相结合,根据被控对象的动态特性变化情况,利用神经元或神经网络的学习算法,在控制过程中对PID控制参数进行实时优化调整,以达到在线优化PID控制性能的目的。上述这样的复合控制形式统称为神经元PID控制或神经PID控制。 3. 模型参考神经自适应控制 在传统模型参考自适应控制系统中,利用神经网络充当对象模型,或充当控制器,或充当自适应机构,或优化控制参数,或兼而有之等,这样的系统统称为模型参考神经自适应控制。 4. 神经自校正控制 这种控制结构的一种形式如同前面介绍的双神经网络间接学习控制结构。对于单神经网络可以有如图3.32所示的控制结构形式,评价函数 图3.32神经自校正控制的一种结构 一般取为e=yd-y,或采用下述形式: e(t)=My[yd(t)-y(t)]+Muu(t)(3.84) 其中,My和Mu为适当维数的矩阵。该方法的有效性在水下机器人姿态控制中得到了证实。 此外,神经网络和传统控制的结合形式,还有神经内膜控制、神经预测控制、神经最优决策控制等,不再赘述。 3.5神经元PID控制 将神经网络和传统PID控制融合,主要是通过神经网络学习算法在线优化PID控制器的控制参数,与通过模糊推理在线优化PID控制参数是类似的。将单个神经元和PID控制融合构成所谓的神经元PID控制,由于控制算法相对简单,所以获得了较多的应用。 有关通过神经网络学习算法在线优化PID控制器的控制参数的内容放在本书第7章介绍。本节介绍一般的神经元PID控制和自适应神经元PID控制两种形式。 3.5.1神经元PID控制 基于单个神经元的PID控制系统如图3.33所示,简称为神经元PID控制。其中,神经元输入的3个状态变量xi(t)(i=1,2,3)分别为 x1(t)=e(t) x2(t)=∑ti=0e(i)T x3(t)=Δe(t)/T(3.85) 控制器输出为 u(t)=K∑3i=1wi(t)xi(t)/‖W‖(3.86) ‖W‖=∑3i=1|wi(t)|(3.87) ug(t)=Umax1-e-u(t)1+e-u(t)(3.88) 式中,Umax为最大控制量。 图3.33单个神经元PID控制系统 控制系统的性能指标为 J(t)=12[r(t)-y(t)]2=12e2(t)(3.89) 根据上述性能指标,控制器的加权重学习算法为 wi(t+1)=wi(t)+Δwi(t)(3.90) Δwi(t)=-diJwi(t-1)=-diJy(t)y(t)ug(t-1)ug(t-1)u(t-1)u(t-1)wi(t-1)(3.91) 由于‖W‖变化比较平缓,在求导过程中,可认为‖W‖近似为一常数,故有 Δwi(t)=diUmax1-U2g(t-1)/U2max×e(t-1)xi(t-1)y(t)ug(t-1)(3.92) 在对象y(t)/ug(t-1)未知时,有几种近似处理方法: 一是利用符号信息sgny(t)/ug(t-1)近似y(t)/ug(t-1); 另一个方法是利用差分近似导数 y(t)ug(t-1)≈y(t)-y(t-1)ug(t-1)-ug(t-2)(3.93) 假定sgny(t)/ug(t-1)=1,下面分析一下闭环系统的稳定性。取Lyapunov函数为V(t)=12e2(t),则 ΔV(t)=12e2(t+1)-12e2(t)(3.94) e(t+1)=e(t)+e(t)WΔWT=e(t)+Δe(t)(3.95) 将上式代入式(3.94),可得 ΔV(t)=12[2e(t)Δe(t)+Δ2e(t)](3.96) 设P=e(t)/w1,e(t)/w2,e(t)/w3T,D=diag{d1,d2,d3},则有 Δe(t)=-e(t)PTDP(3.97) 于是有 ΔV(t)=-12[e(t)P]T(2D-DPPTD)[e(t)P](3.98) 当满足 0