基于LSTM的铝电解槽况预测
2021-01-25田学法孔淑麒
侯 婕,田学法,孔淑麒
(1.海军研究院,北京 100161;2.北方工业大学 信息学院,北京 100144)
铝电解槽对于铝冶炼工业来说是其最为重要的主体设备。在我们国家的铝工业发展初始阶段,使用过电流为4~8 kA小型预焙阳极电解槽[1]。对于现阶段比较大型的电解槽它的电流很多已经达到了300~500 kA,在大型预焙槽中电耗已经减少到了13,500 kWh/t-Al。铝电解槽的电流效率也有了很大的提高,提高到90%~95%。
铝电解槽由槽体、阳极以及阴极构成,熔盐电解槽在高温、强腐蚀性的环境中工作,在炭素体阳极发生氧化反应,阴极发生还原反应产出铝液。工作电压、电解温度、电解质水平、铝水平、分子比、炉底压降等技术参数对电解槽高效、稳定生产产生作用,它们之间既相互联系又相互制约。获取各项技术参数比直接探测槽状态更容易,所以利用采集到的技术参数结合机器学习方法可以有效预测铝电解槽的状态。
本文选择使用在时间序列预测任务中具有良好表现的LSTM网络来对铝电解槽况预测,这能够使工艺人员提前了解槽况的变化,能够提前避免槽况变坏带来的损失,所以本文研究内容在铝电解工业上有很大潜在应用价值。
1 研究现状
铝电解槽的生产数据是一种时间序列而且具有数据维度高的特点。现有针对时间序列数据的预测算法有多种模型,比如人工神经网络、自回归移动平均、小波神经网络等[2-3]。时间序列预测的研究始于一个回归方程[4],它在数据分析中预测了一年中太阳黑子的数量。自回归移动平均模型(ARMA)和自回归综合移动平均模型(ARIMA)[5]表明,基于回归方法的时间序列预测模型正变得越来越流行。因此,这些模型也成为时间序列预测中最简单,也是最重要的模型。但由于实际数据的复杂性、不规则性、随机性和非线性,很难通过复杂模型实现高精度预测。采用机器学习方法,可以建立基于大量历史数据的非线性预测模型。事实上,通过反复的训练迭代和学习近似,机器学习模型可以比传统的基于统计的模型获得更准确的预测。典型的方法有支持向量回归[6]或基于核的分类,人工神经多阶(ANN)[7]与强非线性函数逼近和基于树的集成学习方法,如梯度增强回归或决策树(GBRT, GBDT)[8-9]。但是,由于上述方法缺乏对输入变量之间序列依赖关系的有效处理,因此在时间序列预测任务[10]中效果有限。
伴随不断地深入研究深度学习算法,发现深度学习算法可以适用于预测时间序列数据的问题,该算法先逐步分析输入的数据信息,然后对有效特征进行提取,将隐含关系从数据序列中提取出来。为了让RNN网络能够更有效的处理时间序列数据,在RNN的神经网络架构中引入时间序列概念。RNN的一种改进算法是长短期记忆神经网络,改进了在RNN网络结构中存在的梯度爆炸、梯度消失、长时间序列数据的记忆等问题,对于长时间的序列信息能够有效地处理[11]。LSTM模型应用在了很多领域例如语音识别、股票价格预测、降雨量预测、交通流预测、图像文字识别等,并且都取得了不错的应用效果[12]。
就目前而言,虽然在铝电解生产的研究与应用中,数据挖掘等技术得到了广泛的应用,用于铝电解槽的槽状态判断,但是对于铝电解槽的槽状态预测方面一直欠缺研究,本文在对铝电解槽进行聚类分析后,将时间序列的预测研究应用到铝电解槽的槽状态预测中。
2 LSTM算法
长短时记忆(long short term memory,LSTM)网络是一种结合梯度学习算法的网络结构,是循环神经网络(recurrent neural network,RNN)的改进模型。LSTM所具有的两个特殊的结构记忆门和遗忘门使得该网络能够充分的利用数据中带有的时间属性。传统的RNN网络在训练网络时会存在梯度消失的问题,梯度消失也叫做长期依赖问题,LSTM依靠改进RNN加入的记忆单元,能够有效规避梯度消失的问题,并在众多领域取得了巨大的成功[13]。LSTM结构图如图1所示。LSTM神经元通过“门”结构有选择性地传递消息,从而达到控制信息的目的。与RNN相比两者的共同点是LSTM在训练网络时利用反向传播算法。当网络反向传播对参数进行更新时,LSTM误差项的反向传播包括两个方向:一个是沿着时间方向反向传播,即从当前时刻开始,计算每个时刻的误差项;另一个是将误差项向上一层传播,根据相应的误差项,计算每个权重的梯度。LSTM的改进结构增加了三个‘门’结构,分别是‘输入门’‘输出门’、‘遗忘门’[14]。输入门是用来处理当前时刻的输入值和上一时刻的输出值当做总的输入信息。输出门是用来决定下一个时刻所要传递的信息。遗忘门则是用来判断前面的记忆信息要丢弃的信息,通过sigmoid函数把数值压缩在[0,1]之间,取值越接近1,表示当前细胞状态中要保留的信息越多,相反的,当取值越接近0时,则表示选择遗忘的信息越多。
图1 LSTM结构图
其中各个门控单元的计算过程如下所示:
ft=sigmoid(Wf·[ht-1,xt]+bf)
(1)
it=sigmoid(Wi·[ht-1,xt]+bi)
(2)
(3)
(4)
ot=sigmoid(Wo[ht-1,xt]+bo)
(5)
ht=ot×tanh(Ct)
(6)
算法流程如表1所示:
表1 算法流程表
3 铝电解槽槽况预测分析
3.1 数据采集
本数据来源于某铝厂300 kA系列采集到的真实铝电解槽生产数据,其中每个电解槽每天包含Fe含量、铝水平、分子比、Si含量、氧化铝浓度、电解质水平、电解温度等13个特征数据,采集周期为一天。通过对上述数据的观察,结合铝电解生产的工业特点,可以总结出电解铝生产过程中的实验数据的特点:
(1)数据的维度非常高:采集到的铝电解槽的生产数据中每天都存在多个互相关联的生产数据,所以数据的维度非常高;
(2)数据中的一些特征有空缺值:空缺值存在的原因是在采样过程中,会因为环境、人为失误、设备故障等造成一定的数据缺失;
(3)数据中存在噪声数据:在采集数据过程中因为环境和人为因素等会造成采集的数据存在噪声;
(4)时间序列数据:采集到的生产数据都是以时间为索引,例如:采集到的铝电解槽的日报数据。随着时间的改变,各个生产数据会出现波动变化。
3.2 数据预处理
(1)空缺值处理:
首先对于前期采集的数据中缺失值过多的特征删除,按照缺失值超过数据总量一半的标准去除特征。如图2所示,数值1表示数据全部缺失,数值0表示数据不缺失,介于0~1之间的部分缺失,其中氧化铝浓度、效应系数、出铝量数据全部缺失所以去除,其余特征均可保留。
图2 数据缺失情况
在将缺失率过多的特征去除后,剩余特征的缺失值采取了线性插值的方法补全。线性插值是一种对于一维时间序列数据补全的方法,利用缺失值前后的数据变化情况,根据到相邻数据点的距离分配比重补全缺失值。通过这种方法,对每一维的数据进行了补全。y值可通过式(7)求得:
(7)
(2)数据归一化
因为采集到的数据维度较大,各维度量级都不相同且差异较大,这对于后续的数据分析非常不利,所以采用了min-max方法对数据进行数据归一化,将数据归一化到[0,1]区间。转换函数如式(8)所示:
(8)
式中:max——样本数据的最大值;
min——样本数据的最小值。
(3)标记槽况
因为采集到的数据并没有槽况标记,所以要在预测槽况之前,对采集的数据进行槽况分类,选择了用具有软聚类属性的高斯混合模型聚类,聚类得出两个类别:(0,1),划分出不同的槽况,并且标记槽况,用于槽况预测。标记过槽况的数据格式如表2所示:
表2 数据格式表
3.3 槽况预测分析实验及结果
本实验使用Python语言编写所有程序,并在CPU2.50GHz,内存8GB,Windows7操作系统的计算机上进行了槽况预测实验。数据采用某铝厂276台电解槽五个月的全部历史数据,并且将原始数据进行了空缺值处理、归一化处理以及标记槽况等同时剔除了有问题的数据。
鉴于采集到的铝电解槽数据是真实铝电解厂数据,所以电解槽大部分都处于一个良好的工作状态,在聚类阶段仅能将槽况分为两类。实验用到的数据共十个属性,将每天的十一个特征属性数据值(通过聚类得到的类别也作为一个特征属性)作为样本数据,输入的样本数据形式记为:Xt=〔Xt(1),Xt(2),Xt(3),…,Xt(10),yt〕,t表示时间,y表示聚类类别,X表示采集到的10个属性。按照时间序列展开数据格式如式(9)所示:
(9)
在预测槽况时,采用LSTM算法,该算法的步骤为:
(1)计算LSTM在神经网络前向传播时的输入、输出以及各个隐藏层的各个神经元的输出值;
(2)通过交叉熵函数计算输出误差,误差通过反向传播算法反向传播到各层神经元;
(3)根据梯度下降算法和传播的误差,更新各层的神经元参数;
(4)根据设置的迭代次数,重复(2)、(3)、(4),直到收敛,此时模型训练完成。
图3 LSTM算法流程图
利用LSTM算法,设定滑动窗口m,根据滑动窗口构建训练集和测试集,训练模型,选择交叉熵作为损失函数,用来反映预测数据和真实数据之间的偏差,最后用训练好的模型对铝电解槽状态进行预测。利用LSTM算法对铝电解槽况进行预测的流程如下:
(1)对数据进行归一化处理;
(2)根据设定的滑动窗口大小m,构建训练集和测试集;
(3)构建改进的LSTM模型,对模型的参数进行初始化设置;
(4)用训练集对预测模型训练,采用梯度下降的方法更新参数,迭代数次后直到达到精度要求;
(5)将测试集喂给训练好的模型中,利用历史数据预测t+1时刻的预测值。
本实验按照8∶2的比例划分了训练集和测试集,训练集用于训练构建的LSTM模型,测试集用于验证训练出来的模型的算法准确性。对于滑动窗口和神经元个数的设定,通过实验找到了最佳的选择,如图4所示,横坐标为不同的神经元个数,分别为80、90、100、110、120,纵坐标为损失函数值,四个不同花纹的柱状体表示四个不同的滑动窗口大小,分别为30、40、50、60。从图中可以看到在滑动窗口大小为50以及隐含层神经元个数为100时,交叉熵值最小。所以选择50和100作为滑动窗口大小和神经元个数。
构建基于LSTM的铝电解槽况预测模型,使用此前构建的训练数据集对模型进行迭代训练,得到网络参数和最小的损失函数,然后将测试数据集放入模型中验证模型效果,查看准确率。在训练好的模型中,准确率达到了91.6%。可以看出利用该模型预测槽况时,能够较为准确的预测出槽况的变化情况。
图4 模型参数对比实验图
将该算法应用到铝电解槽况分析系统中,从而实现铝电解槽况的预测,利用训练好的模型,将结果展示在页面中,方便专业人员查看槽况的变化情况。如图5所示,可以看到在中间有槽况的突变;如图6所示,铝电解槽况突变时,LSTM算法分析预测出的槽况与真实槽况的对比。这在实际的生产过程中,专业人员就可根据预测的槽况变化,调整工艺参数的添加,使槽况变好,从而减少企业损失。
图5 系统预测结果图
图6 预测结果与真实槽况对比图
4 结 论
本文首先介绍了关于铝电解的相关研究,包括研究铝电解槽的相关信息以及现阶段对于铝电解槽况预测方面的研究情况,然后介绍了LSTM算法的相关知识。其次是数据的采集工作,本文描述了数据所具有的特点,并且对数据空缺值进行了剔除和线性插值两种操作,因为数据量纲不一致问题,对数据归一化处理,然后利用高斯混合模型对槽况标记。最后是利用准备好的数据对槽况变化利用LSTM模型进行预测。模型根据设定的滑动窗口大小将训练集输入模型训练,训练完成后利用测试集验证模型的准确率,准确率达到了91.6%,能够较为准确的预测出槽况的变化。并将该模型应用到铝电解槽况分析系统中,方便专业人员查看槽况变化,及时作出调整,减少企业损失,对于铝电解工业上有一定的参考价值。