APP下载

机器学习辅助高熵合金相结构预测

2022-10-14葛美伶司天宇何忠平

关键词:分类器合金分类

张 欢,程 洪,葛美伶,司天宇,何忠平

(成都大学 机械工程学院,四川 成都 610106)

0 引 言

机器学习(machine learning,ML)[1]作为人工智能的一部分,与材料科学相结合[2-3],充分发挥数据驱动技术的优势,给材料科学研究提供了新的手段和方向.Zhang等[4]使用ML中的遗传算法预测高熵合金相分类的2个问题,即对于固溶体和非固溶体,采用支持向量机分类效果最好,测试正确率为88.7%,而对于体心立方和面心立方相的分类,神经网络算法的准确率为91.3%.杜航等[5]采用基于遗传算法的反向传播神经网络算法预测石油单井产量,从而避免了计算的复杂性.Chang等[6]利用ML模型对高熵合金的硬度进行了预测,并利用该模型找到了AlCoCrFeMnNi基高熵合金的最佳成分.王锡琴等[7]在预测水泥粉煤灰碎石桩复合地基承载力的实验中使用神经网络模型进行学习训练数据,结果显示此预测能力是可行的.Roy等[8]利用ML模型,预测由5种难熔元素组成的低、中、高熵合金的晶相和杨氏模量.

高熵合金由于其优异的性能[9]备受关注.TiZr基难熔合金(包括Ti-Zr-Nb-Cr-Fe[10]、Ti-Zr-Nb-Ta[11]、Ti-Zr-Hf-Nb-Mo[12]系)与传统Ti基合金相比表现出更高的强度和硬度,也具有更优异的耐磨性,因此被视为当前生物医用材料[13]研究的热点.同时,相结构的正确选择在高熵合金设计中扮演重要的角色,然而对于特定性能要求的多组分合金设计还没有完整的理论,均通过试错确定[14-15],所以结合ML对高熵合金相选择的研究不仅能指导合金设计,也提升了发现新合金的效率.图1展示了材料学中ML的一般步骤. 本研究使用支持向量机(support vector machine,SVM)[16]、决策树(decision tree,DT)[17]、随机森林(random forest,RF)[18]3种ML模型预测高熵合金相形成,采用网格搜索、交叉验证的方式对不同模型进行优化,最后使用接受者操作特性(receiver operating characteristic,ROC)曲线进行模型评估,进而实现对TiZrNbMo系难熔高熵合金生成相的预测,并验证模型的适用性.

图1 材料学中ML的一般步骤

1 ML方法

1.1 SVM

SVM是典型的二分类算法,其基本思路是定义特征空间上间隔最大的线性分类器,即在特征空间里用某条线或某块面将训练数据集分成2类.分类原理如图2所示,依据的原则是间隔最大化,即特征空间中距离分离线或面最近的点到这条线或面的间隔最大.

图2 SVM分类原理图

SVM使用核函数[19]来实现非线性和高维性,最终创建可分的类.对于非线性问题,采用高斯径向基函数作为相似函数,将特征从原始空间映射到无限穷维特征空间,从而实现线性分离.

式(1)为相似函数,用来衡量特征的转换.

ØK(x,l)=exp(-r‖x-l‖2)

(1)

式中,Ø表示特征从一个空间映射到新的空间,K为高斯核函数,x、l分别表示空间中的2个特征向量,r是可调的参数(通常取正数).通过计算空间中任一点到某中心之间的欧氏距离,计算特征转化在其他空间的相似性,从而可知,点与点的距离越近则相似性越高,因此相似函数呈现出一种单调的关系.

通过此函数进行计算,可以得到新的相似特征,转换数据集以后,使得不可分离的数据集变得可以分离.SVM对于不太复杂、规模在中小型左右的数据集,能达到比较理想的效果.

1.2 DT

DT是一种监督学习方法,结构简单,效率较高,其核心思路是递归选择出最优特征进行分类.在分类问题中,DT基于特征参数对实例进行分类,从给定数据集中训练某个模型,用来对新的数据进行分类.通过不纯度选择最优划分属性,一般来说,纯度越高,DT对训练数据的拟合越好.目前使用的DT算法在分支方法上的核心大多数都是围绕在某个不纯度相关指标的最优化上.本研究使用的ML库中,关于不纯度计算方法提供了2种选择,分别是信息熵(Entropy)和基尼系数(Gini Impurity)[20],其计算方法如式(2)、式(3)所示:

(2)

(3)

式中,t表示给定的某个节点,i表示目标变量的任意分类,p(i|t)代表分类i在节点t上所占的比例.

