本发明涉及综合管廊技术领域,尤其涉及一种综合管廊内部燃气浓度lstm预测方法及系统。
背景技术:
城市地下综合管廊又称“共同沟”,是敷设于地面下的一种构筑物,它可容纳电信、电力、供水、热力等多种公共管线,并拥有完备的排水、照明、通讯、监控等设施。地下综合管廊是为确保道路功能充分发挥,有效利用城市地下空间,改善城市环境,增强城市防震抗灾能力,确保城市安全运转而产生的市政基础设施。截止到目前,全国各地已经建成的地下综合管廊廊体在1000公里以上;在建地下综合管廊廊体超过5000公里。自1958年建设国内第一条地下综合管廊开始,北京已建成并运营的地下综合管廊有7条,总里程超过20公里。2017年,包含王府井大街地下综合管廊、新机场高速地下综合管廊、世园会园区地下综合管廊在内的7个地下综合管廊项目被列入北京市重点工程。预计到2020年,北京市地下综合管廊建设将初具规模,规划建设区域遍布全市范围。
由于管廊敷设于地下,且各种管线共处于同一密闭环境中,管廊内部环境的各种参数之间存在高度复杂的相互作用,管廊内部环境的各种数据存在不确定性与随机性,因此,采用传统的概率统计法、灰色预测法、马尔科夫链、时间序列法模型无法充分考虑管廊内部环境数据变化的时间序列属性,所以导致综合管廊内燃气浓度预测精度不高,进而出现管廊安全问题。
技术实现要素:
本发明提供的综合管廊内部燃气浓度lstm预测方法及系统,能够通过具有长短期记忆单元的递归神经网络构建模型,适应综合管廊内部燃气浓度数据的动态特性,进而实现对综合管廊内燃气浓度数据长期准确的提前预测,有效地防止因综合管廊内燃气浓度过低引起安全等问题;并且所述方法通用性强、成本低、适用性广泛、适合广泛的推广应用。
第一方面,本发明提供一种综合管廊内部燃气浓度lstm预测方法,包括:
获取综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊位置数据;
对所获取的综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊位置数据进行预处理并形成燃气浓度特征向量;
以relu为激励函数训练lstm模型;
将燃气浓度特征向量输入至lstm模型中并对应输出综合管廊内部燃气浓度的预测数据。
可选地,所述对综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据进行预处理包括:
以时间为基准查找综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据中所缺失的数据并补齐;
将完整的综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据分别进行标准化处理,并形成四维向量。
可选地,所述以时间为基准查找综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据中所缺失的数据并补齐包括:
分别获取综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据对应的时间序列,当所述时间序列有缺失则根据时间序列中第t个时间步对应的缺失时刻、和所述缺失时刻对应的观测值生成缺失标签向量;
根据缺失标签向量和缺失时刻确定缺失时长;
通过缺失时刻的最近有效值
其中,
可选地,所述训练lstm模型包括:
根据relu激励函数确定误差函数;
优化lstm模型参数;
依次建立训练矩阵、初始化lstm模型、编译lstm模型、训练lstm模型和评估lstm模型。
可选地,在所述将燃气浓度特征向量输入至lstm模型中并对应输出综合管廊内部燃气浓度的预测数据之后,所述方法还包括:
将lstm模型中所训练的第一层次的基础上,增加一层与第一层次结构相同的新层次,其中,新层次中以第一层次lstm的输出与初始模型中燃气浓度特征向量作为输入;
对增加新层次后的lstm模型进行训练优化;
在第一层次上逐层增加新的层次并进行训练,直到增加层次使得lstm模型性能不在提升;
由最终获得的lstm模型得出综合管廊内部燃气浓度的最终预测值。
第二方面,本发明提供一种综合管廊内部燃气浓度lstm预测系统,包括:
获取单元,用于获取综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊位置数据;
预处理单元,用于对所获取的综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊位置数据进行预处理并形成燃气浓度特征向量;
模型训练单元,用于以relu为激励函数训练lstm模型;
第一预测单元,用于将燃气浓度特征向量输入至lstm模型中并对应输出综合管廊内部燃气浓度的预测数据。
可选地,所述预处理单元包括:
数据缺失补齐子单元,用于以时间为基准查找综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据中所缺失的数据并补齐;
标准化处理子单元,用于将完整的综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据分别进行标准化处理,并形成四维向量。
可选地,所述数据缺失补齐子单元包括:
标签模块,用于分别获取综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据对应的时间序列,当所述时间序列有缺失则根据时间序列中第t个时间步对应的缺失时刻、和所述缺失时刻对应的观测值生成缺失标签向量;
时长模块,用于根据缺失标签向量和缺失时刻确定缺失时长;
替换模块,用于通过缺失时刻的最近有效值
其中,
可选地,所述模型训练单元包括:
确定子单元,用于根据relu激励函数确定误差函数;
优化子单元,用于优化lstm模型参数;
控制子单元,用于依次建立训练矩阵、初始化lstm模型、编译lstm模型、训练lstm模型和评估lstm模型。
可选地,所述系统还包括:
增加新层单元,用于将lstm模型中所训练的第一层次的基础上,增加一层与第一层次结构相同的新层次,其中,新层次中以第一层次lstm的输出与初始模型中燃气浓度特征向量作为输入;
新层训练优化单元,用于对增加新层次后的lstm模型进行训练优化;
控制单元,用于在第一层次上逐层增加新的层次并进行训练,直到增加层次使得lstm模型性能不在提升;
第二预测单元,用于由最终获得的lstm模型得出综合管廊内部燃气浓度的最终预测值。
本发明实施例提供的综合管廊内部燃气浓度lstm预测方法及系统,所述方法主要是通过具有长短期记忆单元的递归神经网络构建模型,将综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊位置数据转化成综合管廊内部燃气浓度的预测值,其中,综合管廊内部目前燃气浓度、管廊内微生物密度、传感器位置和综合管廊的位置均影响综合管廊内部燃气浓度,例如,当管廊内微生物越多所产生的氨气越多,将增大内部燃气浓度;由于传感器在综合管廊中所设置的位置数据不同导致所测量到的综合管廊内部燃气浓度数据不同;综合管廊设置的南北地域位置的差异导致综合管廊内部燃气浓度。因此,所述方法不仅能够适应综合管廊内部燃气浓度数据的动态特性,进而实现对综合管廊内燃气浓度数据长期准确的提前预测,有效地防止因综合管廊内燃气浓度过低引起安全等问题;并且所述方法通用性强、成本低、适用性广泛、适合广泛的推广应用。
附图说明
图1为本发明一实施例综合管廊内部燃气浓度lstm预测方法的流程图;
图2为本发明另一实施例综合管廊内部燃气浓度lstm预测方法的流程图;
图3为本发明一实施例中relu激励函数图;
图4为本发明一实施例综合管廊内部燃气浓度lstm预测系统的结构示意图;
图5为本发明另一实施例综合管廊内部燃气浓度lstm预测系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种综合管廊内部燃气浓度lstm预测方法,如图1所示,所述方法包括:
s11、获取综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊位置数据;
s12、对所获取的综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊位置数据进行预处理并形成燃气浓度特征向量;
s13、以relu为激励函数训练lstm模型;
s14、将燃气浓度特征向量输入至lstm模型中并对应输出综合管廊内部燃气浓度的预测数据。
本发明实施例提供的综合管廊内部燃气浓度lstm预测方法主要是通过具有长短期记忆单元的递归神经网络构建模型,将综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊位置数据转化成综合管廊内部燃气浓度的预测值,其中,综合管廊内部目前燃气浓度、管廊内微生物密度、传感器位置和综合管廊的位置均影响综合管廊内部燃气浓度,例如,当管廊内微生物越多所产生的氨气越多,将增大内部燃气浓度;由于传感器在综合管廊中所设置的位置数据不同导致所测量到的综合管廊内部燃气浓度数据不同;综合管廊设置的南北地域位置的差异导致综合管廊内部燃气浓度。因此,所述方法不仅能够适应综合管廊内部燃气浓度数据的动态特性,进而实现对综合管廊内燃气浓度数据长期准确的提前预测,有效地防止因综合管廊内燃气浓度过低引起安全等问题;并且所述方法通用性强、成本低、适用性广泛、适合广泛的推广应用。
可选地,如图2所示,所述对综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据进行预处理包括:
s121、查找综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据对应时间序列中所缺失的数据并补齐;
s122、将完整的综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据分别进行标准化处理,并形成四维向量。
具体的,本实施例所述方法由于综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据的更新间隔不一致、数据未能采集到等因素导致某些数据的缺失将影响综合管廊内部燃气浓度预测的准确性;因此,所述方法将首先数据对应时间序列中的缺失数据进行补齐,然后在进一步地对不同数据的格式进行标准化处理;进一步的保证了所述方法将上述数据转化成综合管廊内部燃气浓度预测值的精确性。
可选地,本实施例所述方法为了能够更加全面精确的预测综合管廊内部燃气浓度,并在所述燃气浓度特征向量还可加入时间数据、综合管廊地域燃气使用波动数据;由于在不同的时间、地域燃气的使用会出现波动、也将会导致综合管廊内燃气浓度出现波动。
可选地,所述以时间为基准查找综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据中所缺失的数据并补齐包括:
s1211、分别获取综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据对应的时间序列,当所述时间序列有缺失则根据时间序列中第t个时间步对应的缺失时刻、和所述缺失时刻对应的观测值生成缺失标签向量;
s1212、根据缺失标签向量和缺失时刻确定缺失时长;
s1213、通过缺失时刻的最近有效值
其中,
可选地,所述训练lstm模型包括:
s131、根据relu激励函数确定误差函数;
s132、优化lstm模型参数;
s133、依次建立训练矩阵、初始化lstm模型、编译lstm模型、训练lstm模型和评估lstm模型。
具体的,本实施例在所述根据relu激励函数确定误差函数之前,所述方法还包括:s130、选定并分配数据训练集及测试集;进而能够通过实验测试对学习器的泛化误差进行评估并进而做出选择,则需使用一个“测试集”来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”作为泛化误差的近似,例如,把数据集分成互不相交且保持数据分布基本一致的两部分,一部分是训练集,一部分是测试集;其中,训练集数据的数量应占2/3到4/5;同时为了保证随机性,将数据集多次随机划分为训练集和测试集,然后在对多次划分结果取平均。
然后所述方法再根据relu激励函数确定误差函数,其中,rectifiedlinear函数的定义公式为:
f(x)=max(0,x)
relu函数定义如图3所示,因此,rectifiedlinear函数的导数如下公式所示:
并且,relu激励函数可以缓解过度拟合的问题,因为一部分输入通过神经元的激励函数relu后变成了0,这样就会造成整个神经网络的稀疏性加大,从而减少了参数之间的依赖的关系。
由于在对模型进行训练时,有可能遇到训练数据不够,即训练数据无法对整个数据的分布进行估计的时候,或者在对模型进行过度训练时,常常会导致模型的过拟合。为防止数据训练的过程中出现过拟合现象,先采用dropout算法对相关数据进行处理。
dropout以概率p舍弃神经元并让其它神经元以概率q=1-p保留。每个神经元被关闭的概率是相同的。这意味着:
假设:
h(x)=xw+b
di维的输入x在dh维输出空间上的线性投影;
a(h)是激活函数
在训练阶段中,将假设的投影作为修改的激活函数:
f(h)=d⊙a(h)
其中d=(x1,......,xdh)是dh维的伯努利变量xi,伯努利随机变量具有以下概率质量分布:
其中k是可能的输出。
将dropout应用在第i个神经元上:
其中p(xi=0)=p
由于在训练阶段神经元保持q概率,在测试阶段必须仿真出在训练阶段使用的网络集的行为。
最后,所述方法设置误差函数为平均绝对误差,平均绝对误差是绝对误差的平均值,平均绝对误差能更好地反映预测值误差的实际情况。
fi表示预测值,yi表示真实值。
可选地,在所述优化lstm模型参数之后,所述方法还可包括:
参数权重的更迭;
具体的,本实施例所述方法主要采用梯度下降法的优化算法-adagrad算法,用以在完成一次数据训练后,进行参数权重的更迭,并达到数据拟合最优的结果。
其中,adagrad是一种基于梯度的优化算法,它能够对每个参数自适应不同的学习速率,对稀疏特征,得到大的学习更新,对非稀疏特征,得到较小的学习更新,因此该优化算法适合处理稀疏特征数据。在每个模型参数θi使用相同的学习速率η,adagrad在每一个更新步骤中对于每一个模型参数θi使用不同的学习速率ηi,设第t次更新步骤中,目标函数的参数θi梯度为gt,i,即:
那么sgd更新方程为:
θt+1,i=θt,i-η·gt,i
而adagrad对每一个参数使用不同的学习速率,其更新方程为:
其中,gt,ii是一个对角矩阵,其中第i行的对角元素eii为过去到当前第i个参数θi的梯度的平方和,epsilon是一个平滑参数,为了使得分母不为0(通常ε=1e-8),另外如果分母不开根号,算法性能变差。
进一步,将所有gt,ii,gt的元素写成向量gt,gt,这样便可以使用向量点乘操作:
另外,本实施例所述方法在依次建立训练矩阵、初始化lstm模型、编译lstm模型、训练lstm模型和评估lstm模型中主要是采用keras框架;
s1331、采用numpy工具包的zeros函数来建立训练矩阵,记为x,同时建立训练标签矩阵。
s1332、初始化模型,采用keras框架的线性叠加,层与层之间都是全链接的,并且每层都是按照次序叠加起来的。初始化model=keras.models.sequential(),增加embedding层,该层是将正整数转换成固定大小的向量。第二层添加lstm层,设置输入维度和输出维度的值和节点数,采用dropout来防止模型训练过度拟合问题的发生,各层的激励函数分别采用relu函数。添加dense层,作为输出层,输出节点为1个,优化算法采用sgd函数。
s1333、编译模型,主要是给model的compile函数设置优化函数并分别设置为sgd,目标函数loss都采用binary_crossentropy,即交叉熵作为目标函数,又名逻辑回归函数。
s1334、训练模型,将步骤s1331中处理的结果带入model的fit函数里面去训练模型,设置迭代次数和一次迭代大小。
s1335、设置迭代次数,模型保存得是误差最低的时候的模型,利用模型的predict函数去预估测试数据的结果。
s1336、根据预测结果和测试集真实的点击结果,采用skleam工具包的log-loss计算log-loss值来评估模型。
可选地,本实施例所述方法可在所述将燃气浓度特征向量输入至lstm模型中并对应输出综合管廊内部燃气浓度的预测数据之后,所述方法还包括:
s15、将lstm模型中所训练的第一层次的基础上,增加一层与第一层次结构相同的新层次,其中,新层次中以第一层次lstm的输出与初始模型中燃气浓度特征向量作为输入;
s16、对增加新层次后的lstm模型进行训练优化;
s17、在第一层次上逐层增加新的层次并进行训练,直到增加层次使得lstm模型性能不在提升;
s18、由最终获得的lstm模型得出综合管廊内部燃气浓度的最终预测值。
具体的,本实施例所述方法通过不断在初始层次上逐层增加新的层次并进行训练,逐步增加所述lstm模型预测的精确度,进一步的提高对综合管廊内燃气浓度数据长期准确的提前预测。
或者,本实施例所述方法还可在所述将燃气浓度特征向量输入至lstm模型中并对应输出综合管廊内部燃气浓度的预测数据之后,所述方法还包括:
s19、获取综合管廊内部燃气浓度实际值,并将燃气浓度实际值与预测值进行对比分析;
s20、当燃气浓度实际值与预测值之间的差值超过阈值,则报警并提示调整lstm模型参数,然后基于调整后的lstm模型参数再次训练lstm模型;
s21、当燃气浓度实际值与最终预测值之间的差值未超过阈值,则继续对综合管廊内部燃气浓度进行预测。
具体的,本实施所述方法主要是通过对比分析燃气浓度的预测值与实际值之间的差异来调整lstm模型参数,进一步对lstm模型参数进行优化,通过lstm模型自适应的优化调整,进一步提高所述方法预测结果的精度性。
再或者,本实施例所述方法还可在由最终获得的lstm模型得出综合管廊内部燃气浓度的最终预测值之后,对燃气浓度的实际值与最终预测值之间进行对比分析。
本发明实施例还提供一种综合管廊内部燃气浓度lstm预测系统,如图4所示,所述系统包括:
获取单元11,用于获取综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊位置数据;
预处理单元12,用于对所获取的综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊位置数据进行预处理并形成燃气浓度特征向量;
模型训练单元13,用于以relu为激励函数训练lstm模型;
第一预测单元14,用于将燃气浓度特征向量输入至lstm模型中并对应输出综合管廊内部燃气浓度的预测数据。
本发明实施例提供的综合管廊内部燃气浓度lstm预测系统主要是通过具有长短期记忆单元的递归神经网络构建模型,将综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊位置数据转化成综合管廊内部燃气浓度的预测值,其中,综合管廊内部目前燃气浓度、管廊内微生物密度、传感器位置和综合管廊的位置均影响综合管廊内部燃气浓度,例如,当管廊内微生物越多所产生的氨气越多,将增大内部燃气浓度;由于传感器在综合管廊中所设置的位置数据不同导致所测量到的综合管廊内部燃气浓度数据不同;综合管廊设置的南北地域位置的差异导致综合管廊内部燃气浓度。因此,所述系统不仅能够适应综合管廊内部燃气浓度数据的动态特性,进而实现对综合管廊内燃气浓度数据长期准确的提前预测,有效地防止因综合管廊内燃气浓度过低引起安全等问题;并且所述方法通用性强、成本低、适用性广泛、适合广泛的推广应用。
可选地,如图5所示,所述预处理单元12包括:
数据缺失补齐子单元121,用于以时间为基准查找综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据中所缺失的数据并补齐;
标准化处理子单元122,用于将完整的综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据分别进行标准化处理,并形成四维向量。
可选地,所述数据缺失补齐子单元121包括:
标签模块,用于分别获取综合管廊内部燃气浓度数据、管廊内部微生物密度数据、传感器位置数据和综合管廊所在地数据对应的时间序列,当所述时间序列有缺失则根据时间序列中第t个时间步对应的缺失时刻、和所述缺失时刻对应的观测值生成缺失标签向量;
时长模块,用于根据缺失标签向量和缺失时刻确定缺失时长;
替换模块,用于通过缺失时刻的最近有效值
其中,
可选地,所述模型训练单元13包括:
确定子单元131,用于根据relu激励函数确定误差函数;
优化子单元132,用于优化lstm模型参数;
控制子单元133,用于依次建立训练矩阵、初始化lstm模型、编译lstm模型、训练lstm模型和评估lstm模型。
可选地,所述系统还包括:
增加新层单元,用于将lstm模型中所训练的第一层次的基础上,增加一层与第一层次结构相同的新层次,其中,新层次中以第一层次lstm的输出与初始模型中燃气浓度特征向量作为输入;
新层训练优化单元,用于对增加新层次后的lstm模型进行训练优化;
控制单元,用于在第一层次上逐层增加新的层次并进行训练,直到增加层次使得lstm模型性能不在提升;
第二预测单元,用于由最终获得的lstm模型得出综合管廊内部燃气浓度的最终预测值。
可选地,所述系统还包括:
对比文件单元,用于获取综合管廊内部燃气浓度实际值,并将燃气浓度实际值与预测值进行对比分析;
控制单元,用于当燃气浓度实际值与预测值之间的差值超过阈值,则报警并提示调整lstm模型参数,然后基于调整后的lstm模型参数再次训练lstm模型;或者当燃气浓度实际值与最终预测值之间的差值未超过阈值,则继续对综合管廊内部燃气浓度进行预测。
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。