改进Adam 优化器在瓦斯涌出量预测中的应用研究

2024-01-12 11:16刘海东李星诚张文豪
工矿自动化 2023年12期
关键词:瓦斯煤层神经网络

刘海东, 李星诚, 张文豪

(1. 西山煤电(集团)有限责任公司,山西 太原 030053;2. 北京大学 工学院,北京 100871)

0 引言

瓦斯动力灾害是威胁煤矿生产的主要风险之一,准确的瓦斯涌出量预测对瓦斯灾害的防治与通风设计具有重要意义[1]。传统的瓦斯涌出量预测方法(如矿山类比法[2-3]、分源预测法[4-5]等)原理简单,符合工程实际,但预测准确性不高。随着机器学习数据驱动方法的兴起与煤矿智能化建设的推进,可充分利用煤矿的监测数据,使用数据驱动方法进行瓦斯涌出量预测[6]。主要方法包括灰色预测算法[7]、支持向量机算法[8-9]、随机森林算法[8,10]、极限学习机算法[11]、神经网络类算法等。神经网络类算法能够处理影响因素之间的非线性关系,各类神经网络及其变体用于矿井瓦斯预测时准确性和适用范围优于传统预测方法[12-16]。

瓦斯涌出量神经网络预测模型的训练常采用梯度类算法,对可微函数具有较高的计算效率。其中最常用的梯度类算法包括随机梯度下降(Stochastic Gradient Desent,SGD)算法和Adam 算法。Adam 算法[17]是一种引入了指数移动平均(Root Mean Square Propagation, RMSProp)的自适应梯度下降(Adaptive Gradient, AdaGrad)算法,运行速度较SGD 算法更快。然而Adam 算法在部分情况下不收敛或不收敛于极小值点,且可能在训练前期出现难以纠正的过拟合现象[18]。在实际应用场景下,Adam 算法的不收敛性易造成模型的最佳超参数丢失,导致预测效果不佳[17]。许多研究人员对各类预测模型在瓦斯涌出问题上的表现进行了研究[14,19],但对模型训练中优化器性质的关注与改进较少。因此,为了提高瓦斯涌出量预测准确性,缩短模型响应时间,降低瓦斯预测模型部署的硬件性能需求,本文改进了Adam 优化器,在Adam 算法中引入一种随迭代更新的矩估计参数,在保证收敛速率的同时获得了更强的收敛性。以山西焦煤西山煤电集团马兰矿某回采工作面为例,在相同预测模型下考察了改进的Adam 优化器在瓦斯涌出量预测中的训练效率、模型收敛性与预测准确度。

1 工作面概况

马兰矿某回采工作面位于8 号煤层,属稳定可采厚煤层,煤层厚度为3.65~5.20 m,平均厚度为4.39 m,含2 层不稳定夹矸,厚度分别为0.03~0.10,0.10~0.26 m,坚固性系数为1.5,煤质属焦煤。8 号煤下部邻近煤层为间隔11.5~16.0 m 的8 下煤层,厚度为1.42~1.97 m,平均厚度为1.81 m,结构简单。走向长度为1 390 m,倾斜长度为276 m,工作面标高为783~833 m。煤层瓦斯含量为7.6 m3/t,压力为0.4 MPa,有瓦斯涌出风险。胶带巷中多处施工有本煤层瓦斯抽采孔。8 号煤顶板冲刷带附近煤层变薄,地质测试中发现对瓦斯涌出有一定影响。

2 瓦斯涌出量影响因素

2.1 数据预处理

该工作面共回采214 d,以天作为最小时间间隔构建数据集,按照时间序列先后将全部数据的前75%划分为训练集(161 组数据),其后10%划分为验证集(21 组数据),最后15%划分为预测集(32 组数据)。对数据中缺失值、异常值进行填补,对每项影响因素进行无量纲化处理并线性归一至[0,1]区间内。为避免数据量级差异引起的数值误差,全部算例中均使用归一化数据。

2.2 瓦斯涌出量影响因素的筛选

根据工作面的实际特点,影响瓦斯涌出量的因素共19 项,包含本煤层的回采日进尺、工作面标高、煤层厚度、煤层倾角、煤体硬度、初始瓦斯含量、初始瓦斯压力、进风量、回风量、平均埋深,临近煤层的瓦斯含量、瓦斯压力、标高、煤层厚度,煤层间距、采掘点与陷落柱距离、预抽及卸压总量、温度。

