一种基于变分自编码器和极限学习机的空气质量预测方法与流程

文档序号:14750359发布日期:2018-06-22 12:32阅读:743来源:国知局

本发明属于数据挖掘技术领域,尤其涉及一种基于变分自编码器和极限学习机的空气质量预测方法。



背景技术:

目前空气质量预测的主要手段是采用数值模拟法,其中CMAQ(Community Multiscale Air Quality)是最流行的方法。数值模拟法通过对空气质量相关因子进行物理的模拟来实现对空气质量的预测。数值模拟法由于采用物理模拟,可以反映出空气质量相关因子对空气质量的影响机制,但是模拟需要进行大量的计算,因此速度很慢。在如今的大数据时代,机器学习已经成为十分重要的预测方法,并已经在很多领域成功的解决了问题。杨思琪等在2017年,尹琪等在2014年分别使用随机森林(Random Forest,RF)和支持向量机(Support Vector Machine,SVM)对空气质量进行了预测,均取得了不错的效果。RF是一种很流行的决策树的集成算法,训练速度快,不需要进行特征选取,并且有较好的泛化能力和精度。然而RF的随机性较强,会使预测精度受到一定影响。SVM使用核函数来解决非线性问题,其中径向基函数效果很好,在传统机器学习中有着较高的精度和泛化性能,但是训练SVM耗时长,而且在大数据集上往往表现较差。近些年来,深度学习成为最流行的机器学习算法,它可以将特征编码为计算机更容易理解的特征,而且在深度学习中预测与特征提取合并为一个整体,这些特性使得深度学习在预测精度上优于传统的机器学习算法。在使用传统机器学习时往往数据被压缩成一维而失去序列特征,2017年范竣翔等利用RNN建立了序列模型实现空气质量预测,完整保留了数据的序列特征。在获取空气质量数据时,往往因为网络卡顿,监测站数据无法更新等问题导致缺失数据较多。在填补缺失值的时候使用均值法、邻近值替代等方法精度很差,插值法在处理连续缺失数据时往往效果很差,这极大的影响了预测算法的精度。



技术实现要素:

本发明要解决的技术问题是,提供一种基于变分自编码器和极限学习机的空气质量预测方法,解决空气质量预测中缺失值填补精度差导致预测精度差的问题,并且利用深度学习技术进一步提高预测精度。

本发明使用变分自编码器(Variational Auto-Encoder,VAE)对空气质量数据进行编码,以最大限度消除缺失数据对预测精度的影响,之后利用循环神经网络(Recurrent Neural Network,RNN)和极限学习机(Extreme Learning Machine,ELM)对空气质量进行预测。VAE是一种自编码器,因此它要将数据编码再解码回原来的数据。与普通自编码器不同的是,VAE还学习了数据的分布,有很强的数据生成与填补能力,并且其编码结果可以将高维数据进行降维,使用编码结果预测空气质量可以减少缺失数据对预测精度的影响。区别于传统的神经网络(全连接网络和卷积神经网络),它在时间轴上实现了参数共享,因此十分适合解决时间序列问题。RNN通常使用长短期记忆(Long Short-Term Memory,LSTM)代替传统神经元作为RNN的基本单元,这样可以实现选择性记忆与遗忘,并且对梯度的更新设立阈值来解决梯度爆炸的问题。RNN的结果往往输入到一个浅层全连接神经网络得到最终的输出,而基于反向传播算法的浅层全连接网络容易陷入局部极值。ELM通过随机初始化输入层与隐藏层的连接权重与偏置,之后使用最小二乘求解输出层与隐藏层的连接权值,ELM的这种训练方法能够取得唯一全局极小值,因此往往能获得较好的泛化性能。在传统的ELM中,隐藏层的激活函数常常采用sigmoid,而近来一些ELM的模型开始使用线性整流单元(Rectified Linear Unit,ReLU)作为激活函数。由于ReLU的稀疏度限制,ELM往往能取得不错的结果,因此本发明也采用ReLU作为激活函数。通过RNN对VAE的编码结果进行特征提取,然后输入ELM中得到最终的预测结果。

一种基于变分自编码器和极限学习机的空气质量预测方法包括如下步骤:

步骤1、获取空气质量数据并使用VAE对数据进行编码;

步骤2、将编码后的数据划分为训练数据和测试数据。

步骤3、训练RNN对编码后的空气质量进行处理,将RNN的输出结果输入到一个全连接神经网络中;

步骤4、将训练完成的RNN的输出结果输入ELM,并训练ELM;

步骤5、将测试数据输入RNN中,之后将RNN的所有输出结果输入到ELM中获取最终的输出结果。

本发明所能达到的效果:

本发明通过使用VAE对空气质量的数据的缺失值进行处理,然后利用RNN和ELM对空气质量进行预测。使用VAE对空气质量数据进行处理可以减少缺失值对预测精度的影响,进而提高预测精度。利用RNN对空气质量数据进行处理可以有效利用数据中的序列信息,并且通过ELM取代全连接神经网络解决全连接神经网络容易陷入局部极值的问题来提高泛化性能。ReLU作为隐藏层的激活函数可以对ELM的隐藏层加以稀疏度限制,使得网络的泛化能力得到进一步提升。利用VAE处理缺失值并利用RNN和ELM对空气质量进行预测的方式可以提高模型的泛化性能和预测精度。

附图说明

图1基于变分自编码器与极限学习机的空气质量预测方法的流程图

图2LSTM单元的内部结构图

具体实施方式

以空气质量预测为例,以下是结合实例与附图对本发明的详细说明。

