循环展开在电磁场计算中的应用

2024-03-05 00:40邢阔鹏阎秀恪任自艳
东北电力技术 2024年2期
关键词:机器有限元预测

邢阔鹏,阎秀恪,任自艳

(沈阳工业大学电气工程学院,辽宁 沈阳 110870)

0 引言

随着特高压电网的建设与发展,系统中电气设备的容量和体积不断增大[1]。在进行设备耦合物理场有限元分析时,为了实现高精度计算,必须对电气模型进行较为精细剖分,网格数量的庞大使得计算规模变大,消耗大量的计算资源和计算时间。为了提升有限元计算效率,学者们在网格剖分、方程组求解、并行计算等方面做了很多研究[2]。

除了上述算法层级的研究,代码层级的指令级并行技术对于程序的速度优化也存在着重要影响,例如循环展开,循环展开已被证明为加快计算机运算有效的方法,能够直接提高程序的性能。

循环展开能够减小循环开销对于程序运行时间的影响,但是循环展开增加了计算代码的数量,受到机器资源硬件的影响,不能够总是对其完全展开。针对不同结构的循环程序进行分析,确定最佳的展开度,将会在整体上最有效地提高有限元的计算性能和计算效率。确定不同特征变量的循环计算中的最佳展开因子,大致有启发式方法、机器学习、迭代编译3类方法。随着人工智能的发展,机器学习在军事决策、医学诊断、气象预测等领域有着广泛的研究和应用[3]。

对于循环展开因子的寻优,学者们通过循环特征与展开因子之间的关联数据集,建立不同机器学习算法模型,调整参数以提高预测准确度。文献[4]使用多种机器学习算法,交叉验证进行准确度计算,讨论了不同机器学习算法的模型准确度,在其数据集上取得了65%的准确率。文献[5]为预测最佳展开因子,对随机森林(random forest,RF)中的决策树进行加权思想的改进,最终在其数据集上取得了81%的准确率。目前采用机器学习对循环展开因子的预测研究,大多基于已有的循环特征与展开因子间的关联数据集,数据集的获得并未提及,而这一数据集的建立也包含了循环特征与计算时间以及展开因子之间的预测与择优,且应用于不同领域的循环特征也不相同。

本文针对工程电磁场有限元分析中的循环计算,在代码层面研究最佳展开因子的预测。首先通过大量循环计算,建立不同循环特征、不同展开因子与计算时间的数据集,基于数据集来建立不同的机器学习算法模型并进行参数优化。然后得到特征变量到计算时间的回归预测,选择不同循环特征计算时间最少时对应的展开因子为最佳因子,建立循环特征与展开因子之间的关联数据集。最后通过建立及训练机器学习模型完成展开因子的分类预测,将预测得到的展开因子应用到1台单相变压器的磁场有限元计算,不同网格数量下的计算效率都得到了提高。

1 机器学习与循环展开

机器学习是现代数据科学领域不可或缺的组成部分,机器学习对于数据统计计算有着极其敏锐的分析力和洞察力[6]。通过使用统计方法,对算法进行训练,用来实现分类或回归预测的功能,揭示数据挖掘项目中关联的关键信息,这些构成了模型的决策功能,从而有效影响最后的评估指标[7]。

机器学习是在数据和统计基础上,对数据集中数据关联关系的探索,数据集中的信息越丰富,机器学习的预测效果越理想。机器学习算法在建立时,首先将数据集分为训练集、验证集和测试集,训练集中的数据是形成机器学习模型的基础,对训练集进行分析能够形成初始算法模型,验证集可以对算法模型进行优化时检测模型优化前后的效果,经常用于寻找最佳超参数,测试集对最终的模型进行评估[8],机器学习模型建立的过程如图1所示。

图1 模型建立流程

对于循环展开,循环特征与展开因子间由计算时间来建立联系,相同循环特征、不同展开因子对应不同的计算时间,计算时间的择优得到这组循环特征对应的最佳展开因子。因此,对最佳循环展开因子的预测分为2个阶段。第1阶段建立不同循环特征、不同展开因子及计算时间的数据集,进行循环特征到计算时间的预测,这个过程属于回归预测,需要建立机器学习回归模型,并进行参数优化以提高拟合度。第2阶段通过回归预测得到的数据进行择优,建立循环特征与展开因子之间的关联数据集,进行从循环特征到展开因子的预测,这个过程属于分类预测,需要建立机器学习的分类模型,并进行数据预处理以提高准确度,具体流程见图2。

图2 数据分析流程

2 机器学习模型建立

数据集是机器学习的基础,根据有限元分析中循环包含的信息选取表征循环的特征变量。本文选取迭代次数、运行计算1、运行计算2、基本数据类型1、基本数据类型2、语句数、一次依赖地址数、多次依赖地址数、寻址总次数、寻址数组个数、展开次数和时间作为数据内容的特征部分,在有限元计算的程序中进行大量计算,对其进行整理并总结出最终的数据集。