本研究实际计算的是基于信息熵的信息增益,也就是父节点的信息熵和子节点的信息熵之差.该模型的主要优点是具有可读性、分类速度快.

1.3 RF

RF算法是ML中集成学习的一种,其基本思路是为了解决某组参数的模型或单个模型存在的缺陷,从而整合更多的模型,避免局限性,取长补短,将许多棵DT整合成森林,合并起来预测最终结果.RF模型在训练数据集时,会产生不同的数据集,从而产生多棵具有差异性的DT,涉及到2种集成方法:1)装袋方法(Bagging),是自动聚集法(Bootstrap Aggregation)的简称[21].Bootstrap指的是自助抽样集成.此种方法会从训练数据集中取出K个样本,再从此K个样本训练出K个分类器.每次取出的K个样本皆会再放回母体,所以此K个样本之间会有部分数据重复,但由于每棵树的样本还是不同,因此训练出的分类器(树)之间具有差异性,而每个分类器的权重一致,最后用投票方式可得到最终结果.2)提升方法(Boosting):与Bagging类似,通过提高旧分类器的错误资料权重,加重对错误部分的练习,训练出新的分类器,这样新的分类器就会学习到错误分类资料的特性,进而提升分类结果.

2 ML预测高熵合金相结构

2.1 数据收集

本研究通过分析高熵合金的相形成规律,探讨高熵合金相形成规律所需的参数.基于文献[22],总共有325条高熵合金数据.通过去除冗余数据,初步清洗数据,最终形成包含293条合金数据的数据集,其中包括72条固溶体数据、129条金属间化合物数据及92条非晶相数据.选择价电子浓度VEC、混合焓ΔHmix、混合熵ΔSmix、原子半径差δ、组成元素平均熔点Tmelt、电负性差Δχ等特征变量,作为ML的输入.特征变量及其计算方法如式(4)~(9)所示,以高熵合金生成相Phase的分类作为ML的输出,也就是目标变量.

(4)

(5)

(6)

(7)

(8)

(9)

式(4)~(9)中,Ci是第i个元素的含量,n是合金中元素的个数,Hij是元素i和j的混合焓,ri是第i个元素的原子半径,R是摩尔气体常数,Tmi是平均熔化温度,VECi是第i个元素的价电子浓度,χi是第i个元素的电负性,χ是平均电负性.

2.2 软件选择

本研究以Python作为编程语言,采用Jupyter Notebook为开发工具.Python作为一款开源软件,目前已经有很多可用的学习库.本研究主要用到ML开源库Scikit-learn 0.24[23],使用其中的分类模型SVM、DT、RF来完成高熵合金的相分类问题.表1给出了Python中的Pandas模块显示的部分数据.

表1 Pandas模块显示的部分数据

2.3 数据处理

在使用SVM进行高熵合金数据训练时,需要对数据进行标准化处理.本研究使用Pandas库对每个特征应用式(10)来规范化特征值,使其范围在0到1之间.

(10)

式中,Xnew是一个标准化特征,Xi是来自6个特征之一的原始数据.Xmax,i和Xmin,i分别是各自特征的最大值和最小值.这种归一化过程导致了无量纲的数值特征.该过程确保了每个单独的特征具有相同的数值尺度,并且所有的特征都被平等处理,也更有利于训练模型的建立,保证预测结果的准确性.

2.4 模型评估

本研究采用K折交叉验证法优化模型.在每种算法训练过程中,使用网格搜索进行调参.通过绘制ROC-AUC曲线评估算法模型的预测性能,计算对应分类器预测的错误样本被分为正确的概率(即假正例率)和分类器预测的正类样本中实际正确样本占总样本的概率(即真正例率).计算过程如式(11)、式(12)所示.

(11)

(12)

式中,X、Y分别表示为横坐标、纵坐标,FPR表示假正例率,TPR表示真正例率,TP表示正确的肯定数目,TN表示正确排除的不匹配数目,FN表示没有找到正确匹配的数目,FP表示错误样本被误报为正确的数目.

AUC(area under curve)为ROC曲线下方的面积,其数值介于0.1和1之间.AUC数值可以直观评价分类器的好坏,其数值越靠近1,表明分类效果越好.

3 结果与讨论

本研究使用开源ML库Scikit-learn,利用RF分类器计算特征重要性,并对其重要性进行排序,发现混合熵和原子半径差的重要性都相对靠后.如图3所示,混合焓ΔHmix的重要系数达到0.29,原子半径差δ的系数为0.11,可见ΔHmix在高熵合金相结构预测中发挥很大的作用.

图3 特征重要性排序

