摘要:基于线性神经网络原理,提出线性神经网络的模型,并利用Matlab实现Widrow-Hoff神经网络算法。分析Matlab人工神经网络工具箱中有关线性神经网络的工具函数,最后给出线性神经网络在系统辨识中的实际应用。通过对线性神经网络的训练,进一步验证Widrow-Hoff神经网络算法的有效性,以及用其进行系统辨识的高精度拟合性。
关键词:Widrow-Hoff学习规则;线性神经网络;Matlab;系统辨识
1 引言
利用神经网络解决实际问题时,必定涉及大量数值计算。为了解决数值计算与计算机仿真间的矛盾。美国MathWorks公司推出的集数学计算、图形计算、语言设计、计算机仿真于一体的Matlab具有非线性适应性信息处理功能,克服传统人工智能方法对于直觉,如模式、语言识别、非结构化信息处理方面的缺陷,使之在神经专家系统、模式识别、智能控制、组合优化、预测等领域获得成功,具有极高的编程效率。神经网络工具箱是以神经网络理论为基础,用Matlab语言构造的典型神经网络工具函数。Matlab中大量有关线性神经网络的工具函数可为线性神经网络研究和应用提供强有力的工具。
2 线性神经网络原理
2.1 线性神经网络的模型
图1是具有R个输入的单层(有S个神经元)线性神经网络结构,其权值矩阵为w,阈值向量为b,这种网络也称为Madaline网络。
2.2 线性神经网络的学习规则
线性神经网络是基于线性神经网络算法。线性神经网络采用Widrow-Hoff学习规则,利用learnwh()函数修正网络的权值和阈值。使用Widrow-Hoff学习规则训练网络某一层的权值和阈值,使其线性逼近一个函数式。
首先定义一个线性网络的误差函数:
通过式(1)可知,线性网络具有抛物面型的误差曲面,因此只有一个误差最小值。由于该值取决于网络的权值和目标矢量,于是可通过调整权值使误差达到最小。Widrow-Hoff学习规则是通过沿着相对于误差平方和的最速下降方向,连续调整网络的权值和阈值,根据梯度下降法,权值矢量的修正正比于当前位置上的e(w,b)的梯度,对于第i个输出节点:
式中,η是学习率。
当η较大时,学习过程加速,网络收敛较快,但η过大时,学习过程变得不稳定,且误差增大;δ(i)=t(i)-a(i)。
以上各式为Widrow-Hoff学习规则最小均方误差算法(LMS)。Widrow-Hoff学习规则的权值变化量正比于网络的输出误差及网络的输入矢量。该算法无需求导,因此较简单,并具有收敛速度快和精度高的优点。由于学习率与学习过程比较密切,因此学习率的取值非常关键。
采用Widrow-Hoff规则训练的线性网络,该网络能够收敛的必要条件是被训练的输入矢量必须是线性独立的,且应适当选择学习率。
3 线性神经网络设计
Matlab神经网络工具箱中含有易于构建的神经网络函数。以下详细说明线性神经网络设计。
3.1 线性神经网络的Matlab设计
3.1.1 线性神经网络初始化
初始化是对连接权值和阈值进行初始化。initwb()初始化函数是对网络的某一层的权值和阈值进行初始化,其格式为:net=initwb(net,i)。其中,i表示网络的第i层。函数返回为第i层的权值和阈值都更新的网络。
3.1.2 训练网络
线性神经网络初始化后,就可对其训练。设置参数,诸如学习步长、误差目标等,同时在网络训练过程中,图形显示网络误差随学习次数的变化而变化。
其格式为:
式中,Pd为延迟输入;T为每一层的目标向量;Ai为初始输入条件;Q为输入向量个数;TS为时间步长;VV为空矩阵或确定的向量结构。
3.1.3 网络仿真
仿真甬数sim()用来网络仿真。其格式为:[Y,Pf,Af]=sim(net,{Q TS},Pi,Ai)。其中,Y为训练好的线性神经网络的实际输出;Pf为最终输出延迟;Af为最终的层延迟。
3.2 训练步骤
(1)根据给定的输入矢量计算网络的输出矢量a=wxp+b,并计算与期望输出之间的误差e=t-a;
(2)将网络输出误差的平方和与期望误差相比较,如果其值小于期望误差,或训练以达到事先设定的最大训练次数,则终止训练;否则,继续训练;
(3)采用Widfrow-Hoff学习规则计算新的权值和阈值,并返回至(1)。
4 线性神经网络在系统辨识中的应用
4.1 工作原理
线性神经网络用于线性系统辨识必须遵循系统辨识的3个基本构成原则:(1)选择在满足给定的误差准则下逼近系统的最简单模型;(2)输入信号的频谱必须足以覆盖系统的频谱;(3)误差准则由误差的泛函表示。
对于一个具有m个输入和n个输出的r阶离散线性系统,可由n个差分方程来描述,其中第l个差分方程的一般形式表示为:
式中,aij和bij是方程右边各项系数,如果某项系数为零,则该项与y1(k)无关,去掉该项。
从式(5)可以看出,线性系统k时刻的输出可以由前面时刻有关输入输出线性表示,这种关系类似于单层线性神经网络输入输出之间的关系。根据上述原则(1),建立线性神经网络以辨识线性系统,神经网络的输入由系统输入输出信号的时延序列组成,网络的输入个数与系统阶数有关,神经网络的输出代表系统输出的估计值,网络的输出个数等于系统输出个数。网络建立后,根据基本构成原则(2),运用Widrow-Hoff学习规则训练神经网络,反复调节网络的权值和阈值,使网络输出y(k)和系统输出Y(k)之间的输出误差不断减小,直至达到规定精度要求。
4.2 应用实例
设系统传递甬数为用线性神经网络辨识其脉冲响应。设置如果迭代次数大于10 000或误差小于0.001时,训练结束。
采用其工作原理及Widrow-Hoff规则训练给定系统。训练过程中,当迭代的次数大于10 000或误差小于目标误差时,训练结束。图2为训练后的训练误差及步数曲线,由图2看出,经过7 766步训练后误差达到0.000 999 252小于误差目标e=0.001,训练结束。
图3为训练后的结果与期望结果的比较,图中,“·”表示训练值,连续曲线表示理论值。由图3可见,训练值和理论值基本拟合。
需要注意的是,在训练过程中发现,由于权值的初始值是随机的,经多次训练,每次的训练结果都不一样,有时训练到10 000步时仍然收敛不到0.001。由此可见,初始权值的选取对训练是有一定影响的。选取初始值时应要根据具体要求而定,不能随意而定。
5 结语
论述的Widrow-Hoff学习规则算法可实现,仿真结果表明Widrow-Hoff学习规则无需求导,算法比较简单,收敛速度快。采用线性神经网络辨识系统,无需建立实际系统的辨识模式,因为线性神经网络本身已作为一种辨识模型,可达到很高的辨识速度且拟合精度较高。该方法还可推广至其他本质非线性系统。