矿井瓦斯涌出影响因素多而杂,与地质条件、施工及抽采工作、热力学条件等相关[20]。不必要的高维数据在深度学习模型中可能延长运行时间并降低预测准确性,依据重要性,利用最小绝对收缩选择算子(Least Absolute Shrinkage and Selection Operator,LASSO)对影响瓦斯涌出的因素进行筛选。通过求解最小化含L1 范数正则项的损失函数,对瓦斯涌出量的多项式进行拟合。

式中:c为回归系数向量;T为数据集内的总时刻;yt为t时刻的实际涌出量;xt为t时刻的特征变量向量; λ为惩罚项系数。

若选取较大的惩罚项系数 λ,则式(1)要求c更稀疏,以使得损失函数最小。在此过程中,影响因素的重要程度由c中元素被置零的次序决定。

对训练集求解LASSO 模型轨迹,得到回归系数随惩罚项系数 λ的变化,如图1 所示。其中每条曲线代表了一项影响因素在不同 λ下的回归取值,随着λ的增大,各曲线均逐渐趋近于0。这意味着在 λ足够大时,c应取零向量,使式(1)中目标函数最小,这与LASSO 问题的定义相符。因此在 λ增大的过程中,越晚被置零的因素被认为越重要。

图1 瓦斯涌出变量的LASSO 回归轨迹Fig. 1 LASSO regression trajectory of gas emission variables

选取的 λ越大,筛选得到的关键变量越少,为保证足够的特征信息及模型运算量,本文选择λ=10-6。此时各影响因素的LASSO 回归系数见表1,可见此时保留了13 项因素,重要性以回风量、平均埋深、瓦斯含量、邻近煤层瓦斯含量为著。其中也存在少量与现场认知不符的结果,如瓦斯压力一般与瓦斯含量相关性强,但模型结果中瓦斯压力显得不重要,这是因为压力原始数据缺失项较多,作为数据质量不佳的因素被LASSO 模型弱化。但瓦斯压力对瓦斯含量及涌出量的实际影响在埋深、预抽等相关因素中得到了一定体现。

表1 λ=10-6时LASSO 回归系数Table 1 LASSO regression coefficients atλ=10-6

3 瓦斯预测模型

3.1 循环神经网络

循环神经网络(Recurrent Neural Network,RNN)在传统的前馈神经网络中引入了循环结构,是将神经网络按时间递归执行的衍生。RNN 的基本原理如图2 所示,每个隐藏层节点代表1 个前馈神经网络,其不仅接收当前时刻的输入,还接收先前时刻的隐藏层参数。RNN 在处理时序数据时具备记忆功能,能够在一定程度上捕捉到序列数据的长期依赖关系。因此它可以表现出时间上的动态行为,具有处理时间序列特征数据的能力。

图2 RNN 原理Fig. 2 RNN principle

RNN 模型原理为

式中:ht为t时刻的隐藏层向量;σh,σy为非线性的激活函数;wih,bih,whh,bhh,wiy,biy为模型的参数张量;yˆt为t时刻模型输出的预测结果。

本文选用预测结果在验证集上的均方误差(Mean-Square Error,MSE)作为RNN 模型的损失函数:

式中:Nv为验证集中样本总个数;k为验证集中样本个数;yk为验证集中瓦斯平均涌出量;yˆk为第k个样本的涌出量预测值。

为了判断RNN 模型预测趋势,引入归一化的均方误差(Normalized Mean Square Error,NMSE)。预测趋势的正确性通过比较预测段各极值点间斜率的正负,按照正负匹配率的3 等分点将结果区分为“正确”“基本正确”“不正确”。

式中: ε为归一化的均方误差;V为验证集上瓦斯涌出量的方差。

3.2 改进的Adam 优化器

Adam 算法兼具自适应学习率与指数移动平均传播算法[17]的优势,在一些领域中较SGD 算法具有更好的工作性能[22]。但Adam 算法的学习率主要受二阶动量矩控制,在迭代过程中并非单调递减,导致其在部分情况下不收敛或不收敛于极小值点。本文用一种随迭代变化的矩估计参数β1,i,β2,i对Adam 算法进行改进。

