APP下载

基于AABC-BP算法的红外气体传感器温度补偿

2018-11-02李成兵毛熙皓

传感技术学报 2018年10期
关键词:蜜源权值阈值

李成兵,毛熙皓

(西南石油大学机电工程学院,成都 610500)

目前,红外气体传感器与电化学气体传感器、催化燃烧式气体传感器、电化学气体传感器以及二氧化物半导体气体传感器相比,红外气体传感器具有探测范围广,选择性好,不容易受有毒有害气体的影响而中毒、老化,响应速度快等优势,红外气体传感器已经成为当前气体传感器的研究热点之一[1-2]。红外气体传感器是基于红外吸收光谱原理利用气体吸收特定红外光光谱来实现对气体的浓度检测,可探测甲烷(CH4)、氯化氢(HCL)、一氧化碳(CO)、硫化氢(H2S)等气体,已经广泛应用于煤矿、化工等领域的有毒有害气体检测[3-7]。

红外气体传感器在工作时容易受到温度影响,因为气体分子吸收特性其吸收系数与温度有关,电子元件、光学元件等均会受温度影响而发生变化导致测试精度和稳定性降低[8],对红外气体传感器进行温度补偿是十分重要的。常用传感器温度补偿方法分为硬件补偿和软件补偿两种,硬件补偿是通过硬件电路降低温度对测试结果的影响,软件补偿则是利用算法对数据进行融合,文献[9]利用最小二乘曲线拟合法建立温度补偿模型,文献[10]利用BP神经网络建立温度补偿模型,文献[11]利用RBF径向神经网络建立温度补偿模型。

BP神经网络BP(Back Propagation neural network)是常用的传感器温度补偿方法,BP神经网络依靠不断的误差反向传播修改输入层至隐含层、隐含层至输出层的阈值和权值,通过修改后的权值和阈值降低神经网络的输出误差,但是不断的反向传播造成了BP神经网络运算速度慢、训练次数多且精度不高的缺点。近年来,针对BP神经网络收敛慢、精度不高的缺点,提出了多种混合算法来提高BP神经网络的运算速度和精度,文献[12]利用遗传算法建立优化模型,文献[10]利用粒子群算法建立优化模型、文献[13]利用主成分分析法建立优化模型,上述混合算法对BP神经网络的运算能力均能产生一定的提升作用,本文提出一种基于自适应人工蜂群算法AABC(Adaptive Artificial Bee Colony)对BP神经网络进行参数优化的方案,利用AABC强大的全局搜索功能、收敛速度快、精度高和稳定性良好的优点对BP神经网络的阈值和权值进行优化,优化后的BP神经网络拥有更好的跳出局部收敛能力、良好的稳定性和高精度,使用优化后的BP神经网络对红外气体传感器进行温度补偿,提高补偿精度和稳定性。

1 自适应人工蜂群算法

1.1 标准人工蜂群算法

人工蜂群算法是Karaboga于2005年提出[14],与蚁群算法、鸟群算法等同为仿生学算法,受启发于蜂群通过个体分工和信息交换,相互合作完成对花蜜的采集。人工蜂群算法对目标函数和约束几乎没有要求,初始参数的设置对算法结果几乎没有影响。蜂群主要由引领峰、跟随蜂和侦查蜂组成。算法分为3个阶段[15]:①引领蜂搜索蜜源;②引领蜂分享蜜源信息,跟随蜂以一定的概率选择蜜源进行搜索;③侦查蜂在搜索空间随机搜索。

具体3个阶段如下[16]:

xid=Ld+rand(0,1)(Ud-Ld)

(1)

引领蜂将在搜索开始时根据式(2)在蜜源i的周围搜索产生一个新的蜜源:

vid=xid+φ(xid-xjd)

(2)

式中,d是在[1,D]中的一个随机整数,表示引领蜂随机的选择解向量中的一维进行搜索;j∈{1,2,…,NP},j≠i,表示在NP个蜜源中随机选择一个不等于i的蜜源;φ是[-1,1]均匀分布随机数。

