技术领域
基于遗传算法优化的BP神经网络模型的臭氧预测方法,属于环境预测技术领域。
背景技术
空气质量的模型模拟研究最早可追溯到20世纪六十年代,到现在已经发展到第三代空气质量模型,可以被用来预测和模拟空气中臭氧的浓度。空气质量模型能够模拟的最小网格通常为1km*1km,不适用于小区域的大气污染模拟,准确度不高。空气质量模型的安装需在配置Linux的服务器上进行,安装复杂,研究者的计算机在达到一定要求后才能运行流畅,且需要大量研究区域的各方面数据,如气象、污染源、地形数据,而目前空气污染物的机理尚未彻底研究清楚。许多研究人员使用其他方法,如多元线性回归模型、时间序列模型等来预测空气污染物的浓度。尽管这些方法简单、直接、实用,但传统的数学和统计学方法的灵活性和通用性较差,且它们难以充分利用历史数据中的有用信息,对环境中污染物浓度的突发事件的模拟能力较差,通常只能用于平稳状态的预测。
发明内容
本发明要解决的技术问题是:克服现有技术的不足,提供一种
本发明解决其技术问题所采用的技术方案是:该基于遗传算法优化的BP神经网络模型的臭氧预测方法,其特征在于:包括如下步骤:
步骤1001,构建BP神经网络模型;
步骤1002,选用遗传算法对BP神经网络模型进行优化;
步骤1003,对步骤1002中通过遗传算法优化后的BP神经网络模型,进行进一步优化;
步骤1004,使用验证集对优化后的BP神经网络模型进行精度验证;
步骤1005,根据步骤1004验证后的BP神经网络模型预测臭氧浓度。
优选的,步骤1002,包括如下步骤:
步骤1002-1,初始化种群;
步骤1002-2,计算适应度值;
步骤1002-3,执行选择运算;
步骤1002-4,执行交叉运算;
步骤1002-5,执行变异运算。
优选的,在步骤1003中,利用EMA算法,对BP神经网络模型进行进一步优化。
优选的,步骤1003,包括如下步骤:
步骤1003-1,初始评价,首先对输入的个体元素进行评价,对整体进行全局搜索得到M个初始评价得分高的元素和N个得分低的元素;
步骤1003-2,划分初始子群,以上一步分化出的M、N个个体元素为中心搜索点,然后选取适当的半径为搜索范围,得到M个第一代优胜子群体和N个临时子群体;
步骤1003-3,群体内趋同运算,在上一步产生的M+N个子群体内部,对每个个体元素进行评价,得分高的个体元素被定位为优胜个体,以此优胜个体为中心再进行搜索,直至无更优的个体元素得分产生;
步骤1003-4,群体间异化运算,通过使分化出的优胜子群体和临时子群体之间形成竞争,从而不断更迭,实现找到最优解;
步骤1003-5,优胜子群体与临时子群体之间的互换更迭;
步骤1003-6,确定收敛条件,算法收敛的条件为优胜子群体的得分不再变化且与临时子群体之间不再产生更迭,即满足条件,执行步骤1003-7;否则,返回步骤1003-3;
步骤1003-7,得到最优解,当算法整体符合收敛条件时,MEA算法整体结束,最终得分最高的个体元素。
优选的,在步骤1001中,以温度、湿度、日照强度、大气压、TVOC数据作为输入数据,臭氧数据作为输出数据,采用Matlab构建BP神经网络模型。
优选的,在执行步骤1001之前模型构建过程之前,采用R语言对数据进行预处理。
与现有技术相比,本发明所具有的有益效果是:
在本基于遗传算法优化的BP神经网络模型的臭氧预测方法中,通过BP神经网络模型作为预测模型,具有较强的自适应、自学习能力。人工神经网络模型是一门以人脑机制为基础、多学科交叉、研究非程序信息处理的新兴科学,能够通过对大量数据大规模处理、存储、自组织,实现有效逼近一个非线性关系,从而对大气污染进行预测,同时结合遗传算法对BP神经网络模型进行优化,有助于对环境中污染物浓度的突发事件的模拟能力较差,通常只能用于平稳状态的预测。
附图说明
图1为基于遗传算法优化的BP神经网络模型的臭氧预测方法流程图。
图2为BP神经网络结构示意图。
图3为遗传算法优化过程流程图。
图4为GA-BP神经网络模型预测效果图。
图5为GA-BP神经网络模型验证集的预测值与实际值对比图。
具体实施方式
图1~5是本发明的最佳实施例,下面结合附图1~5对本发明做进一步说明。
如图1所示,基于遗传算法优化的BP神经网络模型的臭氧预测方法,包括如下步骤:
步骤1001,构建预测臭氧浓度的BP神经网络模型;
结合图2,与现有技术相同,BP神经网络一般由输入层、隐含层和输出层三部分组成。其中,输入层和输出层都会与外界直接接触,由众多神经元组成,输入层接收大量的输入信息,输出层输出目标输出数据。隐含层并不与外界直接接触,而是用来接收输入层传入的数据,并对数据处理变换,隐含层的神经元个数由经验公式和模型反复多次训练测试确定。
BP神经网络的三部分间是由大量的节点相互联接构成,一个节点就代表一个激励函数,用来计算其相邻节的加权和。节点之间的连线可以看做是一个权重,每一层都包含用来传递和处理数据的神经元节点,相邻层之间的神经元节点彼此全连接。
输入层节点的个数由输入参数的种类数量决定,输入层节点负责接受输入参数的数据,并将数据通过计算处理后传递给隐含层节点。多个输入层节点的数据一般会经过加权求和后输入到一个隐含层节点,这一过程是并行计算的,即多个隐含层节点会同时收到来自输入层节点处理后的信息。
隐含层节点个数可以参照不同方法人为进行设置,根据不同的应用场景,隐含层节点数通常需要通过针对性的调整才能满足需求。隐含层节点负责在输入层和输出层之间进行数据的传递,隐含层节点会根据设置好的激活函数、权重等计算得出一个临时输出。
隐含层节点个数可以参照不同方法人为进行设置,根据不同的应用场景,隐含层节点数通常需要通过针对性的调整才能满足需求。隐含层节点负责在输入层和输出层之间进行数据的传递,隐含层节点会根据设置好的激活函数、权重等计算得出一个临时输出,神经网络模型中激活函数一般为非线性函数或分段线性函数,且激活函数的选择对模型的表现有着重要的影响。
隐含层的每个神经元节点在通过激活函数求得各自的非线性输出y后,将y与隐含层节点和输出层节点之间的权重值相乘后进行汇总,得到最终的模型输出值。最后,输出层将计算模型输出值与期望值之间的差值,并根据差值将误差信号反向传递到网络的各个节点,更新并调整权重信息,模型将不断重复这个过程直至模型输出与期望值之间的差值达到误差要求或者模型训练次数已达规定的最大训练次数。通过这种方式,BP神经网络可以实现对任意非线性函数的任意精度逼近,学习到数据中的隐含关系。同时,正是由于这种特点,BP神经网络模型可以学习到当前时刻的输入参数与未来时刻的输出参数之间的复杂关系,来实现对污染物浓度的预测。
学习率的大小决定着每次更新的幅度:过大的学习率将使模型出现震荡,无法达到收敛;过小的学习率则使模型每一次的调整都无法有效减少误差,使模型同样无法达到收敛。只有合适的学习率才能有效帮助模型进行训练,找到正确的收敛方向。
同时,每一次更新的完成代表着模型的一次训练。因此,最大训练次数的设置决定着模型隐含层节点的调整次数。训练次数过少时,模型此时尚未能够完全学会数据集中隐藏的关联信息,模型输出结果将偏离实际值;而训练次数过多时,模型将从训练数据集中提取出过多的信息和特征,对已知数据达到较好的预测效果。
因此,隐含层激活函数,学习率,最大训练次数以及隐含层节点个数等参数都对模型的训练效果和最终在实际场景下的预测结果有着直接而重要的影响,需要进行一定的针对性优化才能够帮助模型找到更适合当前应用场景下的模型参数配置。
在本基于遗传算法优化的BP神经网络模型的臭氧预测方法中,以温度、湿度、日照强度、大气压、TVOC数据作为输入数据,臭氧数据作为输出数据,采用Matlab构建BP神经网络模型预测臭氧浓度,其详细数据如表1所示:
表1数据详细信息表
在进行BP神经网络模型构建过程之前,需要预先对原始数据集进行一定的数据预处理,从而确保数据质量,保证数据的可用性和可靠性,提高模型训练效率和预测精度。在本基于遗传算法优化的BP神经网络模型的臭氧预测方法中,将采用R语言对数据进行预处理和统计分析。
对于不同类型数据,本文根据其本身特征采用了不同的数据预处理方法。同时,在对不同类型的数据进行预处理之前,由于数据存在缺失现象,即某一时刻数据完全没有被记录,时间上存在不连续的现象。因此首先需要绘制标准时间序列模板,并将标准时间序列模板与每一种类型数据进行匹配,使时间上保持连续完整,之后才能准确进行填补。
由于监测设备以及相关软件发生故障等原因,数据中除了缺失值以外,还存在错误值,使用R语言中的Table函数包对各个参数进行检测,Table函数包可以将一个参数中所有出现过的值进行统计,将值和值的出现频次列出。之后则人工对错误值和离散点进行记录,将其录入到错误数据清单中,每一个参数都有与其对应的清单。将所有数据与相对应的错误数据清单进行匹配,如果一旦匹配成功,则将数据移除,视为缺失值。
对于缺失值,气象因素采用周期性气象因子填补法进行填补,即当某一数据缺失时,由于气象因子同一天先后时间会有差距,但前后两天相同时间产别不大,因此使用24小时之前的数据及24小时之后的数据的均值。由于采用污染物参数为日均值,故亦使用前后均值填补法,即采用前一天和后一天的均值。VOCs参数虽然会有每天的周期性变化规律,但主要还是与左右时刻浓度相似,故采用前后均值法获取缺失值。VOCs参数每15分钟获取一个,需要得到其每日均值,由于数据量较大且需要将不同日期的数据分隔开,人力做到较为困难,所以决定采用R软件进行求取。在经过以上处理后,仍然会存在缺失值情况,因为BP神经网络模型中,每一个参数都会产生较大影响,故会删去这一日的数据。
由上述可知,BP神经网络模型由输入层、隐含层和输出层组成。激活函数和层内节点数等模型参数都会对模型结果产生很大影响,学习率和隐含层数量更是决定整个模型的框架。另外,训练次数、节点之间的初始权值,训练样本和验证样本的数量也对模型的准确度有着重要的影响。本研究中,节点之间的初始权值采用默认值,数据集的训练集和验证集的比例分别为80%和20%,训练集数量为172个,验证集数量为42个。
参数的设置可以提高模型的准确度。增加隐含层层数可以更进一步地降低误差,提高精度,但同时也使网络复杂化,从而增加网络权值的训练时间。而误差精度的提高实际上也可以通过增加隐含层中的神经元数目来获得,其训练结果也比增加层数更容易观察和调整。因为一个隐含层的BP神经网络模型已经可以达到任意非线性函数的逼近,且可以提高模型的训练效率,通过对1个隐含层、2个隐含层和3个隐含层的R
表2BP神经网络模型结果比较
隐含层的节点数本研究选择使用以下公式来确定节点数的范围:
式中,H为隐含层节点个数,m为输入层节点数,n为输出层节点数,λ是取值范围为1-10的常数,隐含层节点数的可选范围为4~14。
同时在本基于遗传算法优化的BP神经网络模型的臭氧预测方法中,采用数据统计指标决定系数(R
决定系数(R
式中,y
当预测值越接近于实际值,即拟合程度越高,两者之间的残差就会越小,残差平方和∑
均方根误差(RMSE)的计算方式如下所示:
式中,n为数据集中数据个数。
RMSE是均方误差(MSE)的平方根,而均方误差是预测值与真实值偏差的平方与观测次数的比值,可以有效衡量观测值同真值之间的偏差。RMSE越大,说明偏差越大,模型拟合程度越低。
步骤1002,使用遗传算法优化BP神经网络模型;
在本基于遗传算法优化的BP神经网络模型的臭氧预测方法中,选用遗传算法对BP神经网络模型进行优化,如图3所示,具体包括如下步骤:
步骤1002-1,初始化种群;
初始化种群并选择合适的编码方式。种群的初始化操作是对各个权值、阅值进行赋值操作。染色体的编码方法包括二进制法和实数法,二进制法是指将个体编成二进制串,实数法是指将个体编成实数串。
步骤1002-2,计算适应度值;
在遗传算法中,采用适应度函数对个体进化过程中的适应能力进行评估,得到种群个体参与BP神经网络之后得到的输出值与目标输出值的误差绝对值之和。适应度的计算公式为:
式中,N为BP神经网络节点个数,y
N=(n+m+2)×l
式中,n为输出层节点个数,m为输出层节点数,l为隐藏层节点数。
步骤1002-3,执行选择运算;
选择运算是指个体穿根据适应度的大小从亲代种群中速记选择个体作为子代的遗传信息进行复制的操作方法。
式中,F
式中,N为种群全部个体的树木,k为系数。
步骤1002-4,执行交叉运算;
交叉运算是指两个相互配对的染色体的部分基因在不确定的方式下进行了基因交换从而形成了两个新的个体。交叉运算是遗传算法产生新群体的主要方式,对其产生新个体的过程起到非常重要的促进作用。需要注意的是在遗传算法计算之前先要对群体中的个体进行配对,配对成功后才能进行交叉运算,当前配对的方式主要是随机配对。
式中,a
步骤1002-5,执行变异运算;
变异运算是指新个体的生成采用基因值代表个体编码数值,变异运算是遗传算法中使用率较多的一种方式。将变异运算和交叉运算相互结合后,来完成局部或全部空间的搜索问题。
式中,a
式中,r
步骤1003,进一步优化BP神经网络;
利用EMA算法,对步骤1002中通过遗传算法优化后的BP神经网络模型,进行进一步优化,具体包括如下步骤:
步骤1003-1,初始评价。首先对输入的个体元素进行评价,对整体进行全局搜索得到M个初始评价得分较高的元素和N个得分较低的元素。
步骤1003-2,划分初始子群。以上一步分化出的M、N个个体元素为中心搜索点,然后选取适当的半径为搜索范围,得到M个第一代优胜子群体和N个临时子群体。但搜索过程需保证选择的半径使任何群体不产生交集,从而确保不产生相同的个体。
步骤1003-3,群体内趋同运算。在上一步产生的M+N个子群体内部,对每个个体元素进行评价,得分较高的个体元素被定位为优胜个体,以此优胜个体为中心再进行搜索,直至无更优的个体元素得分产生。
步骤1003-4,群体间异化运算。通过使分化出的优胜子群体和临时子群体之间形成竞争,从而不断更迭,实现找到最优解。
步骤1003-5,优胜子群体与临时子群体之间的互换更迭。
步骤1003-6,确定收敛条件。上文提到算法收敛的条件即为优胜子群体的得分不再变化且与临时子群体之间不再产生更迭,即满足条件,执行步骤1003-7;否则,返回步骤1003-3。
步骤1003-7,得到最优解。当算法整体符合收敛条件时,MEA算法整体结束,最终得分最高的个体元素。
步骤1004,使用验证集对优化后的BP神经网络模型进行精度验证;
遗传神经网络在构建非线性关系方面表现出较强的能力,能够比单个模型更好地处理偏差和方差问题,与传统BP神经网络相比,也克服了容易陷入局部极端的缺点。使用上述方法制作模型后,改变参数提高GA-BP神经网络参数。通过大量对比发现,不同参数的预测效果有一定的差异,但没有出现比较规律性的变化,只能依靠实验来进行确定,精度提高的参数选择如下所示。
激活函数选择结果如表3所示,Sigmoid函数的R
表3BP神经网络模型隐含层节点数优化结果表
选定隐含层节点数及激活函数后,进行最大训练次数的选择,将效果较好可纳入选择的最大训练次数列入表4,可以看出,最大训练次数为5000时训练效果最好,最大训练次数大于10000后,精度也较高,但运行时间变长,最终选择最大训练次数为5000。
表4BP神经网络模型最大训练次数优化结果表
对遗传算法的参数选择进行实验,将效果较好可纳入选择的种群规模列入表5所示,最终选择种群规模为50,进化次数为90。使用遗传算法优化模型后,决定性系数提升,均方根误差也有改进。
表5GA-BP神经网络模型优化结果表
对交叉概率和变异概率参数进行实验,将效果较好可纳入选择的最大训练次数列入表6,最终选择交叉概率为0.35,变异概率为0.30。
表6GA-BP神经网络模型优化结果表
最终模型参数为4个输入层,1个输出层,1个隐含层,8个隐含层节点,最大训练次数为5000,种群规模为50,进化次数为90,交叉概率为0.35,变异概率为0.30,决定性系数达到0.733,均方根误差为6.039,通常认为决定洗系数达到0.7以上即可,如图4所示,可知本模型具有较高的精度。
步骤1005,根据步骤1004验证后的BP神经网络模型预测臭氧浓度;
使用表1相关数据,即温度、湿度、日照强度、大气压、TVOC和O
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
机译: 混合遗传算法优化多个参数的方法,图形匹配分析数据的方法,基于辐射绕射数据和程序的物质估算方法,记录介质和相关设备的方法
机译: 混合遗传算法优化多个参数的方法,图形匹配分析数据的方法,基于辐射绕射数据和程序的物质估算方法,记录介质和相关设备的方法
机译: 混合遗传算法优化多个参数的方法,图案匹配分析数据的方法,基于辐射绕射数据和程序的物质估算方法,记录介质和与之相关的各种设备