式中:i为迭代步数; μ为矩估计参数的衰减系数。

β1,i随着迭代递减,进而一阶矩和二阶矩在迭代更新时能够获得更强的收敛性。

式中:mi为梯度的一阶矩向量(即梯度的均值);gi为损失函数的梯度;vi为二阶矩向量(即梯度未中心化的方差)。

迭代步数为n时的优化残差为

式中:Li为迭代第i步时的损失函数; θi为预测模型的参数向量; θ*为使损失函数最小的理论参数值。

改进的Adam 算法存在残差上界[17],即

式中:D∞,j分别为参数空间的直径和维数; α为初始学习率; ξ为有限的常数,ξ>0;d为总维数;g1:n=[g1,g2,···,gn]为梯度序列连接成的矩阵;G∞为‖∇Li(θi)‖∞的一个上界。

4 实验结果与分析

对Adam 算法与本文中改进的Adam 算法在不同隐藏层数量、隐藏层节点数量、激活函数下的预测表现进行测试。RNN 模型与Adam 算法在Pytorch 框架下实现,改进的Adam 算法使用Python 3.7 实现。全部模型所用计算机硬件为Intel(R)Core(TM) i5-9300H @2.40 GHz CPU,内存大小为16 GiB。

4.1 隐藏层数量

一般而言,隐藏层数量越多,神经网络的数据拟合能力越强,但过多的隐藏层数量大幅增加了模型运算量,且易引发过拟合。当激活函数σ=tanh,隐藏层节点数为20,隐藏层数分别为1,2,3 时,Adam算法与改进的Adam 算法的预测结果如图3 所示,模型性能表现见表2。

表2 不同隐藏层数下运行结果比较Table 2 Comparison of results under different hidden layers

图3 不同隐藏层数下Adam 算法与改进的Adam 算法的训练及预测结果Fig. 3 Training and prediction results of Adam algorithm and improved Adam algorithm under different numbers of hidden layers

由图3 及表2 可看出,当隐藏层数为1 时,Adam 算法和改进的Adam 算法的表现几乎一致。随着隐藏层数的增加,CPU 运行时间显著增加,当隐藏层数为2 和3 时,改进的Adam 算法较Adam 算法的运行时间分别缩短了18.83,13.72 s。程序运行时发现,当隐藏层数为2 时,Adam 算法达到最大迭代数但仍没有收敛,而改进的Adam 算法达到了收敛。在结果收敛时,2 种算法预测误差相近,Adam 算法未收敛时的预测误差高于改进的Adam 算法。当隐藏层数为3 时,模型表现出了一些过拟合的倾向,在预测集上的误差开始上升,趋势正确性也有所下降。

4.2 隐藏层内节点数

隐藏层中使用的节点(或称神经元)数量与结果有较大的联系,过少的神经元将导致欠拟合,而过多的神经元会导致过拟合。训练集中包含的有限信息量不足以训练隐藏层中的所有节点,会无谓地增加训练时间并降低泛化性能。当模型拥有2 个隐藏层,激活函数σ=tanh,每层内节点数分别为15,20,25时,模型预测结果如图4 所示,模型性能表现见表3。

表3 不同隐藏层节点数下运行结果比较Table 3 Comparison of results with different number of hidden layer nodes

图4 不同隐藏层节点数下Adam 算法与改进的Adam 算法的训练及预测结果Fig. 4 Training and prediction results of Adam algorithm and improved Adam algorithm under the number of nodes of different hidden layers

由图4 和表3 可看出,在3 种隐藏层节点数下,Adam 算法都没有在最大迭代步长内收敛,而改进的Adam 算法均达到了收敛,且CPU 运行时间较Adam算法分别缩短了16.17,188.83,22.15 s。当隐藏层节点数为15 时,用改进的Adam 算法预测时的NMSE超过Adam 算法,其余情况下用改进的Adam 算法预测时的NMSE 显著小于Adam 算法,且改进的Adam算法预测趋势的正确性更高。当每层内节点数为20 时,改进后的模型在190~200 d 预测段内2 处大梯度波动得到了较为有效的捕捉,在总体数据量较小的情况下仍得到了比较理想的泛化性能。随着层内节点数的增大,均方误差有所下降,但预测趋势的正确性降低,对大梯度位置变化趋势的捕捉不够灵敏。

