基于互信息和软仪表误差的输入变量自动选择方法与流程

文档序号:15076761发布日期:2018-08-01 01:57阅读:123来源:国知局

本发明涉及机器学习和仪器仪表领域,尤其涉及基于互信息和软仪表误差的输入变量自动选择方法。



背景技术:

在工业过程中,存在许多与产品质量、生产效率等密切相关的关键变量,但由于很多工业现场处于高温、高粉尘或者腐蚀性等恶劣环境,利用硬件设备测量这些关键变量困难,另外,此类硬件测量设备制造和维护成本较高,也给测量工作带来了阻碍。软仪表是一种测量工业过程中难测关键变量的数学模型,将一些与目标变量密切相关的易测过程变量作为模型输入,将目标变量作为模型输出,建立数学关系,从而预测目标变量的数值。

目前针对软仪表的研究,大部分集中于模型结构和训练方法,但除此之外,还有许多因素会直接影响软仪表的性能,例如过程变量的选择。在保证软仪表精度的前提下,选择最直接相关且最少数目的输入变量,可简化模型结构,有效降低计算负担,提高收敛速度,优化训练过程。传统方法利用人工通过参考工业过程的物理背景或工艺方法,选择相关性较高的过程变量,但由于工业过程的复杂性,此方法可靠性低。本发明关注于对软仪表的输入变量进行自动选择,首先利用自动编码器(auto-encoders,ae)进行训练堆叠,建立一个堆叠自动编码器(stackedauto-encoders,sae)的软仪表模型,在此模型基础上,提出了一种全新的对于软仪表输入变量的自动选择方法。本方法提出了一种新的代价函数,通过后序选择,选出与目标变量相关性最大的过程变量,实验结果显示,相比其他常用方法,在取得相同软仪表预测精度的前提下,本方法可选出更少的输入变量,且选择时间在可接受范围内。因此,本研究对于软仪表的理论研究和工业实际应用均具有重要意义。



技术实现要素:

本发明的目的在于提供基于互信息和软仪表误差的输入变量自动选择方法,以解决上述技术问题。

为实现上述目的本发明采用以下技术方案:

基于互信息和软仪表误差的输入变量自动选择方法,包括如下步骤:

步骤1、构建sae软仪表模型;

通过堆叠多个自动编码器,构建深层神经网络,自动编码器是一种三层前馈神经网络,以重构自身输入为目标,包括一个编码器和一个解码器,中间隐层的输出看作是对输入数据的特征提取,具有强大的数据压缩和重构能力,其编码器将输入数据映射为隐层输出:

y=g(w(1)x+b(1))(1);

其中g(x)代表sigmoid函数,定义如下:

解码器以输入数据为目标对隐层输出进行重构:

通过最小化下列重构误差进行网络参数θ的更新训练:

在第一个自动编码器训练结束后,去掉其解码部分,保留编码部分,将其隐层输出作为新的输入,训练第二个自动编码器,以此类推,根据需求堆叠h个编码器以构建一个深层神经网络模型,由于软仪表对数据预测的回归要求,在模型的顶层添加一个附加的线性回归预测层,最终输出目标变量,此时,软仪表的输入为全部原始过程变量,在不同的实例研究中,网络层数、神经元个数等超参数可通过经验或者交叉验证确定。

步骤2、实施mi-sae对输入变量进行选择;

基于步骤1构建sae软仪表模型,利用mi-sae方法对原始输入变量进行选择,对于过程变量的自动选择方法包括两个要素,一是对于变量重要性的衡量标准,即代价函数,二是对于变量的选择规则,构建的代价函数如下:

此代价函数表示的是在去掉第r个过程变量之后的代价函数值,其中,第一项代表去掉第r个输入变量xr之后的软仪表误差,x表示输入变量集合,x-r代表去掉xr之后的输入集合,采用均方根误差(rootmeansquareerror,rmse)衡量模型的误差,如下:

n为样本个数,yreal和y分别代表目标变量的实际测量值和模型预测值;当从输入集合中去掉某一输入变量xr之后,软仪表的预测误差变大,则说明变量xr对模型的重要性高,若预测误差变小,则说明xr对软仪表性能来说是无用的,即的值越大,xr的重要程度越高;

代价函数的第二项代表第r个输入变量与其他输入变量的平均互信息值,互信息用来衡量的是变量间的相关性大小,值越大,相关性越大,对于两个离散变量之间的互信息定义如下:

第二项中的分子代表变量xr与集合x-r中的其他变量的互信息求和,分母|x|-1表示集合x-r中的变量数目,此项的值越大,说明变量xr与其他输入变量的相关性越大,为了降低输入变量集内部的相关性,剔除与其他变量相关性最强的变量,使得代价函数(5)值最小的变量其重要性最低,从输入集合中去除;

