神经网络在系统辨识中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
神经网络在系统辨识中的应用
摘要应用于自动控制系统的神经网络算法很多,特点不一,对于非线性系统辨识的研究有一定影响。本文就BP网络算法进行了着重介绍,并点明了其收敛较慢等缺点,进而给出了改进算法,说明了建立在BP算法基础上的其他算法用于非线性系统辨识的可行性与有效性。
关键词神经网络BP算法;辨识;非线性系统
前言
神经网络是一门新兴的多学科研究领域,它是在对人脑的探索中形成的。神经网络在系统建模、辨识与控制中的应用,大致以1985年Rumelhart的突破性研究为界。在极短的时间内,神经网络就以其独特的非传统表达方式和固有的学习能力,引起了控制界的普遍重视,并取得了一系列重要结果。本文以神经网络在系统辨识中的应用作一综述,而后着重介绍BP网络算法,并给出了若干改进的BP算法。通过比较,说明改进算法具有诸多优点及用于非线性系统辨识[1]的可行性与有效性。
1 神经网絡用于系统辨识的原理及现状
神经网络在自动控制系统中的应用已有多年。目前,利用神经网络建立动态系统的输入/输出模型的理论及技术,在许多具体领域的应用得到成功,如化工过程、水轮机、机器入手臂、涡轮柴油发动机等。运用神经网络的建模适用于相当于非线性特性的复杂系统[2]。
目前系统辨识中用得最多的是多层前馈神经网络[1]。我们知道,自动控制系统中,一个单隐层或双隐层的具有任意数目神经元的神经网络,可以产生逼近任意函数的输入/输出映射。但网络的输入节点数目及种类(延迟输入和输出)、隐层节点的个数以及训练所用的算法对辨识精度和收敛时间均有影响。一般根据系统阶数取延迟输入信号,根据经验确定隐层节点数,然后对若干个神经网络进行比较,确定网络中神经元的合理数目。现在用得较多的多层前馈神经网络的学习算法是反向传播算法(Back Propagation),即BP算法。但BP算法收敛速度较慢,后面将会进一步讨论。
1.1 神经网络的结构
感知器是最简单的前馈网络,它主要用于模式分类。也可用在基于模式分类的学习控制和多模态控制中。现以多层前馈神经网络为代表,来说明神经网络的结构。多层前馈神经网络由输入、输出层以及一个或多个隐层组成。每层有若干个计算单元称之神经元。这些神经元在层状结构的网络中按图1所示方式相互连接。信息按树状路径从下至上逐层传送。一旦相邻层间神经元的连接权以及隐层中神经元的阈值被确定,整个网络的特性也就确定了。如图1所示,第1层为输
入层,第Q层为输出层,中间各层为隐层。设第q层(q=1,2…Q)的神经元个数为,输入到第q层的第i个神经元的连接权系数为。且神经元的变换函数采用S型函数,因此输出量是0到1之间的连续量,它可实现从输入到输出的任意的非线性映射。该网络的输入输出变换关系为[3]:
S型函数为:
(1)
(2)
(3)
这时每一层相当于一个单层感知器网络,如对于第q层,它形成一个维的超平面,它对于该层的输入模式可进行线性分类,但是由于多层的组合,最终可实现对输入模式的较复杂的分类。
1.2 用神经网络建立非线性系统模型[4]
由非线性系统建模理论可知,离散时间非线性系统可以用外生输入非线性自回归滑动平均模型(NARMAX)来表示.NARMAX模型能根据输入、输出及噪声的延迟信号的非线性函数来描述非线性系统,一个r阶输入m阶输出的多变量NARMAX模型为:
(4)
其中,,
分别是系统输出、输入及噪声向量;、和是这些信号的最大延迟;e(t)是零均值独立序列;f(·)是向量形式的非线性函数。这种非线性关系一般非常复杂,其结构和先验知识很难预知和了解。神经网络的出现,为这类复杂系统的建模带来了希望。一个解决的办法是用神经网络来逼近下式表达的非线性系统:
(5)
应注意到(5)式是(2)式的近似形式。研究的核心在于如何用单隐层神经网络建立(5)式所描述的非线性系统模型,达到该目的的原理框图如图2所示。
设表示神经网络中所有待估计的连接权值及阈值,是待识别参数数目。且有
(6)
显然,对于单隐层网络,L=2,故
图1 多层神经网络
由式(1)至式(3),不难求得单隐层神经网络第i个输出节点的模型为
(8)
其中是网络的输入矢量。对于SISO系统,意味着神经网络只有一个输出节点,则(8)式中的i可以去掉。通过某种算法训练神经网络,使得所有的连接权和阈值在这样的条件下得以确定,即神经网络的输出尽可能地接近希望输出值y。其偏差
(9)
称为预报误差或残差。从图2知,神经网络的输入向量包含被识别对象的延迟输入和输出。因此合理地确定输入节点数目以及选择正确的滞后阶数已成为用神经网络建立非线性模型的突出问题,隐层神经元的数目确定也属同样问题[5]。
2 辨识算法
2.1 问题的提出
神经网络能够用于非线性动态系统辨识,应该说,很大程度上归功于BP算法的产生和发展:BP网络的学习算法属于全局逼近的方法,它具有较好的泛化能力。BP网络能够实现输入输出的非线性映射关系,但它并不依赖于模型。其输入与输出之间的关联信息分布的存储于连接权中。由于连接权的个数很多,个别神经元的损坏只对输入输出关系有较小的影响,因此BP网络显示了良好的兼容性。而且由于BP网络具有很好的逼近非线性映射的能力和较好的泛化能力,故当前应用于系统辨识、系统控制等多个方面[6]。
定义能量函数J为
此处、分别是网络的期望输出与实际输出。BP算法的准则是通过沿J的负梯度方向修正未知参数的增量向量使能量函数J极小化,参数的修改量定义为=
此处表示学习速率,是J对的梯度,基本的递推算式是
实现上述思想的BP算法为
(10)
其中
式中。、、称学习速率因子,用以加快参数辨识的收敛过程;、称动量因子,用以抑制学习过快带来的不稳定现象。此外,称k层第i元的误差信号,可以从上至下反传求得,且有顶层:
(12)
隐层:
,(13)
式(10)-(13)描述的BP算法,如果学习速率因子满足一定条件,最终参数向量将收敛于局部极小点。大量实践已证明,该算法收敛速度很慢,尤其在学习速率常数较小时。另外,对人为取得的学习速率、动量常数等因子非常敏感,有时甚至不能进行合理的参数估计。
2.2 实例分析
取=5,=5,=1的单隐层神经网络,定义输入向量
输入u(t)为零均值均匀分布白噪声序列,样本数据500对,仿真实例:
y(t)=0.4
对非线性系统运用BP算法。求出由此而产生的误差指数变化曲线如图3。
误差指数=
从图3可知,BP算法的误差指数曲线变化粗糙且不平稳,其收敛性能较差。实际上,BP网络的缺点为:①收敛速度慢;②局部极值;③难以确定隐层和隐结点的个数[7]。
针对上述问题,人们对BP网络的学习算法进行了深入研究,结合神经网络的具体结构,提出了很多改进的算法。
2.3 改进算法
(1)引入动量项
算法为:
其中既可表示单个的连接权系数,也可表示连接权向量(其元素为连接权系数)。为k时刻的负梯度。是k-1时刻的负梯度,为学习率,>0。为动量项因子,