为了分析可视化特征的重要性及两两特征之间的相关性,本研究绘制了两两特征因子之间3个阶段的散点图,如图4所示.从图4可知,ΔHmix和Tmelt在某种程度上有一个分隔边界.然而,对于VEC和δ的相关性分析,分隔这些特征的边界就会变得模糊.因此,可以推断ΔHmix和Tmelt是最重要的特征,这与使用RF分类器得到的特征排序结果一致.同时,对角线子图显示了相位分布的直方图,从而可知,任何子图中的所有直方图都不能相互分离,这意味着没有一个单一的特征可以用来对高熵合金相进行完全分类,准确的分类依赖于多个特征参数共同实现.

图4 两两特征因子间3个阶段的散点图

本研究使用上述介绍的3种ML算法,包括Scikit-learn库中的SVM分类器、DT分类器、RF分类器来建立模型.为了充分使用训练集或验证集,实验过程中使用10折交叉验证法训练数据,最终训练精度如表2所示.为防止数据过拟合,把数据划分为训练集和测试集,其中,9份作为训练集,1份作为测试集.按照同样的方法对每种算法训练10次,最终将10次的平均值作为对算法精度的估计.3种算法的平均评估精度如图5所示,其中,SVM和RF分类器在10折交叉验证过程中分别达到了0.88和0.82的预测精度.

表2 交叉验证法

图5 不同算法的平均评估精度

分类DT中,使用信息增益作为寻找叶节点的标准,DT最大深度为9.从文献[1]可知,如果深度值非常大,就会导致过拟合,而如果深度值过低,则会导致欠拟合.在实验过程中,通过网格搜索方法调整模型训练参数,防止过拟合或欠拟合而导致模型性能下降,显示最佳深度值为9,采用10折交叉验证法评估模型,平均交叉验证得分为0.78,不断调参过后达到0.87的预测精度.这意味着,对于已存在的高熵合金数据,使用DT分类器预测相的分类,可以达到0.87的预测效果.同样,在RF分类器研究中,使用n个分类评估器,n个评估器的值在10到200之间,间隔为50,最大深度在3到14之间变化.结果发现,n个评估器的最佳参数值为50,最大深度值为9,最佳参数值的预测精度达到0.91.SVM中,使用高斯径向核函数作为分类器的核函数,惩罚因子取值为1,对数据进行无量纲化处理,最终得到0.92的预测精度.

为了进一步评估模型性能,比较3种ML模型的优劣,本研究绘制了ROC曲线,通过计算AUC面积来评估ML算法对高熵合金不同生成相的预测性能,如图6所示.类别0表示非晶相的分类,类别1表示金属间化合物的分类,类别2表示固溶体的分类.不同的ML模型对高熵合金生成相的预测能力不同,其中,DT更倾向于金属间化合物的预测,SVM、RF对高熵合金形成固溶体比较敏感,而SVM更有利于预测非晶相.对于整体的预测效果,RF的预测能力最佳,达到0.93的预测精度.

图6 3种模型的ROC曲线

为了再次验证模型的适用性,本研究选用TiZrNbMo系难熔高熵合金作为测试集,采用最好性能的RF分类器预测其生成相.经预测,TiZrNbMo系难熔高熵合金相结构为固溶体相,这与文献[21-25]中实验测得的结果基本一致,充分说明了建立的RF模型在高熵合金相分类预测的适用性.

4 结束语

本研究使用3种ML模型预测了高熵合金的不同生成相,确定了不同的ML算法对高熵合金生成相的预测结果不同,其中,RF模型的表现最佳,其预测精度达到0.93,同时RF训练数据的ROC曲线相对更加光滑.另外,由于模型训练过程中作为ML的输入参数都是随机的,同一个ML模型中,对高熵合金不同相的预测效果也不同.RF对固溶体的预测效果最好,且使用RF模型对TiZrNbMo系难熔高熵合金进行预测验证,得到的预测结果与实验结果基本一致,由此说明了ML模型的可用性.本研究将ML应用到高熵合金领域来解决其相分类的问题,为寻找理想合金提供了很大帮助.未来关于ML辅助高熵合金设计的研究会更深入,而且ML与材料学的结合必会更加促进材料科学的发展.

猜你喜欢

分类器合金分类
钼钨合金烧结致密化行为
分类算一算
分类讨论求坐标
数据分析中的分类讨论
Zr-Nb-Fe合金在LiOH溶液中的腐蚀行为
教你一招:数的分类
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
Hastelloy C-2000合金的焊接工艺
基于LLE降维和BP_Adaboost分类器的GIS局部放电模式识别