基于上述分析,本发明对输入变量的选择规则是,利用一种后序选择的方法,在每一次迭代中去掉一个输入变量,直到输入变量的个数或者模型的预测误差满足结束条件,在每一迭代中,某一输入变量被去掉之后,软仪表的输入变量发生改变,sae模型需要更新,在传统的前向或者后向搜索算法中,每一次迭代之后都要整体重新训练模型进行权值更新,带来了巨大的计算量,在每次迭代中仅更新sae的第一层权值,大大降低了计算量,在变量xr从输入集合中移除之后,新的sae模型为:

w(1),-r,b(1),-r,w(2),-r和b(2),-r是sae模型的第一层和第二层的新权值;将新模型与旧模型之间的差值定义为ε,则:

r(yreal,y)=r(yreal,y-r)+ε(9);

对第k个样本:

其中,ε(k)是第k个样本的误差贡献量,将(8)带入(11),得:

g(g(x(k)tw(1)+b(1))w(2)+b(2))=g(g(x-r(k)tw(1),-r+b(1),-r)w(2),-r+b(2),-r)+ε(k)(12);更新w(1)和b(1),其他权值不变,w(2)=w(2),-randb(2)=b(2),-r,将ε(k)分别作用于剩余的每一个输入变量:

g(g(x(k)tw(1)+b(1))w(2)+b(2))=g(g(x-r(k)tw(1),-r+b(1),-r+δ(k))w(2)+b(2))(13);

δ(k)代表一个输入变量与隐层之间的h×1权值向量,h为隐层神经元数,对剩余输入变量及其相关权值,由(13)可得:

即当变量xr以及其相关权值wrj(j=1,...,h)被移除之后,剩余的第一层权值wij可通过因子δij进行更新,即:

δij通过(14)可得;

在每去掉一个输入变量之后,通过更新软仪表的第一层权值更新模型,其他层权值保持不变,循环迭代,直到满足终止条件,算法的最终输出是选出的最优输入变量集合。

作为本发明进一步的方案,mi-sae的算法流程步骤包括:

a:利用全部原始输入变量建立一个原始sae模型;

b:对于原始输入变量集合x中的每一个变量x,计算代价函数l值;

c:选出使得l最小的输入变量,从输入集合中去除;

d:更新输入集合并更新sae模型权值;

e:若满足终止条件则停止,否则返回步骤2循环。

与现有技术相比,本发明具有以下优点:本发明中综合考量了输入变量之间的相关性以及软仪表的预测误差,以确定某过程变量的重要程度,在原始采集的众多数量的输入变量中选择最优变量集,从而实现对于过程变量的自动排除选择,提高了对于过程变量选择的可靠性,简化软仪表模型结构,降低运算负担,提高训练及收敛速度。

附图说明

图1是本发明的sae软仪表模型的训练过程;

图2是本发明的sae软仪表模型的神经网络结构图;

图3是本发明的mi-sae算法流程图;

图4是本发明的实例1中五种方法的软仪表误差与所选输入变量个数对应曲线图;

图5是本发明的实例2中三分仓旋转空气预热器结构示意图;

图6是本发明的实例2中空气预热器转子变形示意图;

图7是本发明的实例2中五种方法的软仪表误差与所选输入变量个数对应曲线图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步详细阐述。

本发明提出了一种基于互信息和软仪表误差的输入变量自动选择方法。首先通过训练多个自动编码器进行堆叠,利用全部可采集过程变量作为输入,构建一个sae软仪表模型。然后利用本发明的mi-sae算法,后序依次剔除重要性最低的输入变量,直到满足结束条件。在每剔除一个变量之后,仅更新软仪表的首层权值,避免了传统后序选择中整体更新模型带来的巨大计算量。整个实施过程包括以下三个阶段:

1、构建sae软仪表模型

近年来对于软仪表结构的研究呈现多样化,本发明中采用了深度学习的方法,通过堆叠多个自动编码器,构建深层神经网络,训练过程如图1所示。自动编码器是一种三层前馈神经网络,以重构自身输入为目标,包括一个编码器和一个解码器,中间隐层的输出可看作是对输入数据的特征提取,具有强大的数据压缩和重构能力。其编码器将输入数据映射为隐层输出:

y=g(w(1)x+b(1))(1);

其中g(x)代表sigmoid函数,定义如下:

解码器以输入数据为目标对隐层输出进行重构:

通过最小化下列重构误差进行网络参数θ的更新训练:

