APP下载

BP网络结构和算法对非线性系统进行辨识

2019-02-21

山东化工 2019年2期
关键词:隐层速率神经网络

(化工部长沙设计研究院 沈阳分院,辽宁 沈阳 110026)

BP网络是目前最为普遍使用的一种神经网络,它是一种采用误差反向传播算法进行有监督训练的多层神经元网络[1]。

BP网络可以通过学习、训练、对非线性系统进行很好的辨识,广泛应用于函数逼近、故障诊断,分类等领域。

通过对非线性对象的仿真研究,证明BP网络具有较全面的系统辨识能力。虽然计算时间长,易陷入局部极小值一直是它不易克服的缺点。但只要选取合适的BP网络结构、训练BP算法,并选取辨识网络输入、输出、隐层节点的个数,BP网络还是具有相当高的精度,对非线性系统辨识也是一种切实可行的方法[2]。

1 BP网络设计

BP网络主要包含输出输入层和隐层,建立BP网络首先要选择好网络的层数和每层的节点数。输入输出层的节点数是根据要分析的变量数而定,当要分析非线性模拟信号量时,一般采用按时序采样的方式选取数点作为输入层节点数。输出层节点数要根据实际需要考虑输出数据的类型和数据大小来决定。

网络的层数一般时预先设定的,确定网络层数就是确定有几个隐层,理论上,一个隐层在不限制隐层节点数的情况下,网络可以实现任何在闭区间内的一个连续函数的映射。

隐层节点数的选择较为复杂,没有固定解析式来解决。要结合输入输出节点数以及设计者的经验,多次尝试来确定。可以遵循的原则是,当隐节点过多,学习时间过长,当隐节点过少,学习能力差。以下三公式可以参考。

(1)

(2)

m为输出神经元数,n为输入单元数,a为[1,10]之间的常数。

(3)

n为输入单元数。

2 BP算法

2.1 标准的BP算法

以三层神经网络为例,具体步骤如下:

(2)初始化权系数为小的随机数。

(4)根据梯度法,将误差E反向传播,修改权值及阈值。

对输出层权系数:

对隐层权系数:

(5)所有Q对训练样本作用一次后,判断总误差 是否小于EMAX,小于退出程序。大于或等于则检查训练次数是否到达最大训练次数,是则退出程序,否则返回步骤2。定义:

(Eq为Q对样本的误差)样本的获得:选择输入信号p(k),p(k)可以是阶跃、斜坡、正弦波或伪随机信号,加到系统上。采集实际系统输出t(k)。借助Matlab的SIMULINK实现。这样可以得到Q对样本值,以用于BP算法的系统辨识。

2.2 改进的BP算法

为了加快训练速度,避免陷入局部极小值,加强鲁棒性,避免过拟合和,采取改进BP算法,改进BP算法应从加快收敛和减少震荡两方面来考虑。加快收敛的主要方法就是优化学习速率的选取。学习速率决定每一次循环训练中所产生的权值变化量,大的学习速率可能导致的不稳定,可能出现振荡,但小的学习速率导致较长时间,可能收敛很慢。一般情况下倾向于选取较小的学习速率以保证系统的稳定性。学习速率的选取范围在0.01~0.8之间。对于一个特定的问题,要选择适当的学习速率并不是一件容易的事情,为了减少寻找学习速率的训练次数以及训练时间,比较合适的方法是采用变化的自适应调整学习速率。自适应调整学习速率法的好处是除可以加快收敛以外还可以在一定程度上克服算法陷于局部极小点的问题[4]。

3 仿真实验

3.1 样本的获得

3.2 建立BP网络模型

采用一个三层BP网络,其中各层神经元个数为:输入层有两个,隐层有三个,输出有一个。训练目标是0.0001。隐含层采用tansig函数,输出层采用purelin函数,训练函数为traingd。

3.3 仿真训练结果

图1 训练误差曲线(训练函数为traingd)

图2 网络的输出(训练函数为traingd)

由上图可知,当隐层节点数为3时,网络误差目标没有被满足,而且通过观察网络的输出曲线,如图2所示,网络的实际输出与期望输出存在很大误差。当隐层节点数为10时,网络目标虽然被满足,但是网络的实际输出与期望输出较隐层节点数为5时误差大。

若将训练函数改为trainlm,隐层节点数为5时,其它条件不变。

图3 训练误差曲线(训练函数为trainlm)

图4 网络的输出(训练函数为trainlm)

由上图可以分析出,采用隐层为5,训练函数为trainlm时收敛速度较快,其输出误差也比较小,误差曲线满足要求,

3.4 实验结论

通过MATLAB仿真实验可以看出,应用BP神经网络方法进行系统辨识是切实可行的。由仿真结果表明,用BP网络辨识非线性系统,只要算法选择恰当,层节点数选择合理,辨识具有相当高的精度。

4 结论

非线性系统辨识和BP神经网络的特点出发,讨论了利用BP网络进行非线性动态系统辨识。仿真实例说明,BP神经网络能对函数进行很好的系统辨识。应对不同的实际情况,应选择适当的隐层节点数量、合适的网络结构和训练函数,BP网络算法对非线性系统可以进行辨识。

猜你喜欢

隐层速率神经网络
基于RTD可编程逻辑门的n变量函数实现算法
一种自适应确定隐层节点数的增量半监督超限学习机算法
“化学反应的速率与限度”知识与能力提升
神经网络抑制无线通信干扰探究
基于RDPSO结构优化的三隐层BP神经网络水质预测模型及应用
基于神经网络的中小学生情感分析
代价敏感正则化有限记忆多隐层在线序列极限学习机及图像识别应用
速度和速率有什么不同
基于神经网络的拉矫机控制模型建立
基于支持向量机回归和RBF神经网络的PID整定