matlab中input输入多个数_多传感器信息融合算法设计及仿真——基于 MATLAB 的三层 BP 神经网络的设计与仿真...

基于 MATLAB 的三层 BP 神经网络的设计与仿真

1 三层 BP 神经网络结构

BP(Back Propagation)神经网络,是一种按误差逆传播算法训练的具有非线性连续转移函数的多层前馈性网络,学习由两个过程组成:信息的正向传播、误差的反向传播。神经网络学习的准则是:若决策错误,则按照一定的规则进行学习,降低网络再次决策时犯同样错误的可能性。应用最为广泛的为三层 BP 神经网络,分为输入层、隐藏层、输出层,如图 5.19所示。

石显:多传感器信息融合算法设计及仿真——小结​zhuanlan.zhihu.com

0ebc153bdb98b7a3f86de74b975476c8.png

根据实际需求可以先对输入层和输出层的节点数进行确定,关于隐藏层节点数的选择一般原则是:在能正确反映输入输出关系的基础上,应选用较少的隐层节点数,以使网络结构尽量简单,三层节点个数存在如下关系式:

b241db899b08adc686fb18113560d643.png

BP 神经网络学习过程如下:

(1)输入信号正向传播:信号由前层向后层正向传播,在此过程中,网络各层连接权值不变。

(2)输出误差反向传播;在各层的激活函数的作用下,网络的输出误差由后层向前层反向传递。

(3)循环记忆训练:循环交替的模式正向传递与误差反向传递。

(4)学习结果判别:判断输出误差是否达到预定目标。

2 BP 网络中函数的确定

BP 神经网络在学习的过程中有两类关键函数:学习函数、激活函数。

(1) 学习函数

由于 BP 神经网络训练算法是基于梯度下降法,在学习的过程中具有收敛速度较慢、易陷入局部极小值等缺点,所以本文采用如下引入动态因子的学习函数:

8611ea9749771d55bed9f334b726a726.png

其中:δjp、δkp为样本 P 输入时输出层节点 k 和隐藏层节点 j 的误差项。在某些情况下,引入动态因子会改善局部最小值问题。

(2) 激活函数

使用激活函数引入非线性因素来增强模型的表达能力,常用的激活函数有 Tanh 和Sigmoid 两种函数。非线性的 Sigmoid 函数对中央区的信号增益较大,对两侧区的信号增益小,在信号的特征空间映射上,有很好的效果,通过对加权的输入进行非线性组合产生非线性决策边界。使用 S 型激活函数时 BP 神经网络的输入输出关系如下:

edb70a4ea721df714658fd6731634e32.png

Sigmoid 函数图 5.20 所示。

c66fd82cbf1c2a68b00db75f74fa1032.png

sigmoid 函数变换目的是把(-inf,+inf)取值范围的信号(用 x 表示)映射到(0,1)范围内,大的负数映射成 0,大的正数映射成 1,并且单调递增,连续可导,导数形式简单,是一个比较合适的函数,故本文选用 sigmoid 函数作为激活函数。

3 样本数据准备及网络参数确定

本课题项目由于传感器子系统庞大,数据分类复杂,故选取两组加速度传感器和两组倾角传感器作为信息融合对象。经过测试,发现在桥梁控制室内测得的数据不是很理想,这里在实验室环境中使用单跨简支桥梁模型来测量数据,通过对桥梁模型的按压来模拟桥面的载荷,拟用正常、轻微变形、严重变形三种类型数据来模拟描述桥梁的健康状态。设定倾角传感器和加速度传感器的采样频率均为 50,分别采集 900 组(每种健康状态分别采集 900 组样本)倾角值及加速度值样本,训练样本 600 组,测试样本 300 组,从样本数据中提取特征值,样本数据特征值[49]设定为均值与方差,将特征值关联组成特征序列,并进行归一化处理[50]。倾角 1、加速度 1 和倾角 2、加速度 2 部分样本数据如图 5.21,5.22 所示。

bf296040357f84cd92c1f0b9de96b14e.png

fc84f383ddbe6c7597033074b50a1859.png

部分均值方差如表 5.2 所示。

3b9d86433b9739aea704efe3c5788794.png

72454625e60ab2602f6963802034bbaf.png

由于本文中采用 4 个传感器进行模拟,每个传感器的每一组样本数据具有两个特征值,共组成一个 8 维的特征序列,故输入层节点数设定为 8,特征序列具有如图 5.23 所示的结构:

8145e1719fe5ed902f21885f0b2c9035.png

输出层的输出表示桥梁的三种健康状态,映射为(1,0,0),(0,1,0),(0,0,1),所以这里将输出层节点设定为 3,输出范围为 0~1,其中隐藏层的节点数并不固定,而是需要经过实际训练的检验来不断调整,这里将其设定初值为 5。

4 BP 网络带参训练

在特征关联序列准备完成后,对数据进行归一化处理,由于神经网络是以样本在事件中的统计概率来进行训练和预测的,并且 sigmoid 函数的输出范围在 0-1 之间,这里把统计分布概率统一归纳在 0-1 范围之内,即统一数据的数量级。

BP 神经网络的训练在 MATLAB 中主要分为四步:

(1) 数据准备

input=train_x;

output=train_y;