2.1 建立数据集

通过建立不同的学习模型对数据集进行测试和比较,选择较好的机器学习模型进行最后的分析和计算。本文使用了多种机器学习模型进行建模分析,使用单一学习器进行分析可能会造成预测的不准确,集成算法会对这种现象产生抑制,本文分别研究了单一学习器的最近邻(K-nearest neighbor,KNN)算法和支持向量机(support vector machines,SVM)算法的计算方法和预测效果,还研究了集成方式的RF算法及其改进版算法的预测效果。比较它们之间的指标结果,采用效果最好的模型作为最终的回归预测模型。

2.2 建立机器学习模型

KNN算法是通过测量不同特征值之间的距离来进行预测,在回归算法中其输出的值为其阈值范围内K个离测试样本最近数据的平均值[9]。在KNN算法中,对于阈值的限定可以对偏离众数的特殊值进行剔除,减小异常值对模型造成的不良影响[10]。

同样使用距离来进行衡量计算的还有SVM算法,其最初是用来进行二分类,要实现各类样本点到超平面的距离最远,从而划分为2类,而回归算法则是与其相反,找到各类样本点到超平面的距离最近实现数据的回归拟合,但SVM算法和KNN算法比较适合用于小数据集的场合。其用到的是点到面的距离公式并将其向量化,点到面的距离公式:

(1)

分离超平面的数学表达式为ωx+b=0,将距离公式向量化后:

(2)

式中:xi为第i个特征向量;yi为类标记,取+1或-1;ω、b分别为直线的法向量和截距;‖ω‖为ω的二范数。

通过构建大量的基学习器(决策树),RF能够在很大程度上降低过拟合,即使有个别决策树会因为离群值的影响而导致预测不精确,但是其预测结果是参照多个决策树得出的结果,从而降低了离群值所造成的影响[11]。在当前机器学习算法中,具有极好的准确率,但噪音的存在会造成过拟合缺陷[12]。RF算法如图3所示。

图3 RF算法

信息熵是对信息多少的量化,信息熵越小含有的信息量越大。RF算法中特征重要性需要信息熵来表示,选择重要性高的特征作为首先分裂属性,能够使模型计算更加准确且迅速[13]。信息熵H(D)的计算公式如下:

(3)

为了衡量不同划分方式降低信息熵的效果,还需要计算分裂后信息熵的减少值,该减少值称为信息增益,计算公式如下:

(4)

式中:Pi为某个类别信息所占的比例;|D|为样本容量;假设有k个类Ck,特征A有n个不同的取值,根据取值将划分为n个D1,D2,…,Di子集,|Di|为Di样本个数,子集Di中属于类Ck的样本集合为Dik。

为了克服RF存在容易过拟合的缺点,出现了梯度提升树(gradient boosting decison tree,GDBT)和极端梯度提升树(extreme gradient boost,XGB)算法。GDBT利用前1轮迭代弱学习器的误差率来更新训练集的权重,是一种迭代方式的算法模型。通过不断计算和拟合残差学习1个新的树,不断地更新函数值得到回归提升树。

(5)

式中:θm为决策树的参数;m为树的个数;x为输入量;T(x;θm)为决策树,是每次使用残差拟合的函数值。

(6)

2种方法形成的模型最大的区别就是对于训练数据的处理及对于权重和分割节点方法的选取不同,但都是更好的对模型进行修正权重,使得模型更加快速和准确。

本文建立了上述机器学习算法的模型并对数据集进行了预测,用平均绝对值误差(mean absolute error,MAE)、均方误差(mean squared error,MSE)、和平均绝对偏差(mean absolute deviation,MAD)作为模型的评价指标,结果如表1所示。

表1 机器学习模型评估

由表1数据可知,数据集在KNN算法和SVM算法的拟合程度较差,所以选择其余3种学习器进行优化和分析。而RF、XGB和GDBT 3种方法的拟合效果较好,其中RF在训练集中表现较其他突出,但在测试集中不如XGB和GDBT,说明在此数据集中的RF泛化效果不如其他2种,但均方差等评价指标都在一个水平。RF算法测试集的真实值和预测值对比如图4所示,可以看出RF的预测值与真实值之间误差更小,拟合度更高,集成算法有一定的改善效果但拟合度还有待提高,将对这种情况进行进一步分析和改进。

图4 RF算法测试集的真实值和预测值对比

2.3 参数优化

由于模型评估的分数和拟合效果并不是特别理想,选取评估指标最好的算法模型,针对RF、XGB和GDBT 3种机器学习算法采取网格搜索技术(GridSearchCV)遍历各个学习器中设置的超参数[14],在每次迭代过程中对模型进行评价,根据计算的所有预测值中选出最佳的1套超参数组合构成最佳模型,采用过多的超参数进行优化会使计算时间过长,所以使用适当的超参数优化是必要的。

