4 改进的遗传算法
在GA 搜索过程中,会出现将妨碍适应值高的个体生成而影响GA 的工作,是搜索方向偏离全局解的问题,针对这样的问题采用适当的改进适应度函数和混合编码方式来解决,同时对参数也进行调整,主要是对交叉算子和变异 算子、交叉概率Pc和变异概率Pm进行优化和改进。
4. 1 混合编码方案
本文将2 进制编码、解码操作简单易行,交叉、变异等遗传操作便于实现的优点[15-16],和实数编码解决连续参数优化问题时比较直观、高且不需解码的优点相 结合,达到改进算法的目的,改进后的编码方式既可以加快遗传操作,进行大范围的全局搜索,同时也解决连续参数优化问题,提高优化。
算法中采用2进制编码的基因表示BP 神经网络的结构,即对BP神经网络中的隐层节点数进行2 进制编码,实数编码的基因表示相应的权值和阈值,运用“结构编码”和“权值编码”来实现优化的并行,再以这种结构的染色体作为遗传算法的操作变量,进行遗 传操作。这样在优化出性能优越的结构的同时,又得出了较好的权值分布。
下面对该编码方案进一步详细说明。假设BP 神经网络的隐层节点数可能数为个l,网络的输入和输出层节点数分别为m 个和n 个,则网络中待优化参数的总数为l × m + m + m × n + n + 1 个,1表示待优化的隐层节点数。如果用q 位0 ~ 1 字符串表示隐层节点数,则隐层节点数的范围是0 ~ 2q – 1,则所有参数的编码方式可以形象表示为图3 所示。
将所有参数划分为5 部分,其中实数编码部分分别为权值wij、vit,阈值ζi、ηt,存放各自的位数,按照隐层节点可能数目2q – 1 设计,这样的设计是为了能全部反映第1 部分所表示的隐层节点数,不至于发生当第1部分出现比较大的节点数的时候,后面4 部分没有足够的位数存放权值和阈值的情况。由于第1 部分显示的数值不一定都是可能数,这就会导致后面几部分出现某些无效位数的可能。为了计算方便,将有效位放在每一部分的前面,无效位放在每一部分后 面,所以当隐层节点数确定时,可以明确看出有效位和无效位,交叉和变异算子都需要在有效位上进行。
4. 2 适应度函数的选择
遗传算法的搜索目标是所有进化代中使网络的误差平方和的网络权重,而遗传算法只能朝着使适应度函数值增大的方向进化。所以,本文根据产生的权值阈值所 对应的神经网络,计算出BP 网络的误差平方和,则适应度函数采用误差的倒数。
4. 3 混合编码中遗传算子的确定
4. 3. 1 选择算子
本文采用排序法作为选择机制,它将适应值的差别转化成次序,放大( 缩小) 了个体的适应值,隐含了定标的作用,其选择机理仍然是适应值大的个体被选择的概率越大,适应值越小的个体被选择的概率越小。首先按适应值的大小对个体进行 升序排序,然后按式( 8) 计算个体的选择概率:
式中: Pmax为染色体的选择概率,n( i) 为染色体i 的适应值在种群中排列序号。
然后运用比例选择的方法对各个体进行选择: 计算各个体的累积选择概率qi( i = 1,2,…,L) ,在( 0,qL) 区间内产生按升序排列的随机数序列rj( j = 1,2,…,L) 若qi -1 < rj < qi,则选择第i 个个体进入到下一代中。
4. 3. 2 交叉算子
交叉算子是保证良好性状能够遗传的关键。在2 进制编码中,本文采用的是单点交叉的方法,在2 个父代串中随机地选取一个交叉点,然后交换其所对应的子串。
交叉点在第k 位的交叉操作如下:
在实数编码方式下,本文采用算术交叉的方式来运算。算术交叉是指2 个个体经过线性组合产生出2 个新的染色体。在种群中随机均匀选取2 个个体Xli、Xlj( l =1,2,…,n) 进行交叉,交叉算子如下:
式中: Xli、Xlj为一对交叉前的个体,Xl'i 、Xl'j为交叉后的个体,c 为区间[0-1]的均匀分布的随机数。
采用这样的交叉操作的方式可以得到很多种可能的结果,能够充分地实现2个个体之间的信息交换,有利于找到全局值。
4. 3. 3 变异算子
变异是保证物种多样性的一个重要途径。本文在2进制编码中,采用基本位变异操作,即先对个体的每一个基因座,依变异概率Pm指定其为变异点,然后对每一个指定的变异点,对其基因值作取反运算或用其他等位基因值来代替,从而产生一个新的个体。
4. 4 交叉概率和变异概率的确定
交叉概率Pc和变异概率Pm在遗传算法中起了非常重要的作用,它的适当选择是遗传算法能否成功的关键。为了尽量不破坏适应度高的个体同时还能够保证种群多样性,本文采用自适应的交叉率和变异率,其公式如下:
式中: λ1、λ2、λ3、λ4是取值范围为[0,1]的常数,fmax为群体的适应值,f-为群体的平均适应值,f ' 为交叉互换中适应值较大的个体适应值,f 为变异个体的适应值。根据算法的进行状态实时地改变二者的值将平衡大小的选择问题,当群体陷入局部解时,增大Pc和Pm的值,当群体分散在解空间各处 时则应适当减小Pc和Pm的值; 另一方面,比较合理的情况是: 适应值高的个体其Pc和Pm的值较小,而适应值低的个体Pc和Pm的值较大。这样交叉概率和变异概率就随着个体的适应值的改变而改变。
5 实验仿真
5. 1 实验数据的获取与分析
HMP45D 湿度传感器采用优化设计的多谐振荡器式湿度-电压变换电路,将电容的变化量变化为电压的变化量,输出电压范围为0 ~ 1 V( dc) ,自动气象站的采集器根据测量的输出电压,由软件得出0 ~ 100%相对湿度。
实验数据是在下列条件的测量的: 实验仪器是1 台富奇Vtsch 调温调湿箱( 温度调节范围: – 70 ~ + 60 ℃,湿度调节范围: 0 ~ 100%RH) ,1台JJQ1 型信号模拟器,2个HMP45D 湿度传感器,1 台温湿度仪。为考察湿度传感器高温高湿条件下的温度特性,在网络训练和测试时,必须获得足够的湿度传感器的输出信号与其对应的待测湿度的数据对。实验中, 温度间隔为5 ℃,共取26 个温度点,湿度间隔为5%RH,共取20 个湿度点。
在测量每个湿度点上的测试值时,每隔10 min 录取数据,共录取10 次数据,每个湿度测试点上的10 次测量值的平均值,作为该湿度测试点上的测量值,温湿度仪的输出值的平均值加上修正值作为该点的测量标准值,具体步骤是:
1) 设定实验箱温度为20 ℃,待温度稳定后,测量设定30%RH 条件下的湿度值;2) 调节实验箱的湿度,使湿度按间隔逐步增加,每次待湿度稳定后,测量出此条件下的湿度值;3) 改变实验箱内的温度,重复步骤2.这样就得到了520 个样本组对,部分样本数据如表1 所示。
根据测量所得的实验数据,可以得出如图4 所示的不同温度和不同湿度条件下湿度传感器的测量误差曲线。
通过分析湿度传感器测量误差温度影响曲线,可以看出当温度从20 ℃逐渐升高时,在不同的湿度条件下,传感器的测量误差都逐渐变大,随着温度和湿度的同时变大,误差值变得更大。实验数据和实验结果显示高温高湿条件下,湿 度传感器的测量结果受到严重影响。所以采用改进的遗传算法优化BP 神经网络的方法进一步减小测量误差,修正湿度传感器的测量结果。
5. 2 湿度传感器温度补偿的实现。
本文的实验仿真部分结合自动气象站数据质量方案研究项目,通过实验研究,不仅定性地得出在自动气象站系统业务运行过程中,温度对湿度传感器的测量结果存在严重的影响,还定量地得出不同条件下影响的具体程度。
可以实现对其影响的补偿,把HMP45D 型湿度传感器在不同温度影响情况下的测量结果作为样本数据空间,实验样本中的部分样本作为训练样本,部分样本作为测试样本,把温度值和相对湿度测量值作为输入向量中的数据,相对湿度标准值作为期望输出值。
通过采用基于改进遗传算法的BP 神经网络建立的模型,对实验所得样本数据进行训练,然后对训练的结果进行测试,所得到的湿度传感器温度补偿后的部分数据如表2 所示。
实验结果表明: 如果不进行温度补偿,湿度传感器所测得的湿度值,相对于标准器的相对湿度值误差较大,显然不能满足所需要求。经过改进GA-BP 神经网络温度补偿后,误差明显减小,输出的误差为0. 1664% RH, 有效地提高了测量结果的准确度,满足实际应用要求。
6 结论
湿度传感器的温度补偿是传感器使用过程中的关键技术,HMP45D 湿敏电容湿度传感器在高温下的测量准确度低,不能满足观测中对湿度观测的准确度要求。因此,在制造湿敏电容传感器时,应对其进行在不同温度下的全量程测 试,再采用神经网络方法,建立湿敏电容输出信号和温度信号以及相对湿度估计值之间的数学模型。
本文提出利用改进遗传算法优化BP 神经网络结构和参数来建立湿敏电容湿度传感器的温度补偿模型,在实际测量时,可以根据湿敏电容实测的湿度信号和温度信号,然后利用本文中的数学模型得到温 度补偿后的相对湿度的测量值。此方法证明是可行有效的。它的特殊优点是能同时优化网络结构和参数,补偿高,而且是全局寻优。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。