train_x 为待训练的样本数据,train_y 为训练的输出,输出为(1,0,0),(0,1,0),(0,0,1),分别对应:正常、轻微变形、严重变形三种桥梁状态。

(2) 创建网络

net =newff(minmax(input),[5 3],{'tansig''logsig'},'traindm');创建 BP 神经网络,5 个隐层神节点,3 个输出层神经节点。其中,minmax(input)定义了输入向量的最大值与最小值,由于本文中将输出范围设定为 0~1,故输出层采用的激活函数为 log sigmod 函数, log sigmod=1/(1+exp(-n))函数的取值范围为 0~1,采用附加动量梯度下降训练函数对网络进行训练。

(3) 对网络参数初始化

主要的初试话参数包括:间隔显示步数、最大迭代次数、训练目标误差、学习步长。

net.trainparam.show =50;//

net.trainparam.epochs =5000;//最大训练迭代次数 5000 次

net.trainparam.goal =0.01;//网络输出目标误差 0.01

net.trainParam.lr =0.5;//学习步长 0.5

(4) 对网络进行训练及仿真

net =train( net,input,output');

A=sim(net,input) //对 BP 网络进行仿真

E=output – A

MSE=mse(E) //计算仿真误差

其中 input,output 分别代表网络的输入向量和输出向量。将处理过的样本数据输入网络,

对网络进行训练。经过多次训练及调整隐藏层节点数(最终调整为 10)。

经过上述步骤便可得出本次训练的最终结果,如图 5.24 所示。

9205d59b509796104e5339b7a919cdb9.png

5 模式识别测试结果分析

从上文中的网络训练结果图 5.24 中可以看出当迭代次数达到 5000 次时,网络输出达到设定的误差范围(0.01)之内。 当 BP 网络收敛后,保存下权值,网络训练完成。从 900 组数据每组中抽取 300 组数据,预处理后对网络进行测试,若 BP 网络在一定的限差范围内输出结果,则说明此 BP 网络符合决策要求,掌握了对样本数据的决策判断能力,可以进行下一目标决策,否则要重新训练网络。测试代码为:

Y=sim(net,testInput);

其中 testInput 为前文所述用于测试的样本数据。通过测试,三组数据依次接近(1,0,0),(1,0,1),(0,0,1), 部分输出数据如表 5.3,5.4,5.5 所示。

665e780a81e41362f2b3bcc572f54208.png

网络的输出有三种标签,使用 3,2,1 代表(1,0,0),(0,1,0),(0,0,1),网络预测分类与实际输出类别对比图如图 5.25 所示。

be84b714ff1e9b61f37d9057969fcd91.png

网络通过不断的误差前向传播,并调整各层节点权值最终将误差控制在很小的范围之内,图 5.25 显示当输入测试样本数据,红色的网络实际输出基本覆盖绿色的网络预测输出,证明网络可以对三类测试数据做出准确的分类判断。分类正确率如图 5.26 所示。

8dbb3f25690cfd471133f80e07c8b882.png

图 5.26 显示,迭代次数在 500 次之内时,由于误差较大,造成分类的正确率较低,但当训练次数达到 500 次以上是时,网络的预测输出与实际输出误差已经趋于稳定,此时网络对三种数据类型的识别准确率基本维持在 0.9 以上,说明设计的网络能够正确的进行模式识别,在桥梁数据量足够的时,只需适当修改各层的节点数即可。

BP 神经网络的自学能力,非线性映射能力,较好的容错性为信息融合提供了有力的方法。本文将采集的倾角信号和加速度信号进行特征提取,组成特征序列,在一定程度上压缩了信息量降低开销,便于特征融合。通过仿真实验,调整神经网络隐藏层的节点个数,最终确定网络的整体结构,实验表明,网络表现出较快的收敛速度及 90%以上的数据识别准确率。使用设计的三层 BP 神经网络构成的信息融合系统可以初步达到项目设计需求。

6 单传感器数据融合缺陷

使用同上文中相同的配置参数,以及相同的特征提取的方法分别对倾角传感器、加速度传感器数据进行分类识别,前 100 组测试样本设定为类别标签 1,第 100-200 组测试样本设定为类别标签 2,第 200-300 组测试样本设定为类别标签 3,分类结果图如图 5.27,5.28 所示。

34308b63a8d8771d0676a7a239f1c962.png

5a510d7237406ae0a750dff8d7789cfc.png

虽然训练的 BP 网络在有限的迭代次数收敛,并基本达到设定的误差,但从图 5.27 可以看出在三组数据中均有实际输出与预测输出不符的(红色圆圈未覆盖绿色圆圈),网络对单传感器的数据分类识别正确率并不是很高,当可能的原因是当只有单个传感器的数据时,特征不明显,而对多种传感器的数据进行融合时,将多种传感器的数据的特征组合在一起(多维特征向量),这样能更加准确的判断桥梁健康状态。实际测量的桥梁数据是比较复杂的,当某一时刻,倾角传感器出现了异常情况,导致采集的数据异常,此时不可能因为这一种传感器的异常数据就判定桥梁出现健康异常状况,提出错误的维修决策,造成严重的资源浪费,应该结合其他种类的传感器数据进行综合判断,所以多传感器数据融合比单传感器数据融合具有更高的可信度。

《来源科技文献,经本人分析整理,以及技术会友,广交天下朋友》

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值