目录
文献阅读:基于自适应进化人工蜂群算法的混合bp神经网络模型用于水质指标预测
摘要
在本周中,通过阅读文献,了解了AEABC-BPNN水质预测模型,具体做法为:以生物群落中的蜜蜂为蓝本进行输入输出层的调控,分为工蜂、观察蜂、花蜜等。并且对比了多个机器学习的模型,证明了其中的可行性。在Fluent中,选用带扭曲插入物的管道中的流动,进行几何划分和设置求解。理论学习方面,对有限体积法中的对流项离散进行了学习。
Abstract
This week, I read the literature and learned about the AEABC-BPNN water quality prediction model, which is based on the bees in the biome to regulate the input and output layers, which are divided into worker bees, observation bees, nectar, etc. And a number of machine learning models were compared to prove the feasibility. In Fluent, I took the flow in a pipe with a twisted insert and solved the geometry and setup. In terms of theoretical learning, I studied the convection term discretization in the finite volume method.
文献阅读:基于自适应进化人工蜂群算法的混合bp神经网络模型用于水质指标预测
文献摘要
质数据序列是非光滑的、非线性的,不同的水质参数之间存在很强的耦合关系,并且相互影响,因此准确预测水质参数是一个不可避免的问题。文章利用人工蜂群(Artificial Bee Colony, ABC)算法建立了反向传播神经网络(Back Propagation Neural Network, BPNN)模型,并将动态自适应因子、概率选择和梯度初始化三种自适应进化策略相结合,形成了自适应进化人工蜂群(adaptive evolutionary Artificial Bee Colony, AEABC)算法。
实验结果表明,在这种情况下,AEABC-BPNN模型只需要14次迭代即可收敛。WQI预测可将误差评价指标均方误差(MSE)降低至0.2745,比其他算法至少降低25.2%,平均绝对百分比误差(MAPE)低于7.58%。在4个wqi中,预测区间覆盖率(PICP)达到100%。此外,还设计了鲁棒性测试实验,验证了在历史误差数据指导下,AEABC-BPNN模型在预测精度方面仍然优于其他算法。
文章以洛阳河流域为研究对象,重点研究了氢(pH)势、溶解氧(DO)势、化学需氧量(COD)势、氨氮(NH3- N)势、总磷(TP)势、水质等级(WQG)势等各种水质质量指标的高精度预测方法,并提出了AEABC-BPNN模型解决了水质质量指标的长尺度预测问题。此外,利用ABC对BP神经网络进行优化,并引入自适应进化策略(AES)对典型ABC进行优化,形成独特的AEABC-BPNN模型,并通过BPNN模型的非线性输入输出拟合函数对水质中各参数进行预测分析。该算法在自适应进化策略的作用下具有自更新和全局迭代更新的双重优势,从而揭示了上述WQI(如pH、DO、COD等)随时间变化的模式,并通过长达9个月的实例数据验证了模型的可靠性。
讨论|结论
在ML的三个分支(ANN, RNN和CNN)中,ANN模型结构最简单,可解释性最强。与传统的时间序列预测模型ARIMA相比,人工神经网络的预测效果有了明显的提高。将谱理论与混沌理论相结合,提出了河流水质动力学的小波极大Lyapunov指数(WMLE)混合模型,并发现混合模型在一定程度上优于纯Lyapunov指数模型、ARMA模型和ANN模型。
虽然ML模型具有更准确的预测功能,适合解决复杂的非线性问题,但仍然存在以下弱点:
- 目前大多数模型都面向短期预测方法,在长期预测方面显得薄弱。
- 在进行水质预测时,单个机器学习模型受固定模型参数的影响,需要针对不同的指标进行调整,为达到最佳预测效果,计算复杂度大大增加。
为了解决上述问题,人们提出了多模型集成方法来弥补单个ML模型的不足,其中自然启发(NI)模型是研究最广泛的模型之一。水环境中水质指标的非线性、随机性和依赖性使得传统水质预测模型的预测精度和鲁棒性普遍不高。BPNN具有从输入因素中提取非线性关系的能力,具有较高的可解释性,同时可以避免其局部收敛,因此本文选择BPNN作为预测算法。
由于BPNN较依赖于数据集的水平,当训练集数量未达到一定水平时,bp神经网络的输出精度较低;同时,BPNN的输入和输出节点数量随着具体问题的变化而变化。而太多的隐层节点将导致过度拟合,使得预测结果不准确,而在隐藏层节点太少会影响训练的神经网络训练集,限制从正确合适的输入和输出之间的非线性关系。因此,尽可能将水质预测模型的节点数设置在10个以下,且BPNN的整体结构尽可能限制在五层,比五层更深入的训练会适得其反。
BPNN由于其随机参数生成机制,容易出现局部最优,需要引入优化算法进行优化。本文采用ABC算法对BPNN模型进行优化。
ABC是一种受自然界蜂群协作启发的优化算法,具有收敛速度快、全局搜索能力强、优化性能强等特点。ABC-BPNN水质预测模型的求解目标是BPNN模型中连接的任意两个神经元之间的权值,包括输入层-隐含层权值和隐含层-输出层权值,
该模型融合了动态自适应权值、自适应轮盘规则和梯度初始化方法。并对ABC-BPNN模型进行了改进,形成了AEABC-BPNN优化算法模型。文章中利用该模型对洛阳河流域较长时期的水质量进行了预测。与传统的BPNN模型相比,AEABC-BPNN模型通过上述改进过程大大提高了BPNN模型的搜索性能和收敛速度,使其具有鲁棒性、更高的学习速度和更强的逼近能力。
与典型SVM、BPNN、GABPNN、PSO-BPNN、ABC-BPNN和LSTM模型的预测结果进行对比分析。结果表明,AEABC-BPNN具有较快的收敛速度,可在14代内实现收敛,最终得到最优平均适应度值为0.0322。与SVM、BP、GA-BP和PSO-BP模型相比,AEABC-BP模型的预测结果更加准确。
文中目前存在的不足:
- 应尝试调查小样本的预测能力。
- 需要添加通过对各种环境因子、WQI与预测WQI之间的关系进行相关性分析,可以提高模型的准确性,从而进行分析预处理,过滤出更多影响水质的参数,提高模型的预测精度。
理论介绍
BPNN
从输入到输出由三层组成,即输入层、隐藏层和输出层,输入层用于输入训练数据,训练数据在一定权值的影响下进入每个隐藏层,隐藏层也通过特定权值输出。bp神经网络具有反馈校正数据的特点。当输出值与期望值不匹配时,BPNN由前向传播转变为后向传播,将误差分配给每个神经元,得到误差信号,从而修改两个神经元传递信号权值。其结构如图1所示:
ABC-BPNN实现流程
BPNN共设置5个输入节点(Ninput)、1个输出节点(Noutput)和1个隐藏层(Nhidden),其中隐藏层节点有10个。输入样本的90%作为模型训练的输入样本,其余作为测试样本验证模型的预测精度。
初始化ABC的参数为:生成花蜜数量Ne,设置雇佣蜜蜂数量等于花蜜数量Ne,设置蜂群总数NC,设置围观蜜蜂数量NO,设置侦察蜜蜂数量NS。以上参数满足它们之间的运算规律如式(1)所示:
每个花蜜源Xi实际上是一个D维矩阵,其中D对应于BPNN每层的节点数,其计算如式(2):
设置好参数后,ABC随机生成初始溶液(花蜜源),并开始循环迭代。生产初始花蜜的公式如式(3)所示:
其中Xt i为蜜源集合,包含BPNN中各连接权值,i = 1,2,…,Ne;t为当前迭代次数,最大更新代数为G;其中Lb为花蜜中各元素的下限,Ub为上限;Rand(0,1)是随机生成的大小介于0到1之间的值。
适应函数的选择
一般直接选择误差的MSE值作为适应度函数,如式(4)所示:
其中fit I是第t次迭代时的适应度函数,最理想的状态是适应度函数的值达到0。需要比较employment Bees生成的所有解,并将employment Bees生成的最优解定义为暂定的全局最优解输出,等待后续更新。后以加速收敛并找到更好的解决方案,这一过程可以用公式(5)表示:
其中Vij表示第i个解中的第j维元素;K不等于i,确保贪心选择过程不与自身重叠。当i={1,2,…,Ne}, k={1,2,…,Ne}时,贪心选择结果倾向于选择较好的解,丢弃较差的解,围观者蜜蜂在花蜜源附近通过轮盘赌的方式寻找最优解,其目的是在最优解周围寻找更好的解,如式(6)所示:
其中Pi为轮盘赌的概率,取值范围为0到1;Pi的方法与式(5)相同,同样进行贪婪选择,在搜索完成后选择最优解,丢弃次等解,记录全局最优解。当两个相邻的全局最优解没有更新时,记录一个标志位记录,当未更新的累计数量(标志位)达到限制时间时,外出的侦察蜂开始更新花蜜源。
Scout Bees更新花蜜来源的公式如公式(7)所示:
其中flag为记录标志位,用于记录全局最优解未更新的次数;通过在大范围近似中打破局部最优解的约束,Scout Bees可以帮助ABC跳出局部最优解,达到全局最优解。
当循环达到最大迭代次数G时,结束循环并输出花蜜源,ABC结束对花蜜源的更新并输出得到的花蜜源(解),BPNN从解中导出单个权值并将其应用到预测模型中。
共有两种实现方式:
- 通过得到的权重优化参数,结合输入层中剩余的相关参数如pH、DO等,预测wqi,最终输出结果.
- 通过替换输入层和输出层中的一个,可以将任意参数的水质设置为输出(水质等级除外,因为水质等级与wqi之间存在线性关系),与原始输出层交换位置,对剩余的wqi进行预测。
模型评价指标
为了评价模型的优劣程度,本文引入三个评价指标进行确定。水质预测问题,根据预测结果与实际wqi、MSE和MAPE之间的误差,反映了与真实值的差距,MSE和MAPE分别如式(17)和式(18)所示:
其中Yi为预测因子序列;Ŷi为该指标的真实值;n是样本数,根据统计知识划定的95%置信区间,将真实值与预测值之间的误差水平在±5%以内视为准确预测。由WQI预测的预测区间(PI)概念得出的,其计算如式(19)和(20)所示:
S为真值序列的标准差,t α/2(n)为n个自由度t分布的概率,置信水平为95%。为了描述预测值落在置信区间内的水平,提出了PICP概念,并按式(21)计算。
其中,当预测落在置信区间内时si为1,否则为0,则通过计算预测落在置信区间内的概率得到PICP值。总的结构图如下:
实验设置
以洛阳河流域为研究对象,重点研究了氢(pH)势、溶解氧(DO)势、化学需氧量(COD)势、氨氮(NH3- N)势、总磷(TP)势、水质等级(WQG)势等各种水质质量指标的高精度预测方法,并提出了AEABC-BPNN模型解决了水质质量指标的长尺度预测问题。此外,利用ABC对BP神经网络进行优化,并引入自适应进化策略(AES)对典型ABC进行优化,形成独特的AEABC-BPNN模型,并通过BPNN模型的非线性输入输出拟合函数对水质中各参数进行预测分析。该算法在自适应进化策略的作用下具有自更新和全局迭代更新的双重优势,从而揭示了上述WQI(如pH、DO、COD等)随时间变化的模式,并通过长达9个月的病例数据验证了模型的可靠性,流域水系如图3所示:
得到的wqi数据在某些时间段存在缺失,需要对缺失的wqi进行插值算法填充,本文采用K近邻(KNN)方法填充,如式(22)-(24)所示:
式中,d表示样本点之间的位置解,Ai = [ai1, ai2,…,air,…,aim]表示第i个样本中第m维的数据,air表示第i个样本中第n个属性的数据;(u)表示缺失的估计值,(wir)表示第i个样本中RTH属性数据的权值大小;Xloss表示丢失值的位置。与典型SVM、BPNN、GABPNN、PSO-BPNN、ABC-BPNN和LSTM模型的预测结果进行对比分析。
设置最大迭代次数G = 500,记录每次迭代后得到的最优适应度值,对比分析五种算法的收敛性能。
采用AEABC对bp神经网络进行优化,使优化结果更加准确。共使用390个样本数据,其中90%的样本作为训练集,其余10%作为测试集,观察预测效果,对每个WQI进行深入的准确率分析。
在AEABC-BPNN模型中,有5个wqi作为输入,1个作为输出。考虑到GA-BPNN和PSO-BPNN两种算法的收敛速度较慢,难以在较长时间内找到最优解。因此,设置最大迭代次数G = 200,蜂群Ne = 40来预测WQI。
模型输入共包含pH、DO、COD、NH3-N、TP 5个WQI,从经验上证明了这5个指标与WQG结果之间存在较大的相关性。
实验结果
其中GA、PSO、ABC和AEABC优化的BPNN模型的模型适应度函数曲线如图5所示:
从图5可以看出,经过200多次迭代后,PSO-BPNN模型仍然不能很好地收敛到最优解,但30次迭代后适应度函数曲线更加平滑,可以认为是近似收敛的;AEABC-BPNN模型具有最好的收敛特性,与其他算法相比具有更好的收敛效果。从多个模型训练的误差分析可以得出,每种优化算法都可以帮助BPNN模型收敛到稳定的适应度,但最终的收敛过程并不完全一致。这种不一致表现为在迭代开始时生成初始解的差异,在迭代过程中找到最佳解的能力的差异,以及在迭代结束时最终收敛结果的差异。
- AEABC的搜索结果最好,全局最优适应度值达到0.0322;相比之下,PSO、GA和ABC对BPNN的优化效果都不如AEABC对BPNN模型的优化效果,如表3所示。
- 由于缺少迭代过程,SVM和BPNN往往具有更高的适应度值。
- LSTM也通过迭代寻找最优解。然而,寻找最优解的过程和作用机制与BPNN不一致,因此未纳入比较。经过多次试验,LSTM神经网络的最终适应度收敛到0.0515左右,优于AEABC-BPNN模型,说明了AEABC-BPNN模型在收敛结果上的优势。
除非实现后续的重复优化,否则收敛速度会很慢。相比之下,AEABC-BPNN结合了ABC的快速收敛性能和跳出的能力。
表4中的稳定适应度是收敛到最优适应度前的代数,一般认为误差在5%以内可以近似忽略,因此可以近似认为该指标表示算法的完全收敛。
由于PSO-BPNN算法的自寻优机制,实现暂态收敛需要102次迭代;相比之下,GA-BPNN算法只需2次迭代即可收敛到稳定适应度,只需87次迭代即可达到最终收敛。ABC-BPNN和AEABCBPNN均具有理想的收敛速度,联合收敛结果(ABC-BPNN: 0.0445;AEABC-BPNN: 0.0322)表明AEABCBPNN在收敛过程上仍具有较大的优势。
从图6的结果可以看出,对于39个样本的预测结果,AEABC-BPNN模型显示出很大的优势,预测准确率超过35分,与真实WQG的差异最多不超过1个等级。SVM和BPNN模型在一些预测点上显示出2级的预测误差,因此不适用于WQG预测。GA、PSO和ABC通过优化BPNN模型神经元间的权值来减小BPNN的预测误差,总体优化效果令人满意,但精度与AEABC-BPNN模型相比仍有不足。LSTM作为一种新兴的神经网络,在大多数WQG预测中与真实值相差1个等级,因此不是一种很好的WQG预测方法。其预测误差分布如图7所示。
pH指数的预测如图8所示,从图中可以看出,pH预测问题的波动性更大,39个预测样本内的每个监测都呈现不规则的上下波动。SVM模型、BPNN模型和LSTM模型的预测精度较低:
用同样的方法预测水质的其他指标,分别是DO、COD、NH3-N和TP值的预测曲线,如图9所示。可以看出,AEABC-BPNN在各WQI预测中的预测精度最高,无论是对于大波动样本还是平滑波动样本都具有更准确的预测效果:
综上所述,AEABC-BPNN可以用来预测MSE指标的结果作为目标函数,并且最终训练集的训练结果也达到了最优的适应度值,在预测过程中可以比其他方法更准确地得出未来WQI预测结果更长的时间段。AEABC-BPNN是一种很好的预测WQI的方法,对于大的挥发性样本和平稳变化的样本都有很大的优势。
Fluent实例:带扭曲插入物的管道中的流动
几何建模
在XY平面上绘制一个25mm的圆,生成后挤出1000mm并添加冻结,使其成为一个实体,在YZ面上绘制出一条同长度的直线。在XY平面上新建一个草图平面,绘制一个关于原点对称的20mm×0.7mm的矩形,采用扫掠命令,选择匝数的扭曲方式,将匝数调整为2,创建一个扭曲的胶带状障碍物。
为使其扭曲部分不会和进出口相交,需拉长该圆柱体,选择两端平面挤出10mm,然后将这两个部分同原本的圆柱体合并起来,使用Boolean命令,将两端圆柱连接,并使中间扭曲部分进行分离,以圆柱体为目标几何体,扭曲部分为工具几何体,保留其几何体,完成流体区域的分离,选择两者形成新部件后,完成几何划分:
网格划分
插入以四面体主导的方法,将最小单位尺寸调整为25mm,再插入膨胀的条件,以整个圆柱为主体,外表面为边界进行膨胀划分,命名完成各边界后,更新网格进入fluent:
求解器设置
模型采用能量模型和k-omega SST粘性模型,流体材料选择为水,进口速度设置为0.005m/s,温度为300k,湍流数值保持默认,在壁面处调整温度为330k,边界条件为温度,确保扭曲部分的计算方式为耦合计算:
求解方法如下所示,并将残差调整为10e-6,以获得更好的结果,直接进行混合初始化,完成后进行1000次的迭代计算:
结果展示
残差:
流线图:
速度云图:
压力云图:
温度变化:
理论学习部分
总结
接回上周说的,本周学习了一种基于人工智能来预测水质的模型,由于本人学识尚浅,目前只能关注其如何进行实验和验证的过程,其中的数学理论部分无法做出很好的理解,故周报侧重点将会在这方面。对于有限体积法也快到了尾声,为了更好了解Fluent这款软件,会针对性对各自的算法的来历发展进行学习,以便更好上手。