第14章神经网络控制及其应用第14章神经网络控制及其应用1.神经网络控制产生的背景自动控制面临着两个方面的技术问题(1)控制对象越来越复杂,存在着多种不确定(随机性)和难以确切描述的非线性。(2)对控制系统的要求越来越高,迫切要求提高控制系统的智能化水平,即系统具有逻辑思维和推理判断的能力。神经网络为处理和解决上述问题提供了一条新的途径(1)神经网络源于对脑神经的模拟,所以具有很强的适应于复杂环境和多目标控制要求的自学习能力。(2)具有以任意精度逼近任意非线性连续函数的特性。2.神经网络的应用航空:高性能飞行器自动驾驶、飞行路径模拟、飞行部件模拟、飞行部件故障检测…汽车:汽车自动导航仪…国防:武器操纵、目标跟踪、面部识别、雷达和图像信号处理、新型传感器、声纳…制造:生产流程控制、过程和机器诊断、机器性能分析、化工流程动态建模、项目投标…机器人:轨道控制、操作手控制、视觉系统…语音:语音识别、语音压缩…还有金融、保险、银行、医疗、交通、电讯、电子、石油天然气、有价证券、娱乐等行业。3.生物学的启示4.人工神经元输入输出1niijijiIWx()jiyfIj=1,2…mi=1,2…nyjQjXnX2f∑X1图2单神经元结构图wij轴突细胞体树突树突轴突突触细胞体树突图1生物神经元的简图(发射)(接收)(连接)为简便起见,也可把网络的阈值以连接数值的形式表示出来,即令,则式中—为其它神经元传至本神经元的输入信号,—神经元j的阈值,此阈值决定了该神经元的兴奋与否;—表示从神经元i到神经元j的连接权值;—称为激励函数(也有称为响应函数或传输函数)。权值表示相邻的神经元相互连接的程度阈值即决定神经元的兴奋与否,决定兴奋与抑制激励函数可为线性函数也可为非线性函数。它是用来实现输入对输出函数关系的静态映射,它决定了神经元的单元特性。0niijiiIWx1,2,,in()fijWjix常用的神经元非线性函数)(xfx10f(x)图3阶跃函数f(x)x1-1图4sgn函数1β=1f(x)0xβ=0.2β=5图5S状函数10()00xfxx(1)阶跃函数10sgn()10xxx(2)Sgn函数1()(0)1exp()fxx(3)S状函数5.神经网络模型的组成5.1.神经网络连接的结构形式输出层输入层隐含层神经元yny2y1XnX2X1图6前向网络神经元网络中神经元是分层排列,每个神经元只与前一层的神经元相连接,分为输入层,隐含层(一层或多层)和输出层。(1)前向网络(2)反馈前向网络网络本身是前向型,但从输出到输入有反馈。yny2y1XnX2X1图7反馈前向网络图8互连网络(3)互连网络任意两个神经元之间都可能有连接,因此输入信号要在神经元之间反复往返传递。5.2.BP网络的结构BP网络是一单向传播的多层前向网络,其结构图如图6所示BP网络可看成是一从输入到输出的高度非线性映射网络。(1)输入层神经元数(2)隐含层神经元数(3)隐含层数的确定(4)输出层神经元数的确定BP网络各层的神经元数(即节点数)及隐含层层数的确定如下:6.神经网络的学习当神经网络的结构确定之后,关键问题是设计一个学习速度快,收敛性好的学习算法。要求网络本身必须具有学习功能,即能够从示教模式的学习中逐渐调整权值和阈值,使网络整体具有近似函数或处理信息的功能。(1)有教师学习(2)无教师学习6.1.网络学习方式广泛应用的有教师学习的算法——BP(BackPropagation)算法BP算法即是误差反向传播算法,该方法已成为神经网络学习中最常用的方法之一。BP算法一般是应用梯度下降原理,样本输入信号在神经网络中正向传播,应用了多层前向神经网络具有的以任意精度逼近非线性函数的能力。而网络输出与样本给定输出值之差(误差)在网络中是反向传播,用于网络的权值的训练。输出层LC隐含层LB输入层LAWpqWiqWijW1qW1jVnpVniVn1VhpVhiVh1V1pV1iW11V11a1ahanb1bibpc1cjcq1kAkhAknA1kCkjCkqC图9基本BP网络的拓扑结构1PWPjW1iW1UhUnU5.2.网络的计算对BP控制网络进行训练时,首先要提供训练样本,样本可以形式化为样本对或称模式对()其中Ak为第k个样本的输入模式()Ck为希望输出模式()它们分别对应于LA层的n个神经元和Lc层的q个神经元。,kkAC12,,,kkknAAA12,,,kkkqCCC当网络的实际输出与希望输出一致时,学习过程结束。否则学习系统将根据实际输出和希望输出之间的误差,通过调整连接权值使网络的实际输出趋向于希望输出。BP网络样本输入学习算法程序框图如图10所示。并以图11三层(LA,LB,LC)BP神经网络为例进行学习过程的演示。结束输入学习样本求隐含层、输出层神经元的输出计算实际输出值与目标值的误差误差满足要求?反向计算调整权值和阈值YN初始化三层BP神经网络拓扑结构W11V11b1W12W32W31W22W21V23V22V21V13V12U2=1U1=1a1a2b2b3c1c210kA21kA11kC20kCiijj00图11三层BP神经网络拓扑结构ALBLCLBP三层神经网络学习算法各种参数及计算公式见表1。层名1112345678910符号及公式参数名神经元数初始权值矩阵初始阈值矩阵第k个样本对值输入值输出值误差学习率阈值调整权值调整输入层隐含层输出层ALBLCL1,2,,hn1,2,,ip1,2,,jq01hU0V0W00i0jkhAkjC0netkhhhaUA1netnihihhbVa1netpjijiicWb(net)hhafa(net)iiibfb(net)jjjcfc1e(1)qiiijijjbbdW(1)()kjjjjjdcccc01iiehiihVea01ijdijjiWdb学习训练步骤如下:第1步:网络初始化输入层LA的权值U=1,阈值=0输入层LA到隐含层LB的权值矩阵为11121302122230.10.40.60.20.30.5VVVVVVV隐含层LB到输出层LC权值矩阵为11120212231320.10.40.60.20.50.3隐含层LB各神经元阈值为00.10.20.3Ti输出层LC各神经元阈值为00.20.4Tj以一个样本对即k=1为例,样本输入,样本输出。1112(,)(0,1)AA1112(,)(1,0)CC11VALBLCL1a2a1b2b3b1c2c12V13V21V22V23V11W12W21W22W31W32W10kA21kA11U21Ujj11kC20kC00三层BP神经网络拓扑结构第2步:样本正向输入,进行前向计算输入样本为,其输入层的输出为a1和a2。对于输入层,给定每个神经元的权值为1,阈值为0,其激励函数为S型函数,则11120,1AA0hU0(0)khhhafUA第1个神经元的输出值为1111220111111001222211111()()0.511111()()0.7310611khhxUAkhhUAafnetafUAeeeafnetafUAee则120.50.73106haaa层神经元的加权输入,根据为211111212122212122212331312321net0.10.50.20.731060.196212net0.40.50.30.731060.419318net0.60.50.50.731060.66553hhhhhhhhhbVaVaVabVaVaVabVaVaVaBL111netnhhhbVa层的实际输出值,根据式和式计算,则111222333(net)(0.1962120.1)(net)(0.4193180.2)(net)(0.665530.3)bfbfbfbfbfbf根据式求激励函数为S型情况下的b值为10.09621220.21931830.3655310.524110.5546110.59041bebebe则0.5240.55460.5904ibBL(net)iiibfb00.10.20.3Ti10.09621211be根据式计算第k=1样本对LC层神经元的加权输入为1netpjijijcWb1111212313net()0.10.5240.60.55460.50.59040.68036cWbWbWb2121222323net()0.40.5240.20.55460.30.59040.49764cWbWbWb根据式求LC层神经元的实际输出值(net)jjjcfcr10.4803620.097641(0.680360.2)0.617811(0.497640.4)0.52441cfecfe则0.61780.5244jc第3步:进行误差计算根据式和样本期量值进行输出层LC误差计算(1)()kjjjjjdccCc11112222(1)(1)0.6178(10.6178)(10.6178)0.09025(1)(0)0.5244(10.5244)(10.5244)0.1308dcccdccc则0.09030.1458jd通过给定的精度系数可判断输出层LC的误差值d是否满足要求,如果不满足,则需进行反向传播计算,通过修正权值和阈值使其逼近给定精度系数。第4步:反向传播计算(1)隐含层LB一般化误差的计算根据式计算隐含层LB一般化误差为1(1)qiiijijjebbdW21111112121(1)()0.524(10.524)(0.090250.10.13080.4)0.0108jebbdWdW222121222(1)()0.5546(10.5546)(0.090250.60.13080.2)0.0069ebbdWdW333131232(1)()0.5904(10.5904)(0.090250.50.13080.3)0.0014ebbdWdW则0.01080.00690.0014ie(2)隐含层Lb和输出层Lc权值的调整根据式调整其LB至LC权值,则按学习步长(也称学习率)的范围:给定。ijjiWdb010.91111122132230.90.090250.5240.04260.9(0.1308)0.5240.06170.9(0.1308)0.59040.0695WdbWdbWdb则1112212231320.04260.06170.0450.06530.04790.0695ij(3)根据式调整LA至LB权值,则hiihVea按步长范围:,给定010.91111122123220.9(0.0108)0.50.00490.90.00690.50.00310.90.00140.7310610.0009VeaVeaVea则1112132122230.00490.00310.00060.00710.00450.0009hiVVVVVVV(4)网络输出层Lc和隐含层Lb阈值的调整值计算根据式调整Lc层阈值jjd11220.90.090250.0812250.9(0.1308)0.11772dd则0.0812250.11772j(5)根据式调整