当新蜜源Vi=[vi1vi2……vid]的适应度优于Xi时,采用贪婪选择的方法用Vi代替Xi,否则保留Xi。

第2阶段,所有的引领蜂完成式(2)的运算后,飞回信息交流区共享蜜源信息。跟随蜂根据式(3)计算的概率决定是否跟随引领蜂:

(3)

随后跟随蜂采用轮盘赌的方式进行选择引领蜂,轮盘赌方式为产生一个[-1,1]均匀分布的随机数r,如果pi大于r,该跟随蜂按式(2)在蜜源i周围产生一个新的蜜源,并且采用同引领蜂相同的贪婪选择方式确定保留的蜜源。蜜源质量越高则吸引的跟随蜂越多。fi为目标值函数,解的适应度根据式(4)计算:

(4)

第3阶段,搜索过程中如果蜜源Xi经过trial次迭代搜索到达蜜源最大开采次数limit没有找到更好的蜜源,引领蜂将放弃该蜜源并且转变为侦查蜂,该侦查蜂会在搜索空间中随机产生一个新的蜜源代替Xi,整个过程按照式(5):

(5)

1.2 自适应人工蜂群算法

标准人工蜂群算法具有较强的全局搜索能力但是存在不足的是算法在运算过程中,高质量解可能会因为长时间得不到优化而被放弃,当trail值达到limit的值时,该高质量解会被放弃。自适应人工蜂群算法利用目标函数值fi加权trail:

(6)

(7)

由此可见,自适应人工蜂群算法的步骤[17]:①初始化蜜源Xi,设定参数蜜源数量NP,蜜源最大开采次数limit,迭代次数tmax;②将引领蜂分配到蜜源按式(2)进行搜索产生新蜜源Vi;③根据式(4)评价Vi的适应度并对其进行贪婪选择确定是否保留蜜源;④根据式(3)计算的概率确定引领蜂所在的蜜源是否被跟随;⑤跟随蜂对蜜源进行搜索并根据贪婪选择的结果确定是否保留蜜源;⑥根据加权运算后的Atrial值判断蜜源Xi是否满足被放弃的条件,放弃蜜源后引领蜂转变为侦查蜂,否则直接执行步骤⑧;⑦侦查蜂根据式(7)搜索新的蜜源;⑧完成一次迭代,t=t+1,判断算法是否满足终止条件,满足条件则输出最优解,否则执行步骤②。

2 混合算法

2.1 BP神经网络

BP神经网络是一种具有三层或三层以上的多层神经网络,以三层神经网络为例,三层网络分别为输入层、隐含层、输出层。正向传播和误差反向传播为BP神经网络的两大步骤,当BP神经网络正向传播时,输入值通过输入层进入网络结构,再由输入层传递给隐含层并加权计算后传递给输出层,输出层经过计算产生输出值,通过输出值与期望值进行对比,若误差没有达到要求,则实现反向传播,修改阈值和权值来降低误差直到达到满足要求的误差值,BP神经网络原理结构图如图1所示。

图1 BP神经网络结构原理图

BP神经网络主要参数包括[18]:①输入向量X=(x1,x2,…,xn)T,n为输入层单元个数;②输出向量Y=(y1,y2,…,ym)T,m为输出层单元个数;③期望输出O=(o1,o2,…,om)T;④隐含层输出向量B=[b1,b2,…,bp]T,p为隐含层单元个数;⑤输入层至隐含层权值和阈值矩阵W=[wj1,wj2,……,wjn]T,C1=[c1,c2,…cj]T,j=1,2,…,p;⑥隐含层至输出层权值和阈值矩阵

V=[vk1,vk2,…,vkn]T

C2=[c1,c2,…ck]Tk=1,2,…,m;

各层之间的激活函数均采用S型函数:

f(x)=1/[1+exp(-x)]

(8)

隐含层激活值sj,j=1,2,…,p:

(9)

隐含层的输出值为bj=f(sj),输出层激活值sk,k=1,2,…,m:

(10)