由表2可知,几乎每个学习器经过网格搜索超参数的优化之后,评价指标都有所改进,与真实值更加接近,对模型的预测能力进行了改进提升,但在测试集上的效果尚不够理想。

表2 优化后的模型评估

2.4 模型融合

为了提高预测值与真实值的拟合度,本文进行了3种算法之间的模型融合研究。模型融合是一种集成算法,其中包括Bagging、Boosting、Stacking等多种计算形式,在本文中主要使用Stacking堆叠法对模型进行再优化分析,Stacking法是基于模型预测结果作为新1轮预测中的特征形成的多层预测模型[15],图5是Stacking方法的训练过程。

图5 Stacking训练过程

基于对参数进行优化后的RF、XGB和GDBT算法,使用Stacking方法对原数据拟合的堆叠进行建模,对训练集和验证集进行预测,从而实现二次学习,达到更高的拟合度,对第2层的学习使用简单模型降低复杂度,减小过拟合的可能性,表3的数据是模型融合后进行的评估结果。

表3 模型融合后的评估结果

由表3可知,XGB+GDBT模型融合在测试中能够达到较其他模型更好的结果,比之前的模型评估结果更加贴近真实值,误差变得更小,选取该模型作为回归预测的最终模型,图6是XGB+GDBT模型融合后的真实值与预测值对比图,可以看到其拥有良好的数据拟合能力。

图6 测试集真实值和预测值对比

由图6可知,数据集在使用Stacking方式下的XGB+GDBT算法模型实现的拟合程度较高,误差较小,完成了回归预测。通过回归模型,能不进行循环计算,较为准确地预测任意特征、任意展开因子循环的计算时间,从而找到某一循环特征对应的最佳展开因子,进而建立循环特征与最佳展开因子关联的数据集。基于数据集,建立机器学习分类预测模型,实现由循环特征到最佳展开因子的预测。

2.5 分类预测

建立特征到展开因子的关联数据集后,由于展开因子是离散的整数,之前的回归模型则不再适用,需要重新建立分类模型。神经网络模型在分类算法中具有处理大数据的能力,直接将原始的数据作为输入,网络从输出层到输入层对每一层进行权重的更新[16],通过Softmax公式计算能准确地处理多分类数据集,神经网络结构如图7所示。

图7 神经网络结构

在对数据集进行标准化预处理的操作后,建立了1个4层的神经网络模型,输入为循环展开数据集的特征,输出是最佳展开因子的标签,最后的模型准确率达到95%,可以准确预测最佳展开因子。图8为模型训练时损失和准确度的迭代过程。

图8 模型损失和准确度曲线

3 循环展开在电磁场有限元分析中的应用

将上述模型应用到电磁场有限元分析代码中的循环计算,预测最佳展开因子,并将展开前后的代码用于计算1台型号为DSP-241000/500单相变压器的主磁场,并对展开前后的计算时间进行了对比分析。有限元计算程序由C++语言编写,在CPU为i5-8300H、主频为2.30 GHz、运行内存为8 GB的计算机上执行有限元计算。变压器参数如表4所示,使用C++计算程序计算得到的磁场分布如图9所示,变压器磁力线分布如图10所示。

表4 变压器额定参数

图9 变压器磁场分布

图10 变压器磁力线分布

本文计算的是变压器空载情况,为了计算更符合实际,选择较为安全的低压侧进行试验,高压侧开路。从图9、图10中可知变压器的主磁场主要分布在铁心里,磁力线在铁心中闭合,铁心中的磁密约为1.5 T。本文研究了不同网格下的不同单元数和不同节点数对于计算的影响,比较了展开前后的计算时间,计算的加速效果对比如表5所示。

表5 加速对比

使用不同网格剖分后进行计算,在程序中进行循环展开会提升计算速度,但网格和单元数只是影响循环的一部分变量,其他关联数据和硬件设施等因素也会影响加速效果。

4 结语

本文使用循环展开对程序进行加速,但为了确定其中关键性因素——最佳展开因子,使用机器学习模型对数据集进行建模预测和分析。为了达到良好的预测效果,对比了多种机器学习模型和提升算法,通过比较而得Stacking方法的准确度最高,采用此方法建立最后的时间预测模型,由此得到最佳的影响计算速度的特征和最佳展开因子的数据集。通过建立一个神经网络模型进行最后的多分类预测。为了验证加速效果在变压器的有限元计算模型中提取单元和节点信息,将展开前后的程序进行计算,得到良好的加速程度,从而可以看出选择最佳展开因子对程序进行展开,计算有着明显加速提升的效果。从本文可以看出使用循环展开对程序能够进行加速提升,另外循环展开不仅能够在串行计算中使用,也能够在并行计算中起到加速效果,可以为其他优化创造机会,实现程序的二次加速。

猜你喜欢
机器有限元预测
无可预测
机器狗
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
机器狗
未来机器城
不必预测未来,只需把握现在
无敌机器蛛
磨削淬硬残余应力的有限元分析
基于SolidWorks的吸嘴支撑臂有限元分析