4.3 激活函数

神经网络中的激活函数是模型非线性的主要来源,与输出结果的联系较为紧密,激活函数的选择往往取决于具体问题。分别使用tanh 与ReLU 函数作为激活函数考察模型性能,在验证集上的预测结果如图5 所示,其中图例格式为{隐藏层数,隐藏层节点数,激活函数}。在不同激活函数下运行结果见表4。

表4 不同激活函数下运行结果比较Table 4 Comparison of results under different activation functions

图5 不同激活函数下Adam 算法与改进的Adam 算法的训练及预测结果Fig. 5 Training and prediction results of Adam algorithm and improved Adam algorithm under different activation functions

由图5 和表4 可看出,使用ReLU 作为激活函数时,Adam 算法仅在超参数{2,25,ReLU}下达到收敛,ReLU 函数已经几乎失去了对趋势的判断能力,同时还需要较长的训练时间。使用tanh 作为激活函数时模型性能较好。改进的Adam 算法运行时间较Adam 算法更有优势,使用tanh 函数时,改进的Adam算法运行时间较Adam 算法分别缩短了22.15,41.03 s,使用ReLU 函数时,改进的Adam 算法与Adam 算法运行时间相差不大。

由上述算例可见,2 种优化算法同时收敛时,模型的预测误差与训练用时均相近。这是由于此处使用的预测模型相同,不同的优化器理应收敛至相近的结果。

4.4 网格搜索

使用Adam 算法,在隐藏层数量取1,2,3,隐藏层节点数取15,20,25,激活函数取tanh,ReLU 时做遍历的网格搜索,取得最佳的模型超参数为{2,20,tanh},预测结果如图4(a)所示。此时验证集上MSE 为0.174, NMSE 仅为0.000 236,CPU 运行时间为52.69 s。使用改进后的Adam 算法,做同样的遍历网格搜索,得到最佳的模型超参数为{3,20,tanh},预测结果如图6 所示。此时验证集上MSE、NMSE、运行时间分别为0.078 5,0.000 101,32.59 s。可见改进的Adam 算法得到的最佳模型预测精度高于Adam算法。

图6 最优参数下的模型预测结果Fig. 6 Model prediction results under optimal parameters

在同参数下使用Adam 算法训练模型,MSE、NMSE 分别为0.126,0.000 414,运行时间为78.82 s。在最大迭代步数内结果未收敛,预测趋势不正确,存在过拟合现象。由于Adam 算法在实际的最优参数下不收敛,使得模型错过了最佳参数,仅收敛至前述的次优参数。改进的Adam 算法可通过更强的收敛性提升实际模型预测的准确度,且运行时间较Adam算法缩短了20.1 s。

改进的Adam 算法给出的最优模型对待预测范围内出现的几个低谷及峰值趋势判断均正确,在训练集上的拟合程度适当,未见明显的过拟合现象。这表明模型的泛化性能较好,具备了依据时间序列预测工作面瓦斯涌出量的能力。

5 结论

1) 运用LASSO 方法筛选了影响瓦斯涌出的因素,发现待考察工作面回风量、平均埋深、瓦斯含量、邻近煤层瓦斯含量等影响较大。

2) 以RNN 为例,提出了一种改进的Adam 优化器,解决了常用的Adam 优化器可能不收敛的问题。在煤矿瓦斯预测中可使模型在更多超参数下达到收敛,改进的Adam 算法的运行时间较Adam 算法缩短了20.1 s。

3) 改进的Adam 算法的最优模型的预测精度高于Adam 算法,均方误差仅为0.078 5,具有良好的泛化性能与趋势预测能力。

猜你喜欢
瓦斯煤层神经网络
神经网络抑制无线通信干扰探究
11采区永久避难硐室控制瓦斯涌出、防止瓦斯积聚和煤层自燃措施
高瓦斯矿井防治瓦斯异常涌出措施的应用
基于神经网络的拉矫机控制模型建立
极近距离煤层采空区下煤层巷道支护研究
松软低透煤层CO_2爆破增透技术应用研究
复数神经网络在基于WiFi的室内LBS应用
瓦斯探钻钻头的一种改进
基于支持向量机回归和RBF神经网络的PID整定
三软煤层掘进支护综合分析