本发明使用一台PC机,并且需要拥有足够计算能力的GPU来加速训练。如图一所示,本发明提供的一种基于变分自编码器和极限学习机的空气质量预测方法具体步骤如下:

步骤1、获取空气质量数据并使用VAE对数据进行编码

1)使用任意方法获取空气质量数据,一般包括天气数据和污染物数据。

2)用未缺失的数据构建VAE的输入Xvae={x1,x2,…xi,...xn},由于VAE属于自编码,因此输出向量也是X。X中的每一个变量代表一个输入向量,向量的元素是与空气质量相关的因子,如风力,风向,二氧化硫浓度等。X取当前时刻空气质量相关因子的历史数据和天气预报的预报值。

3)构建VAE的编码器。编码器由输入层、编码层和输出层构成,其中输出层输出两个m维的向量分别是m个高斯分布的均值与方差的对数。初始化编码层与输入层的权值encodeW和偏置encodeb。编码层与两个输出向量之间的权值分别为meanW,varlogW以及偏置meanb与varlogb。因此编码过程可以表示为:

encode=g(X*encodeW+encodeb)

mean=g(encode*meanW+meanb)

varlog=g(encode*varlogW+varlogb)

其中g表示激活函数。

4)构建解码器的输入Z。由于Z服从N(mean,exp(varlog))使得mean和varlog不可导,因此从标准正态分布N(0,1)中随机采样ε。这样解码器的输入变为:

Z同时也是VAE的编码结果。

5)构建解码器并训练。解码器的构造与编码器类似,不同点是解码器的输出为向量即X的近似。整个VAE还需要使用KL散度对mean和varlog进行限制,因此模型的损失函数为:

损失函数的意义是对输入与输出相似度的度量,损失函数越小说明输入与输出越接近,即自编码器的编码结果可以尽可能的还原输入。使用梯度下降以及反向传播算法极小化loss。

6)处理缺失值。将有缺失数据的缺失项补0,并输入VAE进行编码

步骤2、将编码后的数据划分为训练数据和测试数据。

将空气质量数据分为训练数据和测试数据两个部分,由于空气质量数据是连续的,因此在划分时不能将数据打乱或者随机划分。训练数据用来对模型进行训练,测试数据用于测试模型的性能。

步骤3、使用训练数据训练RNN,将RNN所有的输出结果输入一个三层全连接神经网络。参照图2中的LSTM结构进行说明。

1)构建RNN的输入,X={x1,x2,...xi,...xt},t为序列长度,假设要使用72个小时的空气质量数据,则序列长度为72,每一个x代表一个向量,向量的元素为VAE的编码结果。模型的期望输出为Y,即每个时刻的空气质量。

2)初始化LSTM的状态C和输出h为随机值。

3)计算遗忘门ft的值。遗忘门用来选择性遗忘一些信息,如当前时刻起风了,则忘记之前没有起风的信息。遗忘门的计算公式为:

ft=σ(Wf*[ht-1,xt]+bf)

其中ht-1为上一时刻的输出结果,也就是从序列中提取到的特征。Wf和bf分别为权值与偏置,[]表示将两个向量拼接。σ

为激活函数,其定义如下:

4)计算输入门it和候选状态的值。输入门控制RNN需要更新什么,例如现在起风了,RNN要将起风的状态更新到LSTM单元的状态中。候选状态是要让上次的输出和本次的输入一起参与状态的更新。输入门的值与候选状态的值由如下公式给出:

it=σ(Wi*[ht-1,xt]+bi)

Wi,bi,Wc,bC分别代表不同值的权值与偏置。tanh为激活函数,其定义为:

5)更新LSTM单元的状态Ct。根据ft的值决定新的状态要遗忘什么,根据it和的值来决定更新什么,比如忘记无风的状态,更新有风的状态。Ct的值由如下公式计算:

6)确定LSTM单元的输出值ht。新的状态Ct,上一时刻的输出ht-1和当前的输入xt共同决定了这一步的输出。在本例中,这个单元遇到了起风的状态,那么它会倾向于输出一个让空气质量变好的特征向量。ht由如下公式计算:

ht=σ(Wo*[ht-1,xt]+bo)*tanh(Ct)

7)根据序列长度不断递推结果,直到序列结束,将RNN的每个时间点的输出结果输入到一个三层全连接神经网络,最终的结果由下面的公式计算:

h1=W1*[houtput1,...,houtputt]+b1

output=W2*h1+b2

其中h1代表隐藏层的激活值,houtput为每个时间点的输出结果,W1和b1分别代表输入层和隐藏层的权值和偏置,W2和b2为隐藏层和输出层的权值和偏置。output为最终的输出。

8)训练RNN。使用反向传播算法更新模型中的权值与偏置,直到网络收敛。

步骤4、将训练完成的RNN的所有输出结果拼接为一个向量输入ELM,并训练ELM

1)获取RNN输出层的值,这些值就是使用RNN提取到的空气质量相关因子的抽象特征。将RNN输出层的值作为输入。

2)随机初始化ELM输入层与隐藏层的权值W与偏置b,并计算隐藏层的激活值:

H=W*[houtput1,...,houtputt]+b

3)使用最小二乘法求解隐藏层与输出层之间的权值β:

4)获取模型最后的输出结果T:

T=(W*[houtput1,...,houtputt]+b)*Y

步骤5、使用测试数据测试模型得到最后的结果

将测试数据输入RNN中,之后将RNN的所有输出结果输入到ELM中获取最终的输出结果。

以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1