输出层的输出值为k=f(sk),记第Z个训练样本(XZ,YZ),样本数量为T,则第z次训练误差Ez和全局误差分E别为:

(11)

(12)

在BP神经网络中,神经元个数决定了整个网络的运算速度和收敛能力,神经元个数越多,BP神经网络的运算速度越快、收敛能力越强,但是神经网络的复杂程度越高,容易出过现拟合现象。神经元个数越少,神经网络的计算精度越低且运算速度慢。

2.2 AABC-BP混合算法

BP神经可以在训练过程中改进权值与阈值,但是收敛速度过慢且容易陷入局部收敛,精度不高。BP神经网络的改进主要是以下3种[19]:①改进神经网络的结构;②优化神经网络的激活函数;③优化神经网络的阈值和权值。本文借助自适应人工蜂群算法较强的全局搜索能力和收敛速快、高精度的优势对BP神经网络的权值和阈值进行优化,再将优化后的权值和阈值作为BP神经网络的初始阈值和初始权值,可提升BP神经网络的收敛速度和精度,减少神经网络的训练次数。使用(AABC-BP)混合算法时,假设将BP神经网络的权值和阈值W、C1、V、C2矩阵转化为一个一维数组,视为AABC的一个蜜源即优化对象,混合算法流程如图2所示。

(AABC-BP)混合算法的执行步骤如下:①设定AABC算法的蜜源数量NP,初始化AABC算法的参数;②将式(12)作为AABC算法的目标值函数,设定满足要求的误差β;③执行AABC算法,记录并更新最优解;④AABC算法完成后,若E≤β,输出最优解即BP神经网络的权值和阈值组成的一维数组;否则继续执行步骤③;⑤将输出的最优解作为BP神经网络的初始权值和阈值对样本进行训练。

图2 混合算法流程

3 实验论证

3.1 AABC性能测试

为了验证AABC算法的稳定性、收敛速度和跳出局部收敛的性能,采用3种常规测试函数对AABC、ABC以及性能较强的混沌粒子算法CPSO(Chaotic Particle Swarm Optimization)进行性能对比。测试函数见表1,Rosenbrock函数xj的范围为[-10,10],全局极值为0,Ackley函数的范围为[-32,32],全局极值为0,Griewank函数的范围为[-600,600],全局极值为0。

设AABC和ABC算法的蜜源数NP为100、蜜源最大开采次数limit为10、搜索空间的上限Ud和下限Ld为各个测试函数的xj范围,迭代次数100次。设CPSO算法的种群规模为100,进化次数100次使用MATLAB2014a进行试验测试,使用AABC、ABC、CPSO对3种测试函数进行收敛测试,各算法对不同测试函数完成20次试验。

表1 测试函数

图3~图5的纵坐标表示函数最小值取以10为底的对数,由表2和图3~图5可以看出AABC算法的收敛速度更快、精度更高,AABC算法跳出局部收敛的速度最快且多次迭代后算法依然没有陷入局部最小值。经过平均最小值和最佳最小值对比,AABC算法比ABC算法和CPSO算法拥有更好的全局所搜能力,证明对ABC算法的改进是有效的。

图3 Griewank函数最佳极小值求解过程曲线

图4 Akley函数最佳极小值求解过程曲线

图5 Rosenbrock函数最佳极小值求解过程曲线

表2 性能测试结果

3.2 红外传感器温度补偿

选择甲烷(CH4)作为实验的测试对象,实验温度范围选取[-20,20]℃中的7个温度点,其中6个作为训练样本,1个作为测试样本,环境压力控制在1 atm,湿度控制在60%。测试在恒温箱中进行并通过氮气改变测试温度。实测浓度和温度作为温度补偿的输入,本文通过(AABC-BP)、(ABC-BP)、(CPSO-BP)3种混合算法完成温度补偿并进行补偿精度对比。

实验选用IRL715型号光源和PYS3228TC型号探测器,测试滤光片和参考滤光片滤波参数分别为3.31 μm+60-L、3.39 μm+90-L,单片机系统型号为STM32F103VE,信号放大芯片型号为AD620A,串口通信接口型号为RS232,系统原理图如图6所示。