在第一个自动编码器训练结束后,去掉其解码部分,保留编码部分,将其隐层输出作为新的输入,训练第二个自动编码器,以此类推,可以根据需求堆叠h个编码器以构建一个深层神经网络模型。由于软仪表对数据预测的回归要求,在模型的顶层添加一个附加的线性回归预测层,最终输出目标变量。此时,软仪表的输入为全部原始过程变量。在不同的实例研究中,网络层数、神经元个数等超参数可通过经验或者交叉验证确定。在本发明中,我们对两个自编码器进行堆叠,采用了两隐层的模型结构,其神经网络结构图如图2所示。

2、实施mi-sae对输入变量进行选择;

基于阶段1中构建的sae模型,利用mi-sae方法对原始输入变量进行选择。对于过程变量的自动选择方法包括两个要素,一是对于变量重要性的衡量标准,即代价函数,二是对于变量的选择规则。本发明中构建的代价函数如下:

此代价函数表示的是在去掉第r个过程变量之后的代价函数值。其中,第一项代表去掉第r个输入变量xr之后的软仪表误差,x表示输入变量集合,x-r代表去掉xr之后的输入集合,此发明中,我们采用均方根误差(rootmeansquareerror,rmse)衡量模型的误差,如下:

n为样本个数,yreal和y分别代表目标变量的实际测量值和模型预测值。当从输入集合中去掉某一输入变量xr之后,软仪表的预测误差变大,则说明变量xr对模型的重要性高,若预测误差变小,则说明xr对软仪表性能来说是无用的。即的值越大,xr的重要程度越高。

代价函数的第二项代表第r个输入变量与其他输入变量的平均互信息值。互信息用来衡量的是变量间的相关性大小,值越大,相关性越大。对于两个离散变量之间的互信息定义如下:

第二项中的分子代表变量xr与集合x-r中的其他变量的互信息求和,分母|x|-1表示集合x-r中的变量数目。此项的值越大,说明变量xr与其他输入变量的相关性越大。为了降低输入变量集内部的相关性,我们认为应该剔除与其他变量相关性最强的变量。综合考量之后,我们认为,使得代价函数(5)值最小的变量其重要性最低,应该从输入集合中去除。

基于上述分析,本发明对输入变量的选择规则是,利用一种后序选择的方法,在每一次迭代中去掉一个输入变量,直到输入变量的个数或者模型的预测误差满足结束条件。在每一迭代中,某一输入变量被去掉之后,软仪表的输入变量发生改变,sae模型需要更新。在传统的前向或者后向搜索算法中,每一次迭代之后都要整体重新训练模型进行权值更新,带来了巨大的计算量。本发明中,我们在每次迭代中仅更新sae的第一层权值,大大降低了计算量。在变量xr从输入集合中移除之后,新的sae模型为:

w(1),-r,b(1),-r,w(2),-r和b(2),-r是sae模型的第一层和第二层的新权值。将新模型与旧模型之间的差值定义为ε,则:

r(yreal,y)=r(yreal,y-r)+ε(9);

对第k个样本:

其中,ε(k)是第k个样本的误差贡献量。将(8)带入(11),得:

g(g(x(k)tw(1)+b(1))w(2)+b(2))=g(g(x-r(k)tw(1),-r+b(1),-r)w(2),-r+b(2),-r)+ε(k)(12);我们只更新w(1)和b(1),其他权值不变,w(2)=w(2),-randb(2)=b(2),-r。将ε(k)分别作用于剩余的每一个输入变量:

g(g(x(k)tw(1)+b(1))w(2)+b(2))=g(g(x-r(k)tw(1),-r+b(1),-r+δ(k))w(2)+b(2))(13);

δ(k)代表一个输入变量与隐层之间的h×1权值向量,h为隐层神经元数。对剩余输入变量及其相关权值,由(13)可得:

即当变量xr以及其相关权值wrj(j=1,...,h)被移除之后,剩余的第一层权值wij可通过因子δij进行更新,即:

δij通过(14)可得。

这样,在每去掉一个输入变量之后,通过更新软仪表的第一层权值更新模型,其他层权值保持不变。循环迭代,直到满足终止条件,算法的最终输出是选出的最优输入变量集合。

mi-sae的算法流程图如图3所示,具体实施步骤包括:

步骤1:利用全部原始输入变量建立一个原始sae模型;

步骤2:对于原始输入变量集合x中的每一个变量x,计算代价函数l值;

步骤3:选出使得l最小的输入变量,从输入集合中去除;

步骤4:更新输入集合并更新sae模型权值;

