本发明涉及控制科学与工程、环境科学与工程领域,尤其涉及一种基于稀疏自编码和极限学习机的水质软测量方法。
背景技术:
全世界的水资源储量丰富,但其中淡水资源仅占2.53%,并且主要以深层水和冰川为主,湖泊和河流的淡水仅仅占淡水资源的0.3%,所以人类可利用的淡水资源是非常有限的。同时人类对水资源的开发与利用不合理,导致水资源被大量浪费、被污染,进一步压缩了可利用水资源的空间。同时被污染的水资源会对环境造成破坏,植被衰退,动物死亡等,还会危害人类社会,危急人类身体健康及生命安全。所以水资源整治是一项具有重大意义的研究课题,而污水处理则是其中一种非常有效的手段,通过将人类社会产生的各种污水进行净化,在水质达标后排放进江河湖泊或者无害化利用,不仅可以避免对环境与人类社会造成破坏,同时也可以缓解由于人类社会过度发展导致的水资源短缺问题。
目前世界上大部分的污水处理都采用厌氧好氧的生化反应来实现对于污水的处理,采用这一方法的主要原因是污水中含有大量的有机物,这些有机物来自于垃圾填埋场、居民生活废水、制药厂、食品厂等诸多场景中,有机物中最主要的含量就是氮元素,而氨氮还来源于焦化厂、化肥厂、石化厂等,含有大量氨氮离子的废水排入自然界会使得水体富养化并黑臭,还会对人类及生物产生毒害作用。所以对污水处理厂出水水质的氨氮例子浓度进行检测较为重要。但同时目前专门检测的传感器存在有高度的不可靠性且成本较高,为了能够实现较为精准且快速的检测,很多软测量方法被提出,但是由于污水处理过程的复杂性以及高度耦合的组分之间的互相影响,会进一步约束现有软测量方法的效果,为了进一步提升软测量效果,本发明提出了一种基于稀疏自编码和极限学习机的水质软测量方法来克服现有的困难。
技术实现要素:
为了实现对于污水处理水质中的某些较难测量组分的快速估计,便于工作人员及时调整控制策略,很多科研工作尝试利用机器学习的方法来实现对于这些较难测量组分的软测量方法,但是由于污水处理是一个非常复杂,且耦合性很强的系统,并且变量种类复杂多样,很难人为进行分离不同种类的组分。针对于此,本发明提出一种基于稀疏自编码和极限学习机的水质软测量方法,该方法能够快速对多种组分进行分离,并快速准确地估计污水处理反应中难测量关键组分,从而为技术人员及时调节控制策略提供合理指导。
本发明的目的是通过以下技术方案实现的:一种基于稀疏自编码和极限学习机的水质软测量方法,该方法包括以下步骤:
(1)获取样本数据:从污水处理过程中获取n0组样本数据
(2)采用抽样方式对样本数据进行压缩,具体为:在[1,10]之间随机选择整数初始值a,采用每隔10点采集一次,则得到一批次压缩十倍的数据
(3)样本数据归一化:针对每一批次样本数据分别进行去量纲化,将不同量纲的数据归一化至[-1,1]之间,得到归一化后的样本数据x。
(4)根据稀疏自编码器对数据进行降维,具体为:
从输入层到隐层有:
h=f(w1x b1)
从隐层到输出层有:
其中h为隐层的输出,
解码函数为线性函数或sigmoid函数,使得重构误差最小,重构误差为:
在编码器中加入稀疏限制,控制隐层神经元激活数量,假设aj(x)表示隐层第j个神经元的激活函数,那么第j个神经元的平均激活量
为了让大多数隐层神经元为非激活状态,让
其中m为隐层的神经元个数,
对于自编码器,代价函数为:
其中λ为权值衰减常数,nl为神经网络层数,sl为第l层神经元个数,
jsparse(w,b)=j(w,b) βpn
其中β为稀疏惩罚项系数。
更新权重w和偏置b,则可以求得更新方程为:
其中bil为第l层神经网络的第i个偏置值,α为学习率,求得最优的w与b,可以获得更好的隐层输出h∈rn×m,用来表征检测样本数据的特征,从而实现对检测样本数据降维至m维;记y=h。
(5)构建极限学习机,实现水质关键组分软测量,极限学习机神经网络由输入层、隐含层以及输出层共同构成,根据样本数据的特点,设定神经网络的输入层有m个节点,隐含层有l个节点,而输出层则有m个节点,具有步骤如下:
step1:根据降维后的样本数据集
其中g(·)为神经网络的激励函数,al,bl(l=1,2,...,l)分别为输入层到隐含层的权重和偏移值,l表示神经网络的隐含层节点个数,y表征一共有n组神经网络输入数据,每组有m个特征值,即对应了神经网络输入层的节点个数,h为神经网络隐含层输出;
step2:将污水出水水质作为目标历史数据t:
其中tj(j=1,2,....,n)为第j组目标历史数据的输出向量;
step3:构建隐含层到输出层的网络,则有
t=βh
其中wlm为隐含层到输出层的权重向量,其矩阵则为β∈rm×l,g(al,bl,y)为隐含层输出,同时也为输出层输入,其矩阵形式则为h∈rl×n;
step4:采用moore-penrose方法,得到隐含层到输出层的权重值:
其中il为l维的单位矩阵,c为正常数值。
(6)完成一个批次样本数据的计算,再针对下一个批次样本数据进行计算,直到p批次样本数据完成计算;最终利用p批次样本数据的训练结果分别进行软测量,并将软测量的结果求平均,从而得到最终的软测量结果,即出水水质中的氨氮离子浓度。通过间隔分批次的方法,在保证软测量模型性能的同时,既可以有效降低单次的计算量,降低对硬件设备的要求,又可以降低计算复杂度,使得计算复杂度呈倍数下降。
进一步地,所述步骤(1)中,从污水处理过程中获取的n0组样本数据
进一步地,所述步骤(3)中,针对每一批次样本数据分别进行去量纲化,通过最小最大值归一化的方法,将不同量纲的数据归一化至[-1,1]之间,公式如下:
其中x为污水处理中压缩后的样本数据,xmin为x的最小值,而xmax则为x中的最大值,x为归一化后的样本数据。
本发明的有益效果是:本发明方法将稀疏自编码与极限学习机结合,一方面利用稀疏自编码对样本数据进行降维特征提取,另一方面利用极限学习机能够快速有效地对污水处理关键组分实现快速估计,同时考虑计算量较大,采用多次再采样并均值计算有效降低了计算复杂度和计算条件,从而有效实现软测量的效果,降低因为传感器成本对污水处理工艺的约束与限制。
附图说明
图1为本发明水质软测量的结构示意图;
图2为本发明基于稀疏自编码和极限学习机的水质软测量方法流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
本发明将稀疏自编码与极限学习机结合,并利用多次再采样求平均的方法,提出一种基于稀疏自编码和极限学习机的水质软测量方法,能够快速准确估计污水处理中关键组分。如图1、2所示,具体实现步骤如下:
(1)获取样本数据
从污水处理过程中获取n0组样本数据
(2)对样本数据进行压缩
为了能够降低计算复杂度,但同时不影响方法的性能,本发明采用一种多次抽样计算的方法。已知原始样本数据
(3)样本数据归一化
由于污水处理中不同组分之间的量纲不同,数值之间的尺度相差巨大,为了消除量纲带来的影响,针对每一批次样本数据分别进行去量纲化,通过最小最大值归一化的方法,将不同量纲的数据归一化至[-1,1]之间,从而消除量纲对软测量带来的影响。具体形式为:
其中x为污水处理中压缩后的样本数据,xmin为x的最小值,而xmax则为x中的最大值,x为归一化后的样本数据,具体为x=[sin,ssn,xin,xsn,xbhn,xban,xpn,snon,son,sndn,xndn]t。
针对每一批次归一化后的样本数据进行以下计算步骤。
(4)根据稀疏自编码器对数据进行降维
自编码器是一种利用无监督学习和优化系统参数的从无标签数据中心提取高维复杂输入数据的分层特征,并得到原始数据的分布特征表示的三层对称深度学习神经网络。神经网络由输入层、隐层和输出层组成,隐层对原始输入数据进行编码,输出层对隐层表达进行解码重构原始数据,使得重构误差最小获得最佳的隐层表达。
从输入层到隐层则有:
h=f(w1x b1)
从隐层到输出层则有:
其中h为隐层的输出,
解码函数一般为线性函数或sigmoid函数,使得重构误差最小,重构误差为:
为了能够让自编码器学习到有用特征,在编码器中加入稀疏限制,控制隐层神经元激活数量,隐层加入稀疏限制的自编码器称为稀疏自编码器。假设aj(x)表示隐层第j个神经元的激活函数,那么第j个神经元的平均激活量
为了让大多数隐层神经元为非激活状态,让
其中m为隐层的神经元个数(本实施例中m<11),
对于自编码器而言,一般代价函数可以写成:
其中λ为权值衰减常数,nl为神经网络层数,sl为第l层神经元个数,
jsparse(w,b)=j(w,b) βpn
其中β为稀疏惩罚项系数。
更新权重w和偏置b,则可以求得更新方程为:
其中
为了便于后续表述,这里引入y=h;
(5)水质关键组分软测量——极限学习机
一般极限学习机神经网络由输入层、隐含层以及输出层共同构成,根据样本数据的特点,设定神经网络的输入层有m个节点(本实施例中m=3),隐含层有l个节点(本实施例中l=100),而输出层则有m个节点(本实施例中m=1)。具有步骤如下:
step1:根据降维后的样本数据集
其中g(·)为神经网络的激励函数,al,bl(l=1,2,...,l)分别为输入层到隐含层的权重和偏移值,l表示神经网络的隐含层节点个数,y表征一共有n组神经网络输入数据,每组有m个特征值,即对应了神经网络输入层的节点个数,h为神经网络隐含层输出;
step2:将污水出水水质作为目标历史数据t:
其中tj(j=1,2,....,n)为第j组目标历史数据的输出向量;
step3:构建隐含层到输出层的网络,根据输出层选择purelin函数,则有
t=βh
其中wlm为隐含层到输出层的权重向量,其矩阵则为β∈rm×l,g(al,bl,y)为隐含层输出,同时也为输出层输入,其矩阵形式则为h∈rl×n。
step4:在得到step1与step2的前提下,采用moore-penrose方法对step3进行处理得到隐含层到输出层的权重值:
其中il为l维的单位矩阵,c为正常数值。
(6)完成一个批次采样样本数据的计算,再针对下一个批次采样样本数据进行计算,直到最后p批次样本数据完成计算。最终利用p批次样本数据的训练结果分别进行软测量,并将软测量的结果求平均,从而得到最终的软测量结果,即出水水质中的氨氮离子浓度。
以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
1.一种基于稀疏自编码和极限学习机的水质软测量方法,其特征在于,包括以下步骤:
(1)获取样本数据:从污水处理过程中获取n0组样本数据
(2)采用抽样方式对样本数据进行压缩,具体为:在[1,10]之间随机选择整数初始值a,采用每隔10点采集一次,则得到一批次压缩十倍的数据
(3)样本数据归一化:针对每一批次样本数据分别进行去量纲化,将不同量纲的数据归一化至[-1,1]之间,得到归一化后的样本数据x。
(4)根据稀疏自编码器对数据进行降维,具体为:
从输入层到隐层有:
h=f(w1x b1)
从隐层到输出层有:
其中h为隐层的输出,
解码函数为线性函数或sigmoid函数,使得重构误差最小,重构误差为:
在编码器中加入稀疏限制,控制隐层神经元激活数量,假设aj(x)表示隐层第j个神经元的激活函数,那么第j个神经元的平均激活量
为了让大多数隐层神经元为非激活状态,让
其中m为隐层的神经元个数,
对于自编码器,代价函数为:
其中λ为权值衰减常数,nl为神经网络层数,sl为第l层神经元个数,
jsparse(w,b)=j(w,b) βpn
其中β为稀疏惩罚项系数。
更新权重w和偏置b,则可以求得更新方程为:
其中
(5)构建极限学习机,实现水质关键组分软测量,极限学习机神经网络由输入层、隐含层以及输出层共同构成,根据样本数据的特点,设定神经网络的输入层有m个节点,隐含层有l个节点,而输出层则有m个节点,具有步骤如下:
step1:根据降维后的样本数据集
其中g(·)为神经网络的激励函数,al,bl(l=1,2,...,l)分别为输入层到隐含层的权重和偏移值,l表示神经网络的隐含层节点个数,y表征一共有n组神经网络输入数据,每组有m个特征值,即对应了神经网络输入层的节点个数,h为神经网络隐含层输出;
step2:将污水出水水质作为目标历史数据t:
其中tj(j=1,2,....,n)为第j组目标历史数据的输出向量;
step3:构建隐含层到输出层的网络,则有
t=βh
其中wlm为隐含层到输出层的权重向量,其矩阵则为β∈rm×l,g(al,bl,y)为隐含层输出,同时也为输出层输入,其矩阵形式则为h∈rl×n;
step4:采用moore-penrose方法,得到隐含层到输出层的权重值:
其中il为l维的单位矩阵,c为正常数值。
(6)完成一个批次样本数据的计算,再针对下一个批次样本数据进行计算,直到p批次样本数据完成计算;最终利用p批次样本数据的训练结果分别进行软测量,并将软测量的结果求平均,从而得到最终的软测量结果,即出水水质中的氨氮离子浓度。
2.根据权利要求1所述的一种基于稀疏自编码和极限学习机的水质软测量方法,其特征在于,所述步骤(1)中,从污水处理过程中获取的n0组样本数据
3.根据权利要求1所述的一种基于稀疏自编码和极限学习机的水质软测量方法,其特征在于,所述步骤(3)中,针对每一批次样本数据分别进行去量纲化,通过最小最大值归一化的方法,将不同量纲的数据归一化至[-1,1]之间,公式如下:
其中x为污水处理中压缩后的样本数据,xmin为x的最小值,而xmax则为x中的最大值,x为归一化后的样本数据。
技术总结