人工神经网络原理及实际应用摘要:本文就主要讲述一下神经网络的基本原理,特别是BP神经网络原理,以及它在实际工程中的应用。
关键词:神经网络、BP算法、鲁棒自适应控制、Smith-PID本世纪初,科学家们就一直探究大脑构筑函数和思维运行机理。
特别是近二十年来。
对大脑有关的感觉器官的仿生做了不少工作,人脑含有数亿个神经元,并以特殊的复杂形式组成在一起,它能够在“计算"某些问题(如难以用数学描述或非确定性问题等)时,比目前最快的计算机还要快许多倍。
大脑的信号传导速度要比电子元件的信号传导要慢百万倍,然而,大脑的信息处理速度比电子元件的处理速度快许多倍,因此科学家推测大脑的信息处理方式和思维方式是非常复杂的,是一个复杂并行信息处理系统。
1943年Macullocu和Pitts融合了生物物理学和数学提出了第一个神经元模型。
从这以后,人工神经网络经历了发展,停滞,再发展的过程,时至今日发展正走向成熟,在广泛领域得到了令人鼓舞的应用成果。
本文就主要讲述一下神经网络的原理,特别是BP神经网络原理,以及它在实际中的应用。
1.神经网络的基本原理因为人工神经网络是模拟人和动物的神经网络的某种结构和功能的模拟,所以要了解神经网络的工作原理,所以我们首先要了解生物神经元。
其结构如下图所示:从上图可看出生物神经元它包括,细胞体:由细胞核、细胞质与细胞膜组成;轴突:是从细胞体向外伸出的细长部分,也就是神经纤维。
轴突是神经细胞的输出端,通过它向外传出神经冲动;树突:是细胞体向外伸出的许多较短的树枝状分支。
它们是细胞的输入端,接受来自其它神经元的冲动;突触:神经元之间相互连接的地方,既是神经末梢与树突相接触的交界面。
对于从同一树突先后传入的神经冲动,以及同一时间从不同树突输入的神经冲动,神经细胞均可加以综合处理,处理的结果可使细胞膜电位升高;当膜电位升高到一阀值(约40mV),细胞进入兴奋状态,产生神经冲动,并由轴突输出神经冲动;当输入的冲动减小,综合处理的结果使膜电位下降,当下降到阀值时。
细胞进入抑制状态,此时无神经冲动输出。
“兴奋”和“抑制”,神经细胞必呈其一。
突触界面具有脉冲/电位信号转换功能,即类似于D/A转换功能。
沿轴突和树突传递的是等幅、恒宽、编码的离散电脉冲信号。
细胞中膜电位是连续的模拟量。
神经冲动信号的传导速度在1~150m/s之间,随纤维的粗细,髓鞘的有无而不同。
神经细胞的重要特点是具有学习功能并有遗忘和疲劳效应。
总之,随着对生物神经元的深入研究,揭示出神经元不是简单的双稳逻辑元件而是微型生物信息处理机制和控制机。
而神经网络的基本原理也就是对生物神经元进行尽可能的模拟,当然,以目前的理论水平,制造水平,和应用水平,还与人脑神经网络的有着很大的差别,它只是对人脑神经网络有选择的,单一的,简化的构造和性能模拟,从而形成了不同功能的,多种类型的,不同层次的神经网络模型。
2.BP神经网络目前,再这一基本原理上已发展了几十种神经网络,例如Hopficld模型,Feldmann等的连接型网络模型,Hinton等的玻尔茨曼机模型,以及Rumelhart 等的多层感知机模型和Kohonen的自组织网络模型等等。
在这众多神经网络模型中,应用最广泛的是多层感知机神经网络。
这里我们重点的讲述一下BP神经网络。
多层感知机神经网络的研究始于50年代,但一直进展不大。
直到1985年,Rumelhart等人提出了误差反向传递学习算法(即BP算),实现了Minsky的多层网络设想,其网络模型如下图所示。
它可以分为输入层,影层(也叫中间层),和输出层,其中中间层可以是一层,也可以多层,看实际情况而定。
BP 网络的原理是把一个输入矢量经过影层变换成输出矢量,实现从输入空间到输出空间的映射。
由权重实现正向映射,利用当前权重作用下网络的输出与希望实现的映射要求的期望输出进行比较来学习的。
为减少总误差,网络利用实际误差调整权重。
BP 网络必须要求与输入相对应的希望输出构成训练模式队,因而需要指导学习,BP 网络在结构上具有对称性,网络中的每个输出处理元件基本具有相同的传递函数。
大致的工作原理就如上段所述,但要深入了解我们就先要了解一下BP 网络学习算法——反传学习算法(即BP 算法)。
BP 算法不仅有输入层节点、输出层节点,还可有1个或多个隐含层节点。
对于输入信号,要先向前传播到隐含层节点,经作用函数后,再把隐节点的输出信号传播到输出节点,最后给出输出结果。
节点的作用的激励函数通常选取S 型函数,如Q x e x f /11)(-+=式中Q 为调整激励函数形式的Sigmoid 参数。
该算法的学习过程由正向传播和反向传播组成。
在正向传播过程中,输入信息从输入层经隐含层逐层处理,并传向输出层。
每一层神经元的状态只影响下一层神经元的状态。
如果输出层得不到期望的输出,则转入反向传播,将误差信号沿原来的连接通道返回,通过修改各层神经元的权值,使得误差信号最小。
社含有n 个节点的任意网络,各节点之特性为Sigmoid 型。
为简便起见,指定网络只有一个输出y ,任一节点i 的输出为O i ,并设有N 个样本(x k ,y k )(k =1,2,3,…,N ),对某一输入x k ,网络输出为y k 节点i 的输出为O ik ,节点j 的输入为net jk =∑iikijO W并将误差函数定义为∑=-=N k k k y y E 12)(21)其中k y )为网络实际输出,定义E k =(y k -ŷk )2, k jk jk E net δ∂=∂,且O jk =f (net jk ),于是 ikjkk ij jk jk k ij k O E W E W E net net net ∂∂=∂∂∂∂=∂∂=δjk O ik当j 为输出节点时,O jk =ŷk )net ()(net jk k k jkk k k jk f y y y y E '--=∂∂∂∂=)))δ (1)若j 不是输出节点,则有∑∑∑∑∑∑=∂∂=∂∂∂∂=∂∂∂∂=∂∂'∂∂=∂∂∂∂=∂∂=m i m mj mk mj mk km iik mi jk mk k m jkmkmk k jk k jk jkkjk jk jk k jk k jk W W E O W O E O E O E f O E O O E E δδnet net net net )net (net net因此⎪⎩⎪⎨⎧=∂∂'=∑ik mk ijkm mjmk jk jk O W E W f δδδ)net ( (2)如果有M 层,而第M 层仅含输出节点,第一层为输入节点,则BP 算法为: 第一步,选取初始权值W 。
第二步,重复下述过程直至收敛:a. a. 对于k =1到N a ). 计算O ik , net jk 和ŷk 的值(正向过程); b ). 对各层从M 到2反向计算(反向过程);b. 对同一节点j ∈M ,由式(1)和(2)计算δjk ;第三步,修正权值,1111ij E W W W μ∂=-∂, μ>0, 其中Nk k ij ijE EW W ∂∂=∂∂∑。
从上述BP 算法可以看出,BP 模型把一组样本的I/O 问题变为一个非线性优化问题,它使用的是优化中最普通的梯度下降法。
如果把神经网络的看成输入到输出的映射,则这个映射是一个高度非线性映射。
设计一个神经网络专家系统重点在于模型的构成和学习算法的选择。
一般来说,结构是根据所研究领域及要解决的问题确定的。
通过对所研究问题的大量历史资料数据的分析及目前的神经网络理论发展水平,建立合适的模型,并针对所选的模型采用相应的学习算法,在网络学习过程中,不断地调整网络参数,直到输出结果满足要求。
3.实际工程中的应用以上就是BP 神经网络的的基本工作原理,下面我们就来看一下它在实际工程中的应用,在水电厂水质调节系统自适应控制中的应用。
随着我国火电厂高参数大容量机主的投产,对水汽品质和水质工况控制的要求越来越严格。
控制策略是决定水质调节效果的关键。
整个火电厂水质调节系统采用Smith -PID 自适应控制方案,具体控制模型我们就不予考虑,这里就具体BP 神经网络在这一方案中的应用。
由于系统采用PID 算法中由三种控制作用,即互相联系又互相制约,且并不是简单的线性组合,必须用非线性方法在线自适应调整PID 参数,才能保证时变对象的控制效果。
所以在此系统采用BP 神经网络在线整定PID 参数。
所以整个系统结构如下图所示:基于BP 神经网络的Smith-PID 控制系统PID 参数BP 网络整定方法选择如下图所示4—5 —3 结构的BP 网络,在线自学习整定系统Smith 控制系统中控制器Gc(s)的PID 参数,以给定值r(t) 、系统响应值y (t) 、偏差e ( t) 和常数1作为BP 网络的输入,网络的输出为需要整定的PID 参数kp 、ki 和kd 。
PID 参数整定BP 网络结构对于BP 网络输入层,第j 个神经元的输入为(1)j j O x (3)对于BP 网络的隐层,第i 个神经元的状态为(2)(2)(1)0()()()Miij j j Net k w k O k ==∑ (4) 对于第i 个神经元的输出为(2)2()(())i i O k f Net k = (5)式(1) ~式(3) 中, j = 1,2,…M; i = 1,2,… N 。
M 、N 分别为输入层和隐层神经元数; 上角标(1), (2) ,(3) 分别代表输入层、隐层和输出层。
(2)ij w 为隐层权值, ()f g 为隐层神经元的激发函数, 文中取()tanh()x xx x e e f x x e e---==+,可以实现从输入到输出的任意非线性映射,且输出为连续量。
对于BP 网络输出层第p 个神经元的状态为3(3)(2)0()()()Nppi i i Net k w k O k ==∑ (6) 第p 个神经元的输出为(3)(3)(())p p O g Net k = (7)其中()g g 为输出层神经元激发函数, p = 1,2 ,…, L 。
L 为输出层神经元数, 文中L= 3 , (3)1O 、(3)2O 、(3)3O 分别对应PID 参数的p k 、i k 、d k ,即(3)1()p O k k =、(3)2()i O k k =、(3)3()d O k k = (8) 由于PID 参数p k 、i k 、d k 取非负数,所以取max ()xx x e g x u e e-=+g,其中max u 为S 函数的饱和值,根据实际情况选定。
性能指标取二次型函数21()[()()]2E k r k y k =-,按()E k 对权值的负梯度方向搜索调整,并附加使学习速度足够快且不易产生震荡的动量项,即得到按梯度法修改网络的权值(3)(3)(3)()()(1)()ij pi pi E k w k w k w k ηα∂∆=-+∆-∂ (9) 上式中η为按梯度搜索的步长,亦即学习速率。