基于头脑风暴优化算法与BP神经网络的海水水质评价模型研究
2020-02-28李海涛邵泽东
李海涛,邵泽东
(青岛科技大学信息科学技术学院,山东 青岛 266000)
海洋开发利用的不断发展,使得海洋环境承受着与日俱增的压力。海水水质是考量海洋环境质量的主要指标之一。海水水质评价是根据海水要素指标的值对其质量状况进行综合性评价,以确定评价监测海域的海水水质问题,为海洋环境监管和治理提供支持。众多环境工作者在实践中发明改进了评价海水水质的有效方法, 例如单指数法、模糊综合评价法、模糊聚类法、灰色聚类法等[1],但海洋水体是一个大量存在非线性和非平稳问题的综合系统,海水污染受到多种因素影响,污染物之间有复杂的非线性关系,使得这些方法存在评价方式局限、评价结果粗糙等问题,不能满足现如今海水水质评价的实际需求。
人工神经网络在上世纪八十年代以来迅速发展,并开始广泛应用于多个领域,它从信息处理的角度抽象人脑神经元,并模拟人脑的一些基本特性[2]。BP神经网络是使用最广泛的神经网络,具备优越的非线性映射能力、学习适应能力和容错性,能够满足海水水质评价的要求,BP神经网络逐渐应用于海水水质评价中[3],但是BP神经网络存在一些缺点,如收敛速度较慢、容易陷入局部极小等。
为了得到更为精准的海水水质评价模型,本文利用头脑风暴优化算法(BSO)优化BP神经网络。头脑风暴优化算法是一种新的群体智能优化算法[4],模拟人类发挥创造性的思维来解决现实问题,具备了强大的全局搜索和局部搜索的能力。头脑风暴优化算法优化BP神经网络(BSO-BP)的海水水质评价模型在很大程度上改善了BP神经网络容易陷入局部极小的缺点。
1 研究方法
1.1 头脑风暴优化算法
头脑风暴是由美国学者Osborn于1939年提出的一种激发人类思维来解决问题的方法[5]。其中心思想是通过会议的形式汇集不同背景的人,让所有的参会人员都围绕中心话题畅所欲言,然后通过思想碰撞、观念融合,最后得到解决问题的最优方式。
根据这一思想,中国学者史玉回教授于2011年提出了头脑风暴优化算法[6],在头脑风暴优化算法中,每个想法都是潜在问题的解,先产生一定量的解个体,在对所有的解个体进行分类,找到每一类的最优解个体作为类中心,再通过解的更新与融合实现迭代更新[7]。BSO算法的具体实现过程:
第一步,在所有解空间内,产生潜在问题的n个解个体;
第二步,适应度函数确定并计算n个解个体的适应度值;
第三步,利用k-means聚类算法将n个个体划分成m个类,每一类被选中的概率大小与类内个体的个数成正比;
第四步,对每个类内个体的适应度值大小进行排序,将适应度值最佳的个体视为此类的类中心;
第五步,对所有个体进行个体的更新,个体的更新主要有4种方式如下:
a.随机选中1个类,在此类的类中心上通过叠加随机扰动来产生新个体[8];
b.随机选中1个类,在此类中随机选中1个个体,叠加随机扰动来产生新个体;
c.随机选中2个类,首先把这两个类的类中心进行融合,再叠加随机扰动来产生新个体;
d.随机选中2个类,首先这两个类的每类中各自随机选出1个个体进行融合,再叠加随机扰动来产生新个体。
第六步,将新产生的个体的适应度值与原个体的进行比较,若新个体较优,替换原个体[9]。
第七步,每个个体逐一进行更新,若达到迭代停止条件,则迭代停止,否则,返回第三步,直到迭代停止。
1.2 BSO算法优化BP神经网络
BP网络(Back-Propagation Network)即反向传播网络。通常,由3个层次的神经元组成,如图1所示,即输入层、隐含层和输出层,并且在每层的神经元之间形成全互连连接,同一层中的神经元之间相互独立,神经元传递函数一般是S型函数[10]。
BP网络的基本原理的核心是误差逆传播算法[11],即将神经网络输出层的总误差与神经元权重和阈值的一阶偏导数从输出层逆向传播到输入层,然后根据梯度下降的方式将这些导数逐层进行修正权重和阈值[11]。
具备优越的非线性映射和自学习能力的BP神经网络逐渐在海水水质评价应用开来,但是BP神经网络中具有的易陷入局部极小等问题会影响海水水质评价的结果。
基于BSO算法与BP神经网络的海水水质评价模型(BSO-BP)不仅具备了BP神经网络的非线性映射能力,而且兼具了BSO算法的全局搜索迭代能力,在海水水质评价过程中既可以考虑到海水的非线性关系,又能够避免计算时陷入局部极小,使海水水质评价更加精准。
BSO-BP模型的流程如图2所示,主要包括以下步骤:
① 创建一个BP神经网络。
② 为BSO算法的参数赋一组初始值。BSO算法的参数包括初始个体数量n、种群类别数目m、最大迭代次数iteration、随机扰动的坡度调节参数K以及初始解维数D,D满足如下条件:
D=(Nin+1)·Nhid+(Nhid+1)·Nout
(1)
式(1)中:Nin、Nhid、Nout分别是BP网络各层的神经元个数。
③ 确定适应度计算函数并计算每个个体的适应度值[12]。适应度值的计算方式为均方误差PMSE:
(2)
式(2)中:PMSE表示BP神经网络的计算值Sobse与估计值Spred之间的误差,适应度值越小,个体越优。
④ 确定Pa、Pb、Pc、Pd四个概率的值,来选择不同的个体更新方式,实现个体的迭代更新。
⑤ 使用适应度函数和BP神经网络的训练集初始化个体的适应度值。
⑥ 对于个体类,产生0到1之间的随机数,与确定的概率值比较,从4种方式中选择一种方式产生新个体,将新个体与原来的适应度值比较,若新个体更好,则替换原来的个体。
⑦ 继续迭代更新个体,直到达到最佳或者达到终止条件,停止更新。
⑧ 进行BSO优化之后,得到的最优解将作为BP网络的连接权重值和阈值,然后使用测试数据进行神经网络仿真。
图2 BSO-BP模型流程
1.3 BSO-BP海水水质评价模型设计
根据头脑风暴优化算法的中心思想,解个体越多,获得最佳解决方案的可能性就越高,但随着个体的增加,算法的复杂度也会随之增加。通过综合仿真测试,本研究将个体的数目设置成100,最大迭代次数为500次,经过测试将Pa、Pb、Pc、Pd4个概率分别设置为0.8、0.2、0.4、0.5。
模型中更新个体的方式可以概括为两种,一种是在原个体的基础上叠加随机扰动完成个体更新,另一种是两个个体融合再叠加随机扰动来完成更新。在本研究中,选择公式(3)给生成新个体添加随机扰动:
(3)
(4)
(5)
选择公式(6)来实现两个个体的融合:
Xnew=tX1+(1-t)X2
(6)
BP 神经网络的隐含层数个数一般为 1 层或 2 层。众多的实验表明,单一隐含层的BP 神经网络能够高精度逼近函数,而且在一般的数据处理中,网络层数的增长并不会显著提高处理精度,却增加了模型的处理计算量,浪费资源。因此本研究选用单一隐含层,即3层BP神经网络。
2 结果与讨论
2.1 评价标准
根据海水水质评价参数选择的三准则:适度准则、针对性准则、监测可行准则,并且根据胶州湾东北部海域的实际使用情况选择无机氮、石油类、COD和活性磷酸盐等4种指标作为参评因子[10]。海水水质评价依据为《海水水质标准》[13],如表1所示。
表1 海水水质标准及期望输出
注:无机氮、活性磷酸盐、COD、石油类含量单位均为mg/L。
2.2 数据来源
选取胶州湾东北部海域的12个监测站的数据[10]作为评价数据,训练集数据是依据海水水质评价标准来产生的,在各级评价标准之内按照标准均匀随机分布的方式内插而成[14],本研究使用的Matlab的rand函数生成训练集数据,且在各个级别之间产生100个训练样本,共计产生400个样本。BP神经网络的转换函数为S函数,其值的范围是[0,1],因此根据水质评价标准的分类,选择0.2、0.4、0.6、0.8分别作为Ⅰ、Ⅱ、Ⅲ、Ⅳ的期望输出值,如表1所示。
2.3 模型评价结果及对比分析
模型选择无机氮、活性磷酸盐、COD和石油类这4类监测要素为4个输入神经元,根据实验与计算,设置BP神经网络各层神经元,隐含层5个,输出层1个。BP网络的学习速率与冲量系数不断尝试后为Ir= 0.001,mc= 0.05,logsig函数作为隐含层的转移函数。
将设计的模型在Matlab2013a环境下运行,采用BSO算法计算得到BP网络的权值和阈值如下:
输入层到隐含层的权值W1和阈值B1:
隐含层到输出层的权值W2和阈值B2:
W2=[-2.470 5 1.171 7 1.026 0 1.135 8
-2.960 4]B2=[1.431 9]
将胶州湾12个站位的监测数据输入到已经训练好的海水水质评价模型中,评价监测点的水质等级,结果如表2所示。
为了更好的描述BSO-BP模型的准确性以及优越性,将本研究结果与模糊综合评价、BP神经网络评价以及文献[10]的评价结果进行对比,具体评价结果如表3所示。通过比较分析结果数据可知,模糊综合指数评价的结果出现了偏激状况,在2号站位和3号站位上的评价结果分别过重和过轻,这种情况的发生与方法权重的计算方式有一定的关系。模糊综合指数法中会根据各监测要素的超标情况进行权重的计算[1],超标情况越严重,相应的权重值会越大,所以当某种监测要素的值非常小甚至等于0时,该监测要素的计算权重值就会变得非常小甚至等于0,这样会造成该监测要素对水质综合评价的影响大大减小甚至没有影响,会得到与实际状况完全相悖的结论。BP神经网络的评价计算易陷入局部极小[11],例如1号站位的评价结果与其他算法存在较大差距,很大程度上是这种原因造成的。文献[10]中遗传神经网络的评价结果在4号站位和6号站位普遍劣于其他评价方法,根据评价数据来看,在遗传神经网络水质评价中各污染物的权重受超标情况影响,仍存在部分陷入局部极小现象,从而出现了劣于其他多种评价方法的结果。而BSO-BP评价模型从比较来看,使用了经过BSO算法来优化之后的权值与阈值,在很大程度上克服了陷入局部极小的问题,并且结合非线性映射的特点,很好的摆脱了污染物超标情况对权重值的影响,使模型的评价结果更加精准。
表2 评价数据及评价结果
表3 多种评价方式比较
3 结论
本研究将BSO算法与BP神经网络相结合,利用头脑风暴思想求解得到神经网络的权值与阈值,提出了BSO-BP海水水质评价模型。并以胶州湾12个监测站的监测数据作为评价样本,评价结果表明BSO-BP海水水质评价模型能够较为准确合理地得到海水水质等级,符合《海水水质标准》。BSO-BP海水水质评价模型把BP神经网络非线性泛化的特点和BSO算法强大的搜索迭代能力结合起来,达到了较高的逼近精度,大大提高了海水水质评价结果的准确性,评价模型具备了一定的实用性。