步骤5:若满足终止条件则停止,否则返回步骤2循环。

3、实例验证;

本发明方法运行平台为2015a,计算机配置为coretmi73.60ghz,8gbram。通过两个实例研究,证明本方法可有效选择最优过程变量作为软仪表输入,且不损失软仪表的预测性能。为了验证本方法的有效性,在实验中引入了其他4种常用且效果较好的变量自动选择方法进行比较,分别是最小冗余最大相关算法(minimumredundancymaximumrelevancealgorithm,mrmr)、标准化互信息特征选择(normalizedmutualinformationfeatureselection,nmifs)、最小二乘法(partialleastsquares,pls)以及基于sae模型的后序搜索算法(sequentialbackwardsearch,sbs),称为sbs-sae。实验实施步骤为:

步骤1:数据集分为训练集(70%)和测试集(30%);

步骤2:将所有过程变量作为软仪表输入,用训练数据集训练一个sae模型;

步骤3:将本发明中mi-sae方法与其他4种方法分别对原始输入变量进行选择;

步骤4:将五种方法选出的最优输入变量集分别作为sae的输入,利用测试数据集测试模型的预测误差并分析比较。

实例1:

本例中数据集来自于uci机器学期数据库,包括16个原始输入变量,2个目标变量,目的是预测混合气体中一氧化碳和乙烯的浓度。原数据集数据量较大,我们从中选择了300个数据样本。2个输出变量的平均rmse作为模型的预测误差。五种方法的实验结果如表1和图4所示。

表1

从表1可以看出,在取得同样的软仪表精度的前提下,我们的方法与sbs-sae选出了数量最少的输入变量,而sbs-sae所用的选择时间是我们的207倍。也就是说,在选择相同数量变量的要求下,mi-sae的计算量要远低于传统的后序选择类方法。图4中横轴表示已选择的变量个数,从图4中可以看出,为了获得软仪表的最优性能,mi-sae与sbs-sae最少可以选出4个输入变量,而其他三种方法则需选出6个甚至更多变量。但由于选择过程的计算量过大,sbs-sae方法所需的选择时间要远高于我们的方法。因此,综合而言,我们所提出的mi-sae方法不但可以选出最少的输入变量以取得相同的软仪表预测精度,而且选择时间也在可接受范围内,是一种可行性高且操作方便的软仪表输入变量的自动选择方法。

实例2:

本例中的数据集是来自于某火力发电厂锅炉空气预热器中的实际数据,样本数600。本实例研究的应用背景如下:

空气预热器是火电厂锅炉系统中的气体换热装置,用来提取废气中的热量,对进入锅炉的助燃空气进行预热。空气预热器的结构示意图如图5所示,外部空气通过两个风道自下而上进入空气预热器,为了分隔风道和烟道,在转子的上部和下部分别安装有扇形板,废气通过烟道自上而下排出,在空气预热器的转子中密布安装了蓄热片,随着转子的缓慢转动,废气中的热量被吸收到了虚热装置中,再释放到助燃空气中,以达到预热的目的。在此过程中,空气预热器内部处于严重温度不均的状态,上部温度高,下部温度低,由于热应力的作用,转子发生了一种蘑菇状变形,使得转子与扇形板之间出现了缝隙,导致未加热的空气通过缝隙进入烟道,产生漏风,大大降低了预热的效率,如图6所示。因此,检测和控制转子变形是本工业过程中的重要环节。而空气预热器所处的环境高温且高粉尘,硬件测量设备测量困难,因此我们引入了软仪表方法,通过对其他易测过程变量与转子变形量建模,进行目标变量的检测和控制。原始采集的过程变量与目标变量如表2所示;

表2

过程变量9个,其中包括了气体流量、压力、温度、转子转速等。

利用五种方法对本实例的实验结果如表3和图7所示。

表3

由表3可见,mi-sae与sbs-sae在选择变量数目及软仪表误差等方面均取得了最优的结果,但在选择时间方面,mi-sae远低于sbs-sae,虽然mi-sae用时并不是最短,但在可接受范围内。由图7可见,mi-sae与sbs-sae更快的收敛至最优解,而其他三种方法则需选择更多数量的变量以收敛达到相同的软仪表误差。实验结果与实例一一致,综上所述,mi-sae方法可通过选择更少的变量以取得相同的软仪表误差,计算量小,用时较少,能够为软仪表的模型结构优化提供保障。

以上所述为本发明较佳实施例,对于本领域的普通技术人员而言,根据本发明的教导,在不脱离本发明的原理与精神的情况下,对实施方式所进行的改变、修改、替换和变型仍落入本发明的保护范围之内。

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