图6 温度补偿系统原理图

进行红外气体传感器温度补偿时,测试浓度C0和温度作为输入,维度为2,输出补偿结果C*维度为1,设定BP神经网络层数为3层,隐含层神经元个数为6个,输入层至隐含层权值和阈值矩阵维数分别为W[6*2]、B1[1*2],隐含层至输出层权值和阈值矩阵维数分别为V[2*6]、B2[1*1],再将所有矩阵转化为一个一位数组,作为AABC、ABC算法的蜜源和CPSO的初始种群,设AABC、ABC算法的蜜源NP为100,蜜源最大开采次数limit为10,迭代次数100,搜索空间范围[-20,20],粒子群种群规模为100,进化次数100,BP神经网络的参数调整方式为梯度下降法,训练次数100次。

实验数据见表3,单位为气体爆炸下限%LEL,C0表示测量百分比浓度,C表示实际百分比浓度,将浓度数据和温度数据进行范围为[0,1]的归一化,x、T表示实验数据和温度,xmax、xmin表示输入最大值和最小值,tmax、tmin表示温度的最大值和最小值:

(13)

更多的训练样本可小幅提升AABC-BP的精度,但是会增加BP的训练时间。因此,在保证精度满足要求的同时,尽量减少训练样本个数,从而节约训练时间。不同BP训练样本个数的精度与计算速度测试实验结果如图7所示,选择6组训练样本可保证BP精度满足工程要求,并且训练时间较短。因此,本文训练样本数确定为6组。

测试样本选择温度7.5 ℃、12.5 ℃、15 ℃下的测量值。样本训练和部分测试结果反归一化后见表4、表5,图8为3种混合算法的训练过程图。使用3种不同优化方法后的BP神经网络均能在训练100次以内达到最优,AABC-BP算法达到全局最优的训练次数最少,其他两种优化方法陷入局部收敛的次数较多。

表3 原始数据 %LEL

图7 训练样本个数对训练误差和训练时间的影响

表4 样本训练平均误差

表5 15.0 ℃测试结果 %LEL

图8 3种混合算法的训练过程

测试样本误差见表6,(AABC-BP)算法平均误差最小且测试最大误差小于(ABC-BP)算法和(CPSO-BP)算法。

表6 测试样本误差对比

首先证明了引入AABC算法对ABC算法进行改进是有效的,同时也证明(AABC-BP)算法进行红外气体传感器温度补偿时有较强的稳定性和鲁棒性,如图9所示,误差在5%范围内,满足工程误差要求,补偿结果较为理想。

图9 AABC-BP算法3个测试样本的测试误差

4 结论

提出一种基于人工蜂群算法对红外气体传感器进行温度补偿方法,并针对人工蜂群算法运算过程中优质解容易被放弃的问题,引用自适应人工蜂群算法,即对放弃条件进行加权评价,提高优质解生存时间。通过3种不同的测试函数对AABC算法、ABC算法、CPSO算法进行性能测试后表明AABC算法有着较强的全局搜索能力、较快的收敛速度和较好的稳定性,对BP温度补偿模型性能提高较大。采用(AABC-BP)混合算法对进行传感器温度补偿,样本训练和测试结果表明,(AABC-BP)算法可有效提高BP神经网络的收敛速度和计算精度,红外气体传感器的温度补偿结果误差在5%以内。

猜你喜欢

蜜源权值阈值
一种融合时间权值和用户行为序列的电影推荐模型
林下拓蜜源 蜂业上台阶
CONTENTS
小波阈值去噪在深小孔钻削声发射信号处理中的应用
基于自适应阈值和连通域的隧道裂缝提取
指示蜜源的导蜜鸟
比值遥感蚀变信息提取及阈值确定(插图)
基于权值动量的RBM加速学习算法研究
基于多维度特征权值动态更新的用户推荐模型研究
室内表面平均氡析出率阈值探讨