CN115688579B - 一种基于生成对抗网络的流域多点水位预测预警方法 - Google Patents
一种基于生成对抗网络的流域多点水位预测预警方法 Download PDFInfo
- Publication number
- CN115688579B CN115688579B CN202211356949.6A CN202211356949A CN115688579B CN 115688579 B CN115688579 B CN 115688579B CN 202211356949 A CN202211356949 A CN 202211356949A CN 115688579 B CN115688579 B CN 115688579B
- Authority
- CN
- China
- Prior art keywords
- data
- water level
- discriminator
- dimension
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 title claims abstract description 177
- 238000000034 method Methods 0.000 title claims abstract description 97
- 239000002245 particle Substances 0.000 claims abstract description 98
- 238000012549 training Methods 0.000 claims abstract description 62
- 238000012360 testing method Methods 0.000 claims abstract description 21
- 238000005457 optimization Methods 0.000 claims abstract description 14
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 12
- 238000007781 pre-processing Methods 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 47
- 239000013598 vector Substances 0.000 claims description 36
- 238000011144 upstream manufacturing Methods 0.000 claims description 29
- 230000007246 mechanism Effects 0.000 claims description 26
- 238000012544 monitoring process Methods 0.000 claims description 21
- 239000011159 matrix material Substances 0.000 claims description 20
- 238000010606 normalization Methods 0.000 claims description 12
- 210000002569 neuron Anatomy 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000013528 artificial neural network Methods 0.000 claims description 7
- 125000004122 cyclic group Chemical group 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 230000004913 activation Effects 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims description 4
- 238000012417 linear regression Methods 0.000 claims description 4
- 238000010219 correlation analysis Methods 0.000 claims description 3
- 230000007787 long-term memory Effects 0.000 claims description 3
- 230000006403 short-term memory Effects 0.000 claims description 3
- 238000012935 Averaging Methods 0.000 claims description 2
- 230000003042 antagnostic effect Effects 0.000 claims 1
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 238000011156 evaluation Methods 0.000 description 10
- 238000013136 deep learning model Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000007547 defect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000000087 stabilizing effect Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008485 antagonism Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008033 biological extinction Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000001932 seasonal effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A10/00—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE at coastal zones; at river basins
- Y02A10/40—Controlling or monitoring, e.g. of flood or hurricane; Forecasting, e.g. risk assessment or mapping
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于生成对抗网络的流域多点水位预测预警方法,包括:1、获取历史窗口内的流域水位数据作为模型的输入数据;对数据进行预处理,再利用时间序列分解方法构造特征工程,扩展模型可利用的特征数据,然后对数据进行归一化处理,并利用滑动窗口将数据处理成符合模型输入的格式,而后构成数据集并划分为训练集和测试集;2、构建生成器和鉴别器,在真实数据上训练鉴别器,在生成器输出的预测数据上训练鉴别器,形成基于生成对抗网络的水位预测模型;通过粒子群优化算法对模型参数进行优化,得到最优的水位预测模型;3、调用优化后的水位预测模型进行流域水位预测,得到流域水位预测值。该方法有利于提高流域多点水位预测的准确性。
Description
技术领域
本发明属于流域水位预测技术领域,具体涉及一种基于生成对抗网络的流域多点水位预测预警方法。
背景技术
河流流域水位预测是各地预防洪涝灾害的必要举措,提升流域水位预测精度能够推进河流流域的水利设施建设,尤其对环境承载能力较低的地区具有更加重要的意义。多数河流干道或支流受到各类工程的影响导致流域水位非线性变化加剧,传统的机器学习方法无法较好的拟合非线性、非平稳的时间序列曲线。传统机器学习方式具有一定的延迟性,且对于数据的利用比较片面,忽略了采集的流域多点各项指标,导致耗费巨大资源与采集到的多下游多流域点的数据搁置,同时还需投入资源维护流域环境。在流域多点水位调整过程中,仅能进行实时规整,不能依据流域多点未来水位的变化趋势进行流域多点水位调整,无法针对性地预测出要超过警戒的水位值及其地理位置,从而实现对汛期及其他自然灾害的预防。
流域水位预测模型,围绕着流域水域中多个监测点的水位预测工作进行,传统方法针对流域水位控制只能通过固定的实践经验与数学公式结合实时降雨量与泄洪量水位值来调整源头水库的水量来规整流域水位,只能做到实时规整,无法充分利用源头水库未来降雨和泄洪的数据来根据流域多监测点未来水位的变化趋势进行流域多点水位调整,因此,该技术方案具有以下三个缺点:
1、数学公式的计算方式较为固定。传统的流域多点水位规整方法根据实时采集的源头水库与流域水位数据直接套公式获得对源头水库泄洪量的反馈,会有延时性的缺陷,无法对流域水位未来一天或几天的水位进行预测。
2、传统方法很难进行流域多点预测,受单变量预测输出的限制。很大程度上对实践经验具有依赖性,流域水位在自然灾害发生时升高具有一定的突发性与不可预测性,缺乏客观有效的未来水位预测。
3、对于采集的源头水库与流域水位数据利用率较低,造成数据资源浪费,传统方法无法利用未来降雨量和未来泄洪量的数据,前者可以通过天气预报获得较为精准的估计,后者则是人为可控制的。
发明内容
本发明的目的在于提供一种基于生成对抗网络的流域多点水位预测预警方法,该方法有利于提高流域多点水位预测的准确性。
为实现上述目的,本发明采用的技术方案是:一种基于生成对抗网络的流域多点水位预测预警方法,包括以下步骤:
步骤1、获取历史窗口内的流域水位数据作为模型的输入数据;对数据进行预处理,再利用时间序列分解方法构造特征工程,扩展模型可利用的特征数据,然后对数据进行归一化处理,并利用滑动窗口将数据处理成符合模型输入的格式,而后构成数据集并划分为训练集和测试集;
步骤2、构建生成器和鉴别器,在真实数据上训练鉴别器,在生成器输出的预测数据上训练鉴别器,形成基于生成对抗网络的水位预测模型;通过粒子群优化算法对模型参数进行优化,得到最优的水位预测模型;
步骤3、调用优化后的水位预测模型进行流域水位预测,得到流域水位预测值。
进一步地,步骤1中,获取的流域水位数据包括流域源头水库的降雨量、泄洪量数据和流域多个监测点水位数据。
进一步地,步骤1中,对数据进行预处理的具体方法为:将数据按采集时间进行排序;删除数据中的无用特征;对于存在缺失值的数据,采用缺失值的前一个值对缺失值进行填补。
进一步地,步骤1中,利用时间序列分解方法构造特征工程的具体方法为:
利用时间序列分解方法将时序序列分解为三部分:季节项、趋势项、残差项(residue);当要估计某个响应变量值时,先从其预测变量附近取一个数据子集,然后对该子集进行线性回归或二次回归,回归时采用加权最小二乘法,即越靠近估计点的值其权重越大,最后利用得到的局部回归模型来估计响应变量的值;用这种方法进行逐点运算得到整条拟合曲线;再通过皮尔逊相关系数方法进行流域上下游水位与上下游季节项、上下游趋势项、上下游残差项的相关性分析,将分解后的趋势项与季节项当作特征加入到数据集中;设上下游水位分别为:
Wu(wu1,wu2,…,wun),Wd(wd1,wd2,…,wdn) (1)
设上游季节项、上游趋势项、上游残差项、下游季节项、下游趋势项、下游残差项分别为:
Sun(su1,su2,…,sun),Tun(tu1,tu2,…,tun),Run(ru1,ru2,…,run) (2)
Sdn(sd1,sd2,…,sdn),Tdn(td1,td2,…,tdn),Rdn(rd1,rd2,…,rdn) (3)
皮尔逊相关系数ρ等于两个变量的协方差除于两个变量的标准差,其函数表达式如下:
式中,ρ表示皮尔逊相关系数,X、Y表示数据组,D(X)、D(Y)分别表示X、Y数据组的方差,xi、yi为数据组中的元素,为数据组的均值;通过采用皮尔逊相关系数方法来检验水位影响因子与水位的相关性,并根据皮尔逊相关系数矩阵来选择影响水位的关键影响因子,作为模型的输入特征。
进一步地,步骤1中,对数据进行归一化处理的具体方法为:
对数据集中每个特征变量数据依次进行最大最小值归一化处理排序后,该数据集为一组值在0到1之间的时间序列,其采集时间设为Ti其中(i=0,1,2,…,N);最大最小值归一化预处理:
在公式(5)中,X为待归一化数据,Xmin和Xmax分别表示待归一化数据中的最大值和最小值,最终将数据映射到0和1之间后,作为特征数据输入模型进行训练;
输入数据执行的任务如下:以当天源头水库泄洪量和降雨量、流域多点K个监测点水位作为一个时间点的特征,通过过去N天的特征预测未来一天中K个监测点的水位;将数据处理成符合模型输入格式:多个监测点的特征被分别处理为F*D形状的矩阵,其中F为特征维度,D为总天数;随后使用一个大小为N的输入滑动窗口,在时间流逝方向进行滑动,滑动步长为1,N即为过去天数,每滑动一个步长形成新的样本特征,作为模型的输入;使用一个大小为1的标签滑动窗口在时间流逝方向进行滑动,每滑动一个步长形成新的样本标签,标签值为一天监测点特征的水位值;再以一定比例将数据集分割为训练集和测试集。
进一步地,步骤2中,构建生成器和鉴别器的具体方法为:
模型输入数据通过生成器编码器、鉴别器编码器两个主要模块提取特征;
设xt为包含该时刻水位信息的特征向量,利用一个给定的历史水位数据窗口c={x0,..,xt},即ρ(xt+1|c),提前一步预测xt+1向量的概率分布,根据回溯窗口时间段的时序水位信息来预测下一时刻xt+1向量内包含的水位信息;利用条件生成对抗网络来建模ρ(xt+1|c);生成器与鉴别器均采用包含循环神经网络、长短期记忆网络和门控循环单元的可选模块;将注意力机制嵌入生成器与鉴别器,以学习并确定重点关注的特征;将回溯窗口内的历史水位数据作为条件提供给生成器和鉴别器;其中,生成器从均值为0和标准差为1的高斯分布中采样取得噪声向量,对条件窗口c预测下一时刻的水位信息特征向量;鉴别器取到预测值xt+1predicted向量,并检查它是否是一个遵循c的有效值;在此之前,模型还提取回溯窗口下一时刻的真实数据作为标签xt+1real对鉴别器进行训练以提升鉴别器对标签xt+1real和预测值xt+1predicted的区分能力;ForGAN值函数为:
构建生成器的过程为:
数据预处理:使用正态分布构建一个与原来训练标签数据大小相同的噪声矩阵,维度为[B,F],作为假的标签数据,与真实训练特征数据放入生成器中;对特征数据进行归一化;LSTM/GRU/RNN可选模块将维度调整为[L,B,F]的大小,以输入LSTM/GRU/RNN可选模块获得[L,B,E]的输出,其中E为生成器可选模块的隐藏层维度,取出最后一个位置的数据,并改变维度为[B,1,E];注意力机制把LSTM的结果送入attention中;然后取出最后时刻的数据,放入attention中,获得[B,E]的结果,并与噪声数据进行拼接,获得[B,E+F]的维度;后处理:将attention输出的数据经过线性层,ReLU函数激活,并通过线性层转换为输出维度,进行输出;乘上对应的方差,加上均值后,获得生成器的输出;
全连接层计算公式如下:
在公式(7)中,Dj为第j个输出,f(x)为激活函数,Wji为第j个输出的第i个输入权值参数,εj为第j个输出的偏置参数,n为输入的总数;
构建鉴别器的过程为:
数据预处理:输入的目标数据的数据维度为[B,F],输入的特征数据的数据维度为[B,L,F],对目标数据进行维度扩展,并两者拼接,得到[B,L+1,F]的数据,使用之前计算的均值和方差进行归一化;可选模块将维度调整为[L+1,B,F]的大小,以输入输入LSTM/GRU/RNN可选模块获得[L+1,B,E]的输出,其中E为鉴别器可选模块的隐藏层维度,取出最后一个位置的数据,并改变维度为[B,1,E],送入attention中;注意力机制首先将输入数据使用三个线性层,转化为Q、L、V,均为[B,L,E],然后通过将隐藏层维度除以头数的方式,在隐藏层分出多个头;对维度进行调整,获得[B,h,L,E]的数据,将q和k进行相乘,对k的维度进行调整,调整为[B,h,E,L]的维度,其中,h与head都为注意力头参数;对[batchsize,head,Qlength,Qfeature]与[batchsize,head,Kfeature,Klength]进行相乘,获得[batchsize,head,Qlength,Klength]的结果,即[B,h,L,L],然后对attentionscore根据头数进行归一化,并在特征维度取softmax,并将attentionprobs乘到V上,获得[B,h,L,E]的结果;调整head的维度,变为[batchsize,Qlength,head,Qfeature],将后两项合并为原来的隐藏层维度,即[batchsize,Qlength,Qfeature],最后进行返回;后处理部分:对attention输出的结果进行压缩,获得[B,E],然后经过线性层和一个sigmoid,获得[B,F],作为鉴别器的输出;
注意力分配系数通过attention函数得到;attention函数通过三步得到attentionvalue:Q与K进行相似度函数F计算得到权值S、对上步权值进行归一化、用归一化的权值与V加权求和;
Si=F(Q,Ki) (8)
进一步地,步骤2中,在真实数据上训练鉴别器的具体方法为:
设xt为包含该时刻水位信息的F维特征向量,xt+1true为下一时刻的目标特征向量,设时间段t内的回溯窗口为c={x0,..,xt},从训练数据中随机选择一个batchsize大小为n的窗口向量集合,Bc={c0,...,cn},将目标数据与特征数据同时输入到鉴别器中,对目标数据进行维度扩展,并两者拼接得到c’,c’={x0,..,xt,xt+1true},得到batchsize大小的拼接序列集合,Bc’={c’0,...,c’n},经过可选模块的特征提取和维度调整后送入注意力机制中;最后通过线性层和一个sigmoid函数,获得鉴别器的输出向量{x’0,...,x’n};当前鉴别器输出是根据真实标签获得的,对输出与相同维度的全1标签矩阵做二元交叉熵损失;
在生成器输出的预测数据上训练鉴别器的具体方法为:
使用正态分布构建一个与原来训练标签数据大小相同的维度为y的噪声矩阵noise,与真实训练特征数据放入生成器中,形式表现为{x0,..,xt,xnoise1,...,xnoisey};获得生成器的输出xt+1predication作为虚假的标签数据,并将该虚假的标签数据与真实的数据输入到鉴别器中,形式为{x0,..,xt,xt+1predication},对输出与相同维度的全0标签矩阵做二元交叉熵损失,进行一次鉴别器的更新;将两次的鉴别器损失做平均,以上均进行鉴别器的更新;
生成器与鉴别器的对抗性训练如下函数所示:
进一步地,步骤2中,通过粒子群优化算法对模型参数进行优化的具体方法为:
A1、设定寻优参数:滑动窗口、生成器LSTM/GRU/RNN神经元个数、判别器LSTM/GRU/RNN神经元个数、噪声向量维度、判别器迭代次数学习率、batch_size;
A2、设定粒子位置与速度的取值范围:
回溯长度:最低为1,最高不超过数据总量;神经元个数、噪声向量维度:最低为1,一般最高不超过1024;鉴别器迭代次数:最低为0,最高为64;学习率:最低为大于0,最高为1;Batchsize:最低为1,最高一般不超过512;粒子速度的取值范围设为粒子位置取值范围的20%,使粒子能够遍历更多的位置,增加粒子的个体寻优能力;
A3、使用均方误差MSE作为粒子群的目标函数,搜索令MSE最小的参数组合;
A4、粒子速度更新函数为:
vi=ω×vi+c1×rand()×(pbesti-xi)+c2×rand()×(gbesti-xi) (12)
其中ω为惯性权重,c1为个体学习因子,c2为群体学习因子,rand()为[0,1)之间的随机数,pbesti为粒子的历史最优位置,gbesti为粒子的种群的历史最优位置,xi为粒子当前位置;
粒子位置更新函数为:
xi=xi+vi (13)
ω为非负数,较大时,全局寻优能力强,局部寻优能力强,较小时,全局寻优能力弱,局部寻优能力强;令其初始值较大,提升全局寻优能力,随着迭代次数的增加,ω逐渐减小,提高局部寻优能力;令当前惯性权重为ωi,最大惯性权重为ωmax,最小惯性权重为ωmin,当前迭代次数为iter,最大迭代次数为itermax,则当前惯性权重表示为:
学习因子c1、c2一般取2,确保c1×rand()与c2×rand()的期望值为1;
A5、初始化粒子位置与速度:在寻优参数的取值范围内,随机初始化参数;在能够判断出粒子的最优解在某一范围时,则在此范围初始化粒子,以缩短优化的收敛时间;
A6、计算每个粒子的目标函数值:将每个粒子输入模型,得到每个粒子在时间序列条件生成对抗模型中的测试集预测值,并计算出每个粒子对应的MSE;
A7、更新粒子的个体最优与种群最优位置:若当前粒子比该粒子历史最优位置的MSE更小,则更新该个体最优MSE;若当前种群最优个体比种群最优位置的MSE更小,则更新种群最优MSE;
A8、更新每个粒子的速度和位置:根据公式更新每个粒子的速度,再使用更新后的速度更新粒子的位置;
vi=ω×vi+c1×rand()×(pbesti-xi)+c2×rand()×(gbesti-xi)(15)
xi=xi+vi (16)
A9、判断是否达到终止条件:当最优位置的目标函数满足最小容许误差即停止迭代。
进一步地,步骤3中,调用优化后的水位预测模型进行流域水位预测,输入数据字段包括每个测点时间归一化后的源头水库降雨量、泄洪量和流域多点水位,模型将返回这些测点的流域水位预测值。
与现有技术相比,本发明具有以下有益效果:
1.本提案提出的一种基于生成对抗网络的流域多点水位预测预警方法,利用对抗性训练和加入注意力机制的方式,学习数据结构潜在的分布特征,使得循环神经网络充分挖掘每个监测点历史属性的关联特征,同时缓解了小型数据集面临的训练局限的问题,从而得到对流域多点水位预测更为准确数据特征信息。
2.本方法根据源头水库历史与未来降雨量和泄洪量、流域多监测点水位数据,挖掘出包含着能预测出流域多点水位未来变化情况的数据结构特征,得到未来流域多点水位预测值,不仅有效地利用未来降雨量和未来泄洪量的数据,还解决了现有方法存在延时性,无法对流域水位未来水位进行预测的缺陷;本方法降低了对经验的依赖,同时有效的提高了鲁棒性、泛化能力及准确率。
3.本方法利用粒子群优化算法搜寻基于时间序列条件生成对抗网络与注意力机制的水位预测模型的最优参数,增强模型的鲁棒性,且极大的节约了寻参的时间与资源。
4.本方法应用STL分解特征工程技术对有限的数据特征进行变换,拓展模型可利用的特征数据,提高了模型与数据集二者的利用率,对模型预测精度进行了进一步的提升。
附图说明
图1是本发明实施例的方法实现流程图。
图2是本发明实施例中STL分解可视化示意图。
图3是本发明实施例中执行任务时的数据读取过程示意图。
图4是本发明实施例中水位预测模型的实现流程图。
图5是本发明实施例中生成器的LSTM特征编码层示意图。
图6是本发明实施例中生成器的实现流程图。
图7是本发明实施例中鉴别器的LSTM特征编码层示意图。
图8是本发明实施例中鉴别器的实现流程图。
图9是本发明实施例中注意力机制的实现流程图。
图10是本发明实施例中鉴别器架构图。
图11是本发明实施例中生成器架构图。
图12是本发明实施例中PSO粒子群寻优的实现流程图。
图13是本发明实施例中PSO迭代图。
图14是本发明实施例中任务损失曲线图。
图15是本发明实施例中测试集上游水位拟合曲线图。
图16是本发明实施例中测试集下游水位拟合曲线图。
图17是本发明实施例中反归一化上游拟合曲线图。
图18是本发明实施例中反归一化下游拟合曲线图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
如图1所示,本实施例提供了一种基于生成对抗网络的流域多点水位预测预警方法,包括以下步骤:
步骤1、获取历史窗口内的流域水位数据作为模型的输入数据;对数据进行预处理,再利用时间序列分解方法构造特征工程,扩展模型可利用的特征数据,然后对数据进行归一化处理,并利用滑动窗口将数据处理成符合模型输入的格式,而后构成数据集并划分为训练集和测试集。
步骤2、构建生成器和鉴别器,在真实数据上训练鉴别器,在生成器输出的预测数据上训练鉴别器,形成基于生成对抗网络的水位预测模型;通过粒子群优化算法对模型参数进行优化,得到最优的水位预测模型。
步骤3、调用优化后的水位预测模型进行流域水位预测,得到流域水位预测值。
下面对本方法涉及的相关技术内容作进一步展开说明。
1流域水位数据输入
输入数据包括流域源头水库的降雨量、泄洪量数据和流域多监测点水位数据,流域多监测点水位数据包含K个流域监测点水位值数据。将数据集中数据按采集时间进行排序,排序方式为升序。读取原始数据,删除无用特征如时间、前一天流域上游水位。对于存在缺失值的数据,采用缺失值的前一个值对缺失值进行填补,缺失量不多的情况下进行手工方式填补。具体数据格式如表1、2所示:
表1流域水位数据结构
表2流域水位数据集
进一步拓展可用特征,将流域上、下游水位基于损失的季节性趋势分解技术将时序信号分成三部分:季节项(seasonal)、趋势项(trend)、残差项(residue),如图2所示。STL(SeasonalandTrenddecompositionusingLoess)是以鲁棒局部加权回归作为平滑方法的时间序列分解方法。其中Loess为局部多项式回归拟合,是对两维散点图进行平滑的常用方法,它结合了传统线性回归的简洁性和非线性回归的灵活性。当要估计某个响应变量值时,先从其预测变量附近取一个数据子集,然后对该子集进行线性回归或二次回归,回归时采用加权最小二乘法,即越靠近估计点的值其权重越大,最后利用得到的局部回归模型来估计响应变量的值。用这种方法进行逐点运算得到整条拟合曲线。再通过皮尔逊相关系数方法进行流域上下游水位与上下游季节项、上下游趋势项、上下游残差项的相关性分析,将分解后的趋势项与季节项当作特征加入到数据集中。设上下游水位分别为:
Wu(wu1,wu2,…,wun),Wd(wd1,wd2,…,wdn) (1)
设上游季节项、上游趋势项、上游残差项、下游季节项、下游趋势项、下游残差项分别为:
Sun(su1,su2,…,sun),Tun(tu1,tu2,…,tun),Run(ru1,ru2,…,run) (2)
Sdn(sd1,sd2,…,sdn),Tdn(td1,td2,…,tdn),Rdn(rd1,rd2,…,rdn) (3)
皮尔逊相关系数是一种计算数据组之间线性相关的常用方法。皮尔逊相关系数(用ρ表示)等于两个变量的协方差除于两个变量的标准差,其函数表达式如下:
式中,皮尔逊相关系数用ρ表示,X、Y表示数据组,D(X)、D(Y)分别表示X、Y数据组的方差,xi、yi为数据组中的元素,为数据组的均值。本文采用皮尔逊相关系数方法来检验水位影响因子与水位的相关性,并根据皮尔逊相关系数矩阵来选择影响水位的关键影响因子,作为模型的输入特征。
通过分析,Wu,Wd与Sun,Tun,Run,Sdn,Tdn,Rdn这些特征的相关系数如表3所示:
表3特征相关系数表
Sun | Tun | Run | Sdn | Tun | Rdn | |
Wun | 0.984 | 0.173 | 0.0016 | 0.584 | 0.174 | -0.06 |
Wdn | 0.591 | 0.146 | 0.0042 | 0.99 | 0.178 | 0.047 |
从这些特征的相关系数中可以看出,残差项与上下游水位的相关性比较低,对流域水位的预测并无益处,甚至会产生干扰,在任务中不采纳;季节项和趋势项与水位的相关性较强,能对水位造成明显影响,保留这些特征进行流域水位的预测。
数据特征整理完成后,对数据集中每个监测点的所有变量进行归一化预处理,将数据映射到0和1之间,然后将数据集划分为训练集和测试集,分别重塑为3D数据,再对训练集和测试集进行封装,以备调用;对数据集中每个特征变量数据依次进行最大最小值归一化预处理排序后该数据集为一组值在0到1之间的时间序列,其采集时间设为Ti其中(i=0,1,2,…,N)。最大最小值归一化预处理:
在公式(5)中,X为待归一化数据,Xmin和Xmax分别表示待归一化数据中的最大值和最小值,最终将数据映射到0和1之间后,作为特征数据输入模型进行训练;
输入的数据需要执行的任务如下:以当天源头水库泄洪量和降雨量、流域多点K个监测点水位作为一个时间点(天)的特征,通过过去N天的特征预测未来一天中K个监测点的水位。该任务旨在完全通过历史数据进行预测。进一步地如图3所示,将数据处理成符合模型输入格式:多个监测点(源头水库、流域K个监测点)的特征被分别处理为F*D形状的矩阵,其中F为特征维度,D为总天数。随后使用一个大小为N(默认为4)的输入滑动窗口,在时间流逝方向进行滑动,滑动步长为1,N即为过去天数,每滑动一个步长形成新的样本特征,作为模型的输入;使用一个大小为1的标签滑动窗口在时间流逝方向进行滑动,每滑动一个步长形成新的样本标签,标签值为一天监测点特征的水位值。对于流域水位数据集(包含611组数据)来说依次滑动计算603次。再以7:3的比例将数据集分割为训练集和测试集,其中数据集前70%部分作为训练集,后30%部分作为测试集。
2构建生成器编码层
模型输入数据通过生成器编码器、鉴别器编码器两个主要模块提取特征,主要步骤通过以下流程实现,图4为模型流程图。
设xt为包含该时刻水位信息的特征向量,我们的目标是利用一个给定的历史水位数据窗口c={x0,..,xt},即ρ(xt+1|c),提前一步预测xt+1向量的概率分布,根据回溯窗口时间段的时序水位信息来预测下一时刻xt+1向量内包含的水位信息。我们应用CGAN来建模ρ(xt+1|c)。生成器与鉴别器均采用包含循环神经网络、长短期记忆网络和门控循环单元的可选择模块。将Attention机制嵌入生成器与鉴别器模型,模型可以学习并确定重点关注的特征。将回溯窗口内的历史水位数据作为条件提供给生成器和鉴别器。其中,生成器从均值为0和标准差为1的高斯分布中采样取得噪声向量,对条件窗口c预测下一时刻的水位信息特征向量。鉴别器取到预测值xt+1predicted向量,并检查它是否是一个遵循c的有效值。在此之前,模型还将提取回溯窗口下一时刻的真实数据作为标签xt+1real对鉴别器进行训练以提升鉴别器对标签xt+1real和预测值xt+1predicted的区分能力。因此,ForGAN值函数为:
数据预处理:使用正态分布构建一个与原来训练标签数据大小相同的噪声矩阵,维度为[B,F],作为假的标签数据,与真实训练特征数据放入生成器generator中。对特征数据进行归一化。LSTM/GRU/RNN可选模块(默认为LSTM层)将维度调整为[L,B,F]也就是[Windowlength,batchsize,featuresize]的大小,以输入LSTM/GRU/RNN可选模块获得[L,B,E]的输出,其中E为生成器可选模块的隐藏层维度,取出最后一个位置的数据,并改变维度为[B,1,E]。Attention机制:把LSTM的结果送入attention中。这里生成器可选模块的隐藏层维度为256。然后一样取出最后时刻的数据,放入attention中,获得[B,E]的结果,并与噪声数据进行拼接,获得[B,E+F]的维度。后处理:将Attention输出的数据经过线性层,ReLU函数激活,并通过线性层转换为输出维度,进行输出。乘上对应的方差,加上均值后,获得生成器generator的输出。
全连接层计算公式如下:
在公式(7)中,Dj为第j个输出,f(x)为激活函数,Wji为第j个输出的第i个输入权值参数,εj为第j个输出的偏置参数,n为输入的总数。
3构建鉴别器编码层
数据预处理:输入的目标数据的数据维度为[B,F],输入的特征数据的数据维度为[B,L,F],对目标数据进行维度扩展,并两者拼接,得到[B,L+1,F]的数据,使用之前算的均值和方差进行归一化。LSTM/GRU/RNN可选模块(默认为LSTM层)将维度调整为[L+1,B,F]也就是[length,batchsize,featuresize]的大小,以输入输入LSTM/GRU/RNN可选模块获得[L+1,B,E]的输出,其中E为鉴别器可选模块的隐藏层维度,取出最后一个位置的数据,并改变维度为[B,1,E],送入attention中。Attention机制:Attention部分使用的是multiheadselfattention。首先将输入数据使用三个线性层,转化为Q、L、V,均为[B,L,E],然后通过将隐藏层维度除以头数的方式,在隐藏层分出多个头。对维度进行调整,获得[B,h,L,E]的数据,将q和k进行相乘,这里需要对k的维度进行调整,调整为[B,h,E,L]的维度,其中,h与head都为注意力头参数,因为需要对[batchsize,head,Qlength,Qfeature]与[batchsize,head,Kfeature,Klength]进行相乘,获得[batchsize,head,Qlength,Klength]的结果,也就是[B,h,L,L],然后对attentionscore根据头数进行归一化,并在特征维度取softmax,并将attentionprobs乘到V上,获得[B,h,L,E]的结果。调整head的维度,变为[batchsize,Qlength,head,Qfeature],将后两项合并为原来的隐藏层维度,也就是[batchsize,Qlength,Qfeature],最后进行返回。后处理部分:对attention输出的结果进行压缩,获得[B,E],然后经过线性层和一个sigmoid,获得[B,F],作为discriminator的输出。
注意力分配系数(attentionvalue)可以通过attention函数得到。attention函数可视为一个查询(Query)到一系列键值(key-value)对的映射,其工作机制如下图9所示:attention函数通过三步得到attentionvalue:Q与K进行相似度函数F计算得到权值S、对上步权值进行归一化、用归一化的权值与V加权求和。
Si=F(Q,Ki) (8)
4在真实数据上训练鉴别器
设xt为包含该时刻水位信息的F维特征向量,xt+1true为下一时刻的目标特征向量,设时间段t内的回溯窗口为c={x0,..,xt},从训练数据中随机选择一个batchsize大小为n的窗口向量集合,Bc={c0,...,cn},将目标数据与特征数据同时输入到鉴别器中,对目标数据进行维度扩展,并两者拼接得到c’,c’={x0,..,xt,xt+1true},得到batchsize大小的拼接序列集合,Bc’={c’0,...,c’n},经过循环神经网络、长短期记忆网络和门控循环单元可选择模块的特征提取和维度调整后送入注意力机制中。最后通过线性层和一个sigmoid函数,获得鉴别器的输出向量{x’0,...,x’n}。当前鉴别器输出是根据真实标签获得的,对输出与相同维度的全1标签矩阵做二元交叉熵损失。
5在生成器输出的预测数据上训练鉴别器
使用正态分布构建一个与原来训练标签数据大小相同的维度为y的噪声矩阵noise,与真实训练特征数据放入generator中,形式表现为{x0,..,xt,xnoise1,...,xnoisey}。获得generator的输出xt+1predication作为虚假的标签数据。并将该虚假的标签数据与真实的数据输入到discriminator中,形式为{x0,..,xt,xt+1predication},对输出与相同维度的全0标签矩阵做二元交叉熵损失,进行一次generator的更新。将两次的鉴别器损失做平均,保存起来,以上均进行discriminator的更新。
生成器与鉴别器的对抗性训练如下函数所示:
6模型训练
使用粒子群优化算法(PSO)对模型的七个参数进行寻优。
A1设定寻优参数
滑动窗口、生成器LSTM/GRU/RNN神经元个数、判别器LSTM/GRU/RNN神经元个数、噪声向量维度、判别器迭代次数、学习率、batch_size。
A2设定粒子位置与速度的取值范围
设定粒子位置取值范围。回溯长度:最低为1,最高不超过数据总量。神经元个数、噪声向量维度:最低为1,一般最高不超过1024。鉴别器迭代次数:最低为0,最高为64,一般不取1。学习率:最低为大于0,最高为1,一般不取1。Batchsize:最低为1,最高一般不超过512。粒子速度的取值范围设为粒子位置取值范围的20%,使粒子能够遍历更多的位置,增加粒子的个体寻优能力。
A3定义目标函数
MSE(均方误差)是预测模型最常用的评价指标之一,该值越接近于0,代表模型拟合效果越好。使用MSE作为粒子群的目标函数,搜索令MSE最小的参数组合。
A4设置粒子群算法参数
粒子群算法最核心的两个步骤为粒子速度更新与粒子位置更新。
粒子速度更新函数为:
vi=ω×vi+c1×rand()×(pbesti-xi)+c2×rand()×(gbesti-xi) (12)
其中ω为惯性权重,c1为个体学习因子,c2为群体学习因子,rand()为[0,1)之间的随机数,pbesti为粒子的历史最优位置,gbesti为粒子的种群的历史最优位置,xi为粒子当前位置。
粒子位置更新函数为:
xi=xi+vi (13)
ω为非负数,较大时,全局寻优能力强,局部寻优能力强,较小时,全局寻优能力弱,局部寻优能力强。令其初始值较大,提升全局寻优能力,随着迭代次数的增加,ω逐渐减小,提高局部寻优能力。故令当前惯性权重为ωi,最大惯性权重为ωmax,最小惯性权重为ωmin,当前迭代次数为iter,最大迭代次数为itermax,则当前惯性权重可表示为:
学习因子c1、c2一般取2,确保c1×rand()与c2×rand()的期望值为1。
A5初始化粒子位置与速度
在寻优参数的取值范围内,随机初始化参数。在能够判断出粒子的最优解在某一范围时,则在此范围初始化粒子,以缩短优化的收敛时间。
A6计算每个粒子的目标函数值
将每个粒子输入模型,得到每个粒子在时间序列条件生成对抗模型中的测试集预测值,并计算出每个粒子对应的MSE。
A7更新粒子的个体最优与种群最优位置
若当前粒子比该粒子历史最优位置的MSE更小,则更新该个体最优MSE;若当前种群最优个体比种群最优位置的MSE更小,则更新种群最优MSE。
A8更新每个粒子的速度和位置
根据公式更新每个粒子的速度,再使用更新后的速度更新粒子的位置。
vi=ω×vi+c1×rand()×(pbesti-xi)+c2×rand()×(gbesti-xi) (15)
xi=xi+vi (16)
A9判断是否达到终止条件
由于时序条件生成对抗模型训练结果具有一定随机性,即相同粒子位置每次求得的目标函数都具有差异。该情况下,求出的MSE差距不大的位置都可能被判别为最优位置,收敛位置并不固定,粒子群继续迭代没有意义。因此,当最优位置的目标函数满足最小容许误差即可停止迭代。
图13的PSO迭代图是使用25个粒子进行10次迭代的结果,可见其fitness越来越小,及参数拟合MSE损失曲线的准确率越来越高,在每次迭代后,loss持续下降。
将最优参数、数据特征输入模型,指定输入对应的输出,即明确每个输出对应的预测的水位,使用基于时间序列条件生成对抗网络与注意力机制混合深度学习模型的流域多点水位预测方法进行训练拟合,拟合过程如下:
以均方误差(MSE)作为基于时间序列条件生成对抗网络与注意力机制混合深度学习模型的流域多点水位预测方法的优化目标,在迭代过程中MSE值越来越小,表示模型性能逐步提升。模型损失曲线反映了模型对数据集的拟合情况与迭代损失过程,图14是使用基于时间序列条件生成对抗网络与注意力机制混合深度学习模型的流域多点水位预测方法对流域水位数据集进行300次迭代训练和进行测试的MSE结果展示,train_MSE和test_MSE,可见其损失越来越小,即MSE越来越接近于0,说明基于时间序列条件生成对抗网络与注意力机制混合深度学习模型的流域多点水位预测方法网络预测的未来一天或几天的水位值越贴近真实情况,精度越高。
使用基于时间序列条件生成对抗网络与注意力机制混合深度学习模型的流域多点水位预测方法对流域水位数据集进行未来流域多点水位预测,预测结果拟合如图15至图18所示。
将数据还原为原来数据的量级,以更为直观的与实际值进行对比,加强了模型的可理解性,反归一化后测试集拟合曲线如图17、18所示。
使用该模型对流域水位数据集进行未来流域多点水位预测。图15至图18所显示的评价指标与拟合曲线可知,基于时间序列条件生成对抗网络与注意力机制混合深度学习模型的流域多点水位预测方法预测较为准确,能够达到较为可观的结果。但是,该模型对序列末主峰值的预测仍存在一定的误差,对序列末主峰值的预测超过了实际值。解决这些问题需要调整训练过程,或者使用更大、更准确的可用降雨条件数据集。对于拟合曲线的整体来说,最高点具体数值拟合不好的原因为数据集中一些降雨量过多的天气出现频率较低和一些极端天气在采集数据的日期内未出现过导致供模型训练的样本数较少,无法学习到这样特殊天气的特征。此外,每一个LSTM编码器的cell里面有4个全连接层(MLP),若LSTM的时间跨度大,并且网络又较深,计算量会随之增大,容易造成梯度消失问题。
该方法采用的评价指标包括MAE(平均绝对误差)、MSE(均方误差)、MAPE(平均绝对百分比误差)三种,其定义如下:
在公式(17)至(19)中,其中yi和ti分别表示第i个样本的预测值和真实标签,n表示测试集总样本数。使用MAE(平均绝对误差)、MSE(均方误差)、MAPE(平均绝对百分比误差),模型在流域水位数据集上评估任务1、2结果如表4-5所示,对于该任务,测试集预测评价指标如下表所示:
表4上游水位点评价指标
MAE、RMSE是回归模型的两个常用评价指标,该值越接近于0说明模型拟合的越好。均方根误差是预测值与真实值偏差的平方与观测次数n比值的平方根。衡量的是预测值与真实值之间的偏差,并且对数据中的异常值较为敏感。RMSE=0.4284,该值越接近于0说明模型拟合的越好。MAE=0.3142,该值说明进行n(n=1,2,3,...)次预测,模型产生的误差稳定在0.3658米左右。MAPE表示在经过n次预测后,预测值相对于真实标签平均偏移了2.566%,表示模型有较好的预测效果。
表5下游水位点评价指标
MAE、RMSE是回归模型的两个常用评价指标,该值越接近于0说明模型拟合的越好。均方根误差是预测值与真实值偏差的平方与观测次数n比值的平方根。衡量的是预测值与真实值之间的偏差,并且对数据中的异常值较为敏感。RMSE=0.4693,该值越接近于0说明模型拟合的越好。MAE=0.3079,该值说明进行n(n=1,2,3,...)次预测,模型产生的误差稳定在0.3079米左右。MAPE表示在经过n次预测后,预测值相对于真实标签平均偏移了2.371%,表示模型有较好的预测效果。
步骤7模型利用
读取上一步骤储存在云端或本地的基于时间序列条件生成对抗网络与注意力机制混合深度学习模型的流域多点水位预测方法进行流域水位预测,其中输入数据字段包括每个测点时间归一化后的源头水库降雨量、泄洪量和流域多点水位,模型将返回这些测点的流域水位预测值。
本方法的生成器与鉴别器嵌入注意力机制,注意力网络的主要思想是关注不同时间点对任意时间点的特征生成的贡献程度。在学习了每个时间点与其他时间点之间的相关性后,将所有时间点分配不同的权值系数。输入注意力层的特征维度为F,即所有时间的特征。L为时间长度,E为时间特征的原始维数。首先,计算单个时间点i的注意力系数。一个中心节点i有一个相邻的节点j∈Ni,经过线性变换后分别变为WFi和WFj,则相邻的节点j对节点i的注意系数为:eij=a([WFi||WFj]),j∈Ni。W是线性映射的共享参数,它增强了时间点的特征。[·||·]将节点i和节点j的转换特征连接起来。a(·)将拼接后的高维特征堆叠到一个实数上。显然,eij通过可训练参数W和映射a(·)表示相邻点j对中心点i的新特征的重要性,并学习了节点i和节点j之间的相关性。当节点i有多个相邻点时,我们对相关系数进行归一化,以避免注意系数过多不利于训练的问题。同时,为了推广模型的拟合能力,可以在线性变化后经过SoftMax非线性激活函数。然后对邻居节点特征进行加权和,得到新的时间点特征。
本方法提出了一种能预测流域多点未来水位数据的基于时间序列条件生成对抗网络与注意力机制混合深度学习模型的流域多点水位预测预警方法。本方法根据历史与未来水库降雨量、泄洪量等水库方面的信息与流域多点水位数据,挖掘出包含着能预测出流域多点水位未来变化情况的数据结构特征,并重点将流域多点特征水位信息纳入模型进行训练,同时进行多次评估,有效的提高了泛化能力及准确率。同时,将以上数据作为模型的输入特征,训练完成后该模型在使用过程中受外部环境影响较小,具有一定的鲁棒性。该模型生成器与鉴别器包含长短期记忆网络(LSTM)与门循环单元(GRU)、循环神经网络(RNN)混合模型,其中循环神经网络的使用旨在通过对抗性训练挖掘每个监测点历史属性的关联特征。该模型加入了注意力机制具有准确度高、运算快的特点。而且,本方法使用基于条件生成对抗网络与注意力混合模型架构,即鉴别器在真实数据与预测数据上都进行训练使得拟合值不断贴近真实值,该架构能有效的提取向量矩阵中的时间信息特征与空间结构特征,从而得到对流域多点水位预测更为准确数据信息,同时提高了模型的流域多点水位预测准确率。
本方法利用PSO粒子群算法对训练模型中的参数进行寻优,针对影响拟合结果较大的超参数例如学习率、生成器与鉴别器神经元数量、回溯窗口等寻找最优结果。PSO算法没有交叉和变异运算,依靠粒子速度完成搜索,并且在迭代进化中只有最优的粒子把信息传递给其它粒子,搜索速度快,且具有记忆性,粒子群体的历史最好位置可以记忆并传递给其它粒子,需调整的参数较少,结构简单,易于工程实现,采用实数编码,直接由问题的解决定,问题解的变量数直接作为粒子的维数。
本方法对可利用的数据特征加入特征工程,主要从三个角度构造特征工程:首先利用STL技术分解监测点水位,STL是一种滤波方式可以把时间序列分解为趋势项、季节项和剩余项,包含一系列局部加权回归平滑器,计算速度比较快,可以应对较长的的时间序列数据。
本方法中的混合模型能够克服单一模型的局限,可以更准确地捕捉水位数据的时序特征,有效提高预测的准确度,具有更好的泛化能力。该模型成遵循相同概率分布的合成数据,使人工数据贴近真实数据解决应用小型流域水位数据集面临的数据稀缺问题,从输入的数据集时序样本中学习到未来数据的概率分布。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
Claims (8)
1.一种基于生成对抗网络的流域多点水位预测预警方法,其特征在于,包括以下步骤:
步骤1、获取历史窗口内的流域水位数据作为模型的输入数据;对数据进行预处理,再利用时间序列分解方法构造特征工程,扩展模型可利用的特征数据,然后对数据进行归一化处理,并利用滑动窗口将数据处理成符合模型输入的格式,而后构成数据集并划分为训练集和测试集;
步骤2、构建生成器和鉴别器,在真实数据上训练鉴别器,在生成器输出的预测数据上训练鉴别器,形成基于生成对抗网络的水位预测模型;通过粒子群优化算法对模型参数进行优化,得到最优的水位预测模型;
步骤3、调用优化后的水位预测模型进行流域水位预测,得到流域水位预测值;
步骤2中,构建生成器和鉴别器的具体方法为:
模型输入数据通过生成器编码器、鉴别器编码器两个主要模块提取特征;
设xt为包含当前时刻水位信息的特征向量,利用一个给定的历史水位数据窗口c={x0,..,xt},即ρ(xt+1|c),提前一步预测xt+1向量的概率分布,根据回溯窗口时间段的时序水位信息来预测下一时刻xt+1向量内包含的水位信息;利用条件生成对抗网络来建模ρ(xt+1|c);生成器与鉴别器均采用包含循环神经网络、长短期记忆网络和门控循环单元的可选模块;将注意力机制嵌入生成器与鉴别器,以学习并确定重点关注的特征;将回溯窗口内的历史水位数据作为条件提供给生成器和鉴别器;其中,生成器从均值为0和标准差为1的高斯分布中采样取得噪声向量,对条件窗口c预测下一时刻的水位信息特征向量;鉴别器取到预测值xt+1predicted向量,并检查它是否是一个遵循c的有效值;在此之前,模型还提取回溯窗口下一时刻的真实数据作为标签xt+1real对鉴别器进行训练以提升鉴别器对标签xt+1real和预测值xt+1predicted的区分能力;ForGAN值函数为:
构建生成器的过程为:
数据预处理:使用正态分布构建一个与原来训练标签数据大小相同的噪声矩阵,维度为[B,F],作为假的标签数据,与真实训练特征数据放入生成器中;对特征数据进行归一化;LSTM/GRU/RNN可选模块将维度调整为[L,B,F]的大小,以输入LSTM/GRU/RNN可选模块获得[L,B,E]的输出,其中E为生成器可选模块的隐藏层维度,取出最后一个位置的数据,并改变维度为[B,1,E];注意力机制把LSTM的结果送入attention中;然后取出最后时刻的数据,放入attention中,获得[B,E]的结果,并与噪声数据进行拼接,获得[B,E+F]的维度;后处理:将attention输出的数据经过线性层,ReLU函数激活,并通过线性层转换为输出维度,进行输出;乘上对应的方差,加上均值后,获得生成器的输出;
全连接层计算公式如下:
在公式(7)中,Dj为第j个输出,f(x)为激活函数,Wji为第j个输出的第i个输入权值参数,εj为第j个输出的偏置参数,n为输入的总数;
构建鉴别器的过程为:
数据预处理:输入的目标数据的数据维度为[B,F],输入的特征数据的数据维度为[B,L,F],对目标数据进行维度扩展,并两者拼接,得到[B,L+1,F]的数据,使用之前计算的均值和方差进行归一化;可选模块将维度调整为[L+1,B,F]的大小,以输入输入LSTM/GRU/RNN可选模块获得[L+1,B,E]的输出,其中E为鉴别器可选模块的隐藏层维度,取出最后一个位置的数据,并改变维度为[B,1,E],送入attention中;注意力机制首先将输入数据使用三个线性层,转化为Q、L、V,均为[B,L,E],然后通过将隐藏层维度除以头数的方式,在隐藏层分出多个头;对维度进行调整,获得[B,h,L,E]的数据,将q和k进行相乘,对k的维度进行调整,调整为[B,h,E,L]的维度,其中,h与head都为注意力头参数;对[batch size,head,Q length,Q feature]与[batch size,head,Kfeature,Klength]进行相乘,获得[batch size,head,Qlength,Klength]的结果,即[B,h,L,L],然后对attention score根据头数进行归一化,并在特征维度取softmax,并将attentionprobs乘到V上,获得[B,h,L,E]的结果;调整head的维度,变为[batch size,Q length,head,Q feature],将后两项合并为原来的隐藏层维度,即[batch size,Q length,Q feature],最后进行返回;后处理部分:对attention输出的结果进行压缩,获得[B,E],然后经过线性层和一个sigmoid,获得[B,F],作为鉴别器的输出;
注意力分配系数通过attention函数得到;attention函数通过三步得到attentionvalue:Q与K进行相似度函数F计算得到权值S、对上步权值进行归一化、用归一化的权值与V加权求和;
Si=F(Q,Ki) (8)
2.根据权利要求1所述的一种基于生成对抗网络的流域多点水位预测预警方法,其特征在于,步骤1中,获取的流域水位数据包括流域源头水库的降雨量、泄洪量数据和流域多个监测点水位数据。
3.根据权利要求1所述的一种基于生成对抗网络的流域多点水位预测预警方法,其特征在于,步骤1中,对数据进行预处理的具体方法为:将数据按采集时间进行排序;删除数据中的无用特征;对于存在缺失值的数据,采用缺失值的前一个值对缺失值进行填补。
4.根据权利要求1所述的一种基于生成对抗网络的流域多点水位预测预警方法,其特征在于,步骤1中,利用时间序列分解方法构造特征工程的具体方法为:
利用时间序列分解方法将时序序列分解为三部分:季节项、趋势项、残差项(residue);当要估计某个响应变量值时,先从其预测变量附近取一个数据子集,然后对该子集进行线性回归或二次回归,回归时采用加权最小二乘法,即越靠近估计点的值其权重越大,最后利用得到的局部回归模型来估计响应变量的值;用这种方法进行逐点运算得到整条拟合曲线;再通过皮尔逊相关系数方法进行流域上下游水位与上下游季节项、上下游趋势项、上下游残差项的相关性分析,将分解后的趋势项与季节项当作特征加入到数据集中;设上下游水位分别为:
Wu(wu1,wu2,…,wun),Wd(wd1,wd2,…,wdn) (1)
设上游季节项、上游趋势项、上游残差项、下游季节项、下游趋势项、下游残差项分别为:
Sun(su1,su2,…,sun),Tun(tu1,tu2,…,tun),Run(ru1,ru2,…,run)(2)
Sdn(sd1,sd2,…,sdn),Tdn(td1,td2,…,tdn),Rdn(rd1,rd2,…,rdn)(3)
皮尔逊相关系数ρ等于两个变量的协方差除于两个变量的标准差,其函数表达式如下:
式中,ρ表示皮尔逊相关系数,X、Y表示数据组,D(X)、D(Y)分别表示X、Y数据组的方差,xi、yi为数据组中的元素,为数据组的均值;通过采用皮尔逊相关系数方法来检验水位影响因子与水位的相关性,并根据皮尔逊相关系数矩阵来选择影响水位的关键影响因子,作为模型的输入特征。
5.根据权利要求1所述的一种基于生成对抗网络的流域多点水位预测预警方法,其特征在于,步骤1中,对数据进行归一化处理的具体方法为:
对数据集中每个特征变量数据依次进行最大最小值归一化处理排序后,该数据集为一组值在0到1之间的时间序列,其采集时间设为Ti其中(i=0,1,2,…,N);最大最小值归一化预处理:
在公式(5)中,X为待归一化数据,X min和X max分别表示待归一化数据中的最大值和最小值,最终将数据映射到0和1之间后,作为特征数据输入模型进行训练;
输入数据执行的任务如下:以当天源头水库泄洪量和降雨量、流域多点K个监测点水位作为一个时间点的特征,通过过去N天的特征预测未来一天中K个监测点的水位;将数据处理成符合模型输入格式:多个监测点的特征被分别处理为F*D形状的矩阵,其中F为特征维度,D为总天数;随后使用一个大小为N的输入滑动窗口,在时间流逝方向进行滑动,滑动步长为1,N即为过去天数,每滑动一个步长形成新的样本特征,作为模型的输入;使用一个大小为1的标签滑动窗口在时间流逝方向进行滑动,每滑动一个步长形成新的样本标签,标签值为一天监测点特征的水位值;再以一定比例将数据集分割为训练集和测试集。
6.根据权利要求1所述的一种基于生成对抗网络的流域多点水位预测预警方法,其特征在于,步骤2中,在真实数据上训练鉴别器的具体方法为:
设xt为包含当前时刻水位信息的F维特征向量,xt+1true为下一时刻的目标特征向量,设时间段t内的回溯窗口为c={x0,..,xt},从训练数据中随机选择一个batch size大小为n的窗口向量集合,Bc={c0,...,cn},将目标数据与特征数据同时输入到鉴别器中,对目标数据进行维度扩展,并两者拼接得到c’,c’={x0,..,xt,xt+1true},得到batch size大小的拼接序列集合,Bc’={c’0,...,c’n},经过可选模块的特征提取和维度调整后送入注意力机制中;最后通过线性层和一个sigmoid函数,获得鉴别器的输出向量{x’0,...,x’n};当前鉴别器输出是根据真实标签获得的,对输出与相同维度的全1标签矩阵做二元交叉熵损失;
在生成器输出的预测数据上训练鉴别器的具体方法为:
使用正态分布构建一个与原来训练标签数据大小相同的维度为y的噪声矩阵noise,与真实训练特征数据放入生成器中,形式表现为{x0,..,xt,xnoise1,...,xnoisey};获得生成器的输出xt+1predication作为虚假的标签数据,并将该虚假的标签数据与真实的数据输入到鉴别器中,形式为{x0,..,xt,xt+1predication},对输出与相同维度的全0标签矩阵做二元交叉熵损失,进行一次鉴别器的更新;将两次的鉴别器损失做平均,以上均进行鉴别器的更新;
生成器与鉴别器的对抗性训练如下函数所示:
7.根据权利要求1所述的一种基于生成对抗网络的流域多点水位预测预警方法,其特征在于,步骤2中,通过粒子群优化算法对模型参数进行优化的具体方法为:
A1、设定寻优参数:滑动窗口、生成器LSTM/GRU/RNN神经元个数、判别器LSTM/GRU/RNN神经元个数、噪声向量维度、判别器迭代次数学习率、batch_size;
A2、设定粒子位置与速度的取值范围:
回溯长度:最低为1,最高不超过数据总量;神经元个数、噪声向量维度:最低为1,一般最高不超过1024;鉴别器迭代次数:最低为0,最高为64;学习率:最低为大于0,最高为1;Batchsize:最低为1,最高一般不超过512;粒子速度的取值范围设为粒子位置取值范围的20%,使粒子能够遍历更多的位置,增加粒子的个体寻优能力;
A3、使用均方误差MSE作为粒子群的目标函数,搜索令MSE最小的参数组合;
A4、粒子速度更新函数为:
vi=ω×vi+c1×rand()×(pbesti-xi)+c2×rand()×(gbesti-xi) (12)
其中ω为惯性权重,c1为个体学习因子,c2为群体学习因子,rand()为[0,1)之间的随机数,pbesti为粒子的历史最优位置,gbesti为粒子的种群的历史最优位置,xi为粒子当前位置;
粒子位置更新函数为:
xi=xi+vi (13)
ω为非负数,较大时,全局寻优能力强,局部寻优能力强,较小时,全局寻优能力弱,局部寻优能力强;令其初始值较大,提升全局寻优能力,随着迭代次数的增加,ω逐渐减小,提高局部寻优能力;令当前惯性权重为ωi,最大惯性权重为ωmax,最小惯性权重为ωmin,当前迭代次数为iter,最大迭代次数为itermax,则当前惯性权重表示为:
学习因子c1、c2一般取2,确保c1×rand()与c2×rand()的期望值为1;
A5、初始化粒子位置与速度:在寻优参数的取值范围内,随机初始化参数;在能够判断出粒子的最优解在某一范围时,则在此范围初始化粒子,以缩短优化的收敛时间;
A6、计算每个粒子的目标函数值:将每个粒子输入模型,得到每个粒子在时间序列条件生成对抗模型中的测试集预测值,并计算出每个粒子对应的MSE;
A7、更新粒子的个体最优与种群最优位置:若当前粒子比该粒子历史最优位置的MSE更小,则更新该个体最优MSE;若当前种群最优个体比种群最优位置的MSE更小,则更新种群最优MSE;
A8、更新每个粒子的速度和位置:根据公式更新每个粒子的速度,再使用更新后的速度更新粒子的位置;
vi=ω×vi+c1×rand()×(pbesti-xi)+c2×rand()×(gbesti-xi) (15)
xi=xi+vi (16)
A9、判断是否达到终止条件:当最优位置的目标函数满足最小容许误差即停止迭代。
8.根据权利要求1所述的一种基于生成对抗网络的流域多点水位预测预警方法,其特征在于,步骤3中,调用优化后的水位预测模型进行流域水位预测,输入数据字段包括每个测点时间归一化后的源头水库降雨量、泄洪量和流域多点水位,模型将返回这些测点的流域水位预测值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211356949.6A CN115688579B (zh) | 2022-11-01 | 2022-11-01 | 一种基于生成对抗网络的流域多点水位预测预警方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211356949.6A CN115688579B (zh) | 2022-11-01 | 2022-11-01 | 一种基于生成对抗网络的流域多点水位预测预警方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115688579A CN115688579A (zh) | 2023-02-03 |
CN115688579B true CN115688579B (zh) | 2024-02-23 |
Family
ID=85047302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211356949.6A Active CN115688579B (zh) | 2022-11-01 | 2022-11-01 | 一种基于生成对抗网络的流域多点水位预测预警方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115688579B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116562416B (zh) * | 2023-03-01 | 2024-04-12 | 福建中锐汉鼎数字科技有限公司 | 基于变模态与延时特征Transformer模型的水库水位预测方法 |
CN116774005B (zh) * | 2023-05-09 | 2024-02-20 | 浙江大学 | 一种四开关Buck-Boost变换器故障诊断方法及装置 |
CN116502775B (zh) * | 2023-06-27 | 2023-09-19 | 江西省水利科学院(江西省大坝安全管理中心、江西省水资源管理中心) | 一种水文序列增强及预测方法 |
CN116863032B (zh) * | 2023-06-27 | 2024-04-09 | 河海大学 | 一种基于生成对抗网络的洪涝灾害场景生成方法 |
CN116894391A (zh) * | 2023-07-17 | 2023-10-17 | 中国长江三峡集团有限公司 | 一种河道流量计算模型构建和河道流量计算方法及装置 |
CN116597939A (zh) * | 2023-07-17 | 2023-08-15 | 青岛市即墨区人民医院 | 基于大数据的药品质量控制管理分析系统及方法 |
CN117195135B (zh) * | 2023-11-01 | 2024-02-27 | 潍坊德瑞生物科技有限公司 | 一种水污染异常溯源检测方法及系统 |
CN117648671B (zh) * | 2024-01-29 | 2024-04-02 | 西南石油大学 | 一种融合机理模型和实时数据的油井产量预测方法 |
CN118503930A (zh) * | 2024-07-22 | 2024-08-16 | 浙江禹贡信息科技有限公司 | 集成水利大数据的主动式实时水位预测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110097185A (zh) * | 2019-03-29 | 2019-08-06 | 北京大学 | 一种基于生成对抗网络的优化模型方法及应用 |
CN113129148A (zh) * | 2021-04-16 | 2021-07-16 | 北京航空航天大学 | 一种融合生成对抗网络与二维注意力机制的股票预测方法 |
-
2022
- 2022-11-01 CN CN202211356949.6A patent/CN115688579B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110097185A (zh) * | 2019-03-29 | 2019-08-06 | 北京大学 | 一种基于生成对抗网络的优化模型方法及应用 |
CN113129148A (zh) * | 2021-04-16 | 2021-07-16 | 北京航空航天大学 | 一种融合生成对抗网络与二维注意力机制的股票预测方法 |
Non-Patent Citations (3)
Title |
---|
LSTM优化模型的水库水位预测研究;马森标等;福建电脑;第38卷(第5期);第1-8页 * |
严冬梅等.基于生成式对抗神经网络的股票预测研究.计算机工程与应用.2022,第58卷(第13期),第185-194页. * |
基于生成式对抗神经网络的股票预测研究;严冬梅等;计算机工程与应用;第58卷(第13期);第185-194页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115688579A (zh) | 2023-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115688579B (zh) | 一种基于生成对抗网络的流域多点水位预测预警方法 | |
Jiang et al. | Multi-objective algorithm for the design of prediction intervals for wind power forecasting model | |
Zhang et al. | Wind power prediction based on PSO-SVR and grey combination model | |
CN113962364B (zh) | 一种基于深度学习的多因素用电负荷预测方法 | |
CN114254561B (zh) | 一种内涝预测方法、系统及存储介质 | |
CN111612243B (zh) | 交通速度预测方法、系统及存储介质 | |
Todini | A model conditional processor to assess predictive uncertainty in flood forecasting | |
Guo et al. | Multi-step forecasting for wind speed using a modified EMD-based artificial neural network model | |
CN113128113B (zh) | 一种基于深度学习和迁移学习的贫乏信息建筑负荷预测方法 | |
CN109558975A (zh) | 一种电力负荷概率密度多种预测结果的集成方法 | |
Dong et al. | Applying the ensemble artificial neural network-based hybrid data-driven model to daily total load forecasting | |
Li et al. | A novel combined prediction model for monthly mean precipitation with error correction strategy | |
CN112329990A (zh) | 一种基于lstm-bp神经网络的用户用电负荷预测方法 | |
CN111525587A (zh) | 一种基于无功负荷态势的电网无功电压控制方法及系统 | |
CN115860177A (zh) | 基于组合式机器学习模型光伏发电功率预测方法及其应用 | |
He et al. | Short-term runoff prediction optimization method based on BGRU-BP and BLSTM-BP neural networks | |
CN115271253B (zh) | 一种水风光发电功率预测模型构建方法、装置及存储介质 | |
Yao et al. | Wave height forecast method with multi-step training set extension LSTM neural network | |
Ma et al. | An estimating combination method for interval forecasting of electrical load time series | |
He et al. | A cooperative ensemble method for multistep wind speed probabilistic forecasting | |
CN115115125A (zh) | 基于深度学习融合模型的光伏功率区间概率预测方法 | |
Li et al. | Decomposition-ANN methods for long-term discharge prediction based on Fisher’s ordered clustering with MESA | |
Hou et al. | A hybrid machine learning forecasting model for photovoltaic power | |
CN113191526A (zh) | 一种基于随机敏感度的短期风速区间多目标优化预测方法及系统 | |
CN116565850A (zh) | 一种基于qr-blstm的风电功率超短期预测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |