張 歡,程 洪,葛美伶,司天宇,何忠平
(成都大學 機械工程學院,四川 成都 610106)
機器學習(machine learning,ML)[1]作為人工智能的一部分,與材料科學相結(jié)合[2-3],充分發(fā)揮數(shù)據(jù)驅(qū)動技術(shù)的優(yōu)勢,給材料科學研究提供了新的手段和方向.Zhang等[4]使用ML中的遺傳算法預(yù)測高熵合金相分類的2個問題,即對于固溶體和非固溶體,采用支持向量機分類效果最好,測試正確率為88.7%,而對于體心立方和面心立方相的分類,神經(jīng)網(wǎng)絡(luò)算法的準確率為91.3%.杜航等[5]采用基于遺傳算法的反向傳播神經(jīng)網(wǎng)絡(luò)算法預(yù)測石油單井產(chǎn)量,從而避免了計算的復(fù)雜性.Chang等[6]利用ML模型對高熵合金的硬度進行了預(yù)測,并利用該模型找到了AlCoCrFeMnNi基高熵合金的最佳成分.王錫琴等[7]在預(yù)測水泥粉煤灰碎石樁復(fù)合地基承載力的實驗中使用神經(jīng)網(wǎng)絡(luò)模型進行學習訓練數(shù)據(jù),結(jié)果顯示此預(yù)測能力是可行的.Roy等[8]利用ML模型,預(yù)測由5種難熔元素組成的低、中、高熵合金的晶相和楊氏模量.
高熵合金由于其優(yōu)異的性能[9]備受關(guān)注.TiZr基難熔合金(包括Ti-Zr-Nb-Cr-Fe[10]、Ti-Zr-Nb-Ta[11]、Ti-Zr-Hf-Nb-Mo[12]系)與傳統(tǒng)Ti基合金相比表現(xiàn)出更高的強度和硬度,也具有更優(yōu)異的耐磨性,因此被視為當前生物醫(yī)用材料[13]研究的熱點.同時,相結(jié)構(gòu)的正確選擇在高熵合金設(shè)計中扮演重要的角色,然而對于特定性能要求的多組分合金設(shè)計還沒有完整的理論,均通過試錯確定[14-15],所以結(jié)合ML對高熵合金相選擇的研究不僅能指導合金設(shè)計,也提升了發(fā)現(xiàn)新合金的效率.圖1展示了材料學中ML的一般步驟. 本研究使用支持向量機(support vector machine,SVM)[16]、決策樹(decision tree,DT)[17]、隨機森林(random forest,RF)[18]3種ML模型預(yù)測高熵合金相形成,采用網(wǎng)格搜索、交叉驗證的方式對不同模型進行優(yōu)化,最后使用接受者操作特性(receiver operating characteristic,ROC)曲線進行模型評估,進而實現(xiàn)對TiZrNbMo系難熔高熵合金生成相的預(yù)測,并驗證模型的適用性.
圖1 材料學中ML的一般步驟
SVM是典型的二分類算法,其基本思路是定義特征空間上間隔最大的線性分類器,即在特征空間里用某條線或某塊面將訓練數(shù)據(jù)集分成2類.分類原理如圖2所示,依據(jù)的原則是間隔最大化,即特征空間中距離分離線或面最近的點到這條線或面的間隔最大.
圖2 SVM分類原理圖
SVM使用核函數(shù)[19]來實現(xiàn)非線性和高維性,最終創(chuàng)建可分的類.對于非線性問題,采用高斯徑向基函數(shù)作為相似函數(shù),將特征從原始空間映射到無限窮維特征空間,從而實現(xiàn)線性分離.
式(1)為相似函數(shù),用來衡量特征的轉(zhuǎn)換.
?K(x,l)=exp(-r‖x-l‖2)
(1)
式中,?表示特征從一個空間映射到新的空間,K為高斯核函數(shù),x、l分別表示空間中的2個特征向量,r是可調(diào)的參數(shù)(通常取正數(shù)).通過計算空間中任一點到某中心之間的歐氏距離,計算特征轉(zhuǎn)化在其他空間的相似性,從而可知,點與點的距離越近則相似性越高,因此相似函數(shù)呈現(xiàn)出一種單調(diào)的關(guān)系.
通過此函數(shù)進行計算,可以得到新的相似特征,轉(zhuǎn)換數(shù)據(jù)集以后,使得不可分離的數(shù)據(jù)集變得可以分離.SVM對于不太復(fù)雜、規(guī)模在中小型左右的數(shù)據(jù)集,能達到比較理想的效果.
DT是一種監(jiān)督學習方法,結(jié)構(gòu)簡單,效率較高,其核心思路是遞歸選擇出最優(yōu)特征進行分類.在分類問題中,DT基于特征參數(shù)對實例進行分類,從給定數(shù)據(jù)集中訓練某個模型,用來對新的數(shù)據(jù)進行分類.通過不純度選擇最優(yōu)劃分屬性,一般來說,純度越高,DT對訓練數(shù)據(jù)的擬合越好.目前使用的DT算法在分支方法上的核心大多數(shù)都是圍繞在某個不純度相關(guān)指標的最優(yōu)化上.本研究使用的ML庫中,關(guān)于不純度計算方法提供了2種選擇,分別是信息熵(Entropy)和基尼系數(shù)(Gini Impurity)[20],其計算方法如式(2)、式(3)所示:
(2)
(3)
式中,t表示給定的某個節(jié)點,i表示目標變量的任意分類,p(i|t)代表分類i在節(jié)點t上所占的比例.
本研究實際計算的是基于信息熵的信息增益,也就是父節(jié)點的信息熵和子節(jié)點的信息熵之差.該模型的主要優(yōu)點是具有可讀性、分類速度快.
RF算法是ML中集成學習的一種,其基本思路是為了解決某組參數(shù)的模型或單個模型存在的缺陷,從而整合更多的模型,避免局限性,取長補短,將許多棵DT整合成森林,合并起來預(yù)測最終結(jié)果.RF模型在訓練數(shù)據(jù)集時,會產(chǎn)生不同的數(shù)據(jù)集,從而產(chǎn)生多棵具有差異性的DT,涉及到2種集成方法:1)裝袋方法(Bagging),是自動聚集法(Bootstrap Aggregation)的簡稱[21].Bootstrap指的是自助抽樣集成.此種方法會從訓練數(shù)據(jù)集中取出K個樣本,再從此K個樣本訓練出K個分類器.每次取出的K個樣本皆會再放回母體,所以此K個樣本之間會有部分數(shù)據(jù)重復(fù),但由于每棵樹的樣本還是不同,因此訓練出的分類器(樹)之間具有差異性,而每個分類器的權(quán)重一致,最后用投票方式可得到最終結(jié)果.2)提升方法(Boosting):與Bagging類似,通過提高舊分類器的錯誤資料權(quán)重,加重對錯誤部分的練習,訓練出新的分類器,這樣新的分類器就會學習到錯誤分類資料的特性,進而提升分類結(jié)果.
本研究通過分析高熵合金的相形成規(guī)律,探討高熵合金相形成規(guī)律所需的參數(shù).基于文獻[22],總共有325條高熵合金數(shù)據(jù).通過去除冗余數(shù)據(jù),初步清洗數(shù)據(jù),最終形成包含293條合金數(shù)據(jù)的數(shù)據(jù)集,其中包括72條固溶體數(shù)據(jù)、129條金屬間化合物數(shù)據(jù)及92條非晶相數(shù)據(jù).選擇價電子濃度VEC、混合焓ΔHmix、混合熵ΔSmix、原子半徑差δ、組成元素平均熔點Tmelt、電負性差Δχ等特征變量,作為ML的輸入.特征變量及其計算方法如式(4)~(9)所示,以高熵合金生成相Phase的分類作為ML的輸出,也就是目標變量.
(4)
(5)
(6)
(7)
(8)
(9)
式(4)~(9)中,Ci是第i個元素的含量,n是合金中元素的個數(shù),Hij是元素i和j的混合焓,ri是第i個元素的原子半徑,R是摩爾氣體常數(shù),Tmi是平均熔化溫度,VECi是第i個元素的價電子濃度,χi是第i個元素的電負性,χ是平均電負性.
本研究以Python作為編程語言,采用Jupyter Notebook為開發(fā)工具.Python作為一款開源軟件,目前已經(jīng)有很多可用的學習庫.本研究主要用到ML開源庫Scikit-learn 0.24[23],使用其中的分類模型SVM、DT、RF來完成高熵合金的相分類問題.表1給出了Python中的Pandas模塊顯示的部分數(shù)據(jù).
表1 Pandas模塊顯示的部分數(shù)據(jù)
在使用SVM進行高熵合金數(shù)據(jù)訓練時,需要對數(shù)據(jù)進行標準化處理.本研究使用Pandas庫對每個特征應(yīng)用式(10)來規(guī)范化特征值,使其范圍在0到1之間.
(10)
式中,Xnew是一個標準化特征,Xi是來自6個特征之一的原始數(shù)據(jù).Xmax,i和Xmin,i分別是各自特征的最大值和最小值.這種歸一化過程導致了無量綱的數(shù)值特征.該過程確保了每個單獨的特征具有相同的數(shù)值尺度,并且所有的特征都被平等處理,也更有利于訓練模型的建立,保證預(yù)測結(jié)果的準確性.
本研究采用K折交叉驗證法優(yōu)化模型.在每種算法訓練過程中,使用網(wǎng)格搜索進行調(diào)參.通過繪制ROC-AUC曲線評估算法模型的預(yù)測性能,計算對應(yīng)分類器預(yù)測的錯誤樣本被分為正確的概率(即假正例率)和分類器預(yù)測的正類樣本中實際正確樣本占總樣本的概率(即真正例率).計算過程如式(11)、式(12)所示.
(11)
(12)
式中,X、Y分別表示為橫坐標、縱坐標,F(xiàn)PR表示假正例率,TPR表示真正例率,TP表示正確的肯定數(shù)目,TN表示正確排除的不匹配數(shù)目,F(xiàn)N表示沒有找到正確匹配的數(shù)目,F(xiàn)P表示錯誤樣本被誤報為正確的數(shù)目.
AUC(area under curve)為ROC曲線下方的面積,其數(shù)值介于0.1和1之間.AUC數(shù)值可以直觀評價分類器的好壞,其數(shù)值越靠近1,表明分類效果越好.
本研究使用開源ML庫Scikit-learn,利用RF分類器計算特征重要性,并對其重要性進行排序,發(fā)現(xiàn)混合熵和原子半徑差的重要性都相對靠后.如圖3所示,混合焓ΔHmix的重要系數(shù)達到0.29,原子半徑差δ的系數(shù)為0.11,可見ΔHmix在高熵合金相結(jié)構(gòu)預(yù)測中發(fā)揮很大的作用.
圖3 特征重要性排序
為了分析可視化特征的重要性及兩兩特征之間的相關(guān)性,本研究繪制了兩兩特征因子之間3個階段的散點圖,如圖4所示.從圖4可知,ΔHmix和Tmelt在某種程度上有一個分隔邊界.然而,對于VEC和δ的相關(guān)性分析,分隔這些特征的邊界就會變得模糊.因此,可以推斷ΔHmix和Tmelt是最重要的特征,這與使用RF分類器得到的特征排序結(jié)果一致.同時,對角線子圖顯示了相位分布的直方圖,從而可知,任何子圖中的所有直方圖都不能相互分離,這意味著沒有一個單一的特征可以用來對高熵合金相進行完全分類,準確的分類依賴于多個特征參數(shù)共同實現(xiàn).
圖4 兩兩特征因子間3個階段的散點圖
本研究使用上述介紹的3種ML算法,包括Scikit-learn庫中的SVM分類器、DT分類器、RF分類器來建立模型.為了充分使用訓練集或驗證集,實驗過程中使用10折交叉驗證法訓練數(shù)據(jù),最終訓練精度如表2所示.為防止數(shù)據(jù)過擬合,把數(shù)據(jù)劃分為訓練集和測試集,其中,9份作為訓練集,1份作為測試集.按照同樣的方法對每種算法訓練10次,最終將10次的平均值作為對算法精度的估計.3種算法的平均評估精度如圖5所示,其中,SVM和RF分類器在10折交叉驗證過程中分別達到了0.88和0.82的預(yù)測精度.
表2 交叉驗證法
圖5 不同算法的平均評估精度
分類DT中,使用信息增益作為尋找葉節(jié)點的標準,DT最大深度為9.從文獻[1]可知,如果深度值非常大,就會導致過擬合,而如果深度值過低,則會導致欠擬合.在實驗過程中,通過網(wǎng)格搜索方法調(diào)整模型訓練參數(shù),防止過擬合或欠擬合而導致模型性能下降,顯示最佳深度值為9,采用10折交叉驗證法評估模型,平均交叉驗證得分為0.78,不斷調(diào)參過后達到0.87的預(yù)測精度.這意味著,對于已存在的高熵合金數(shù)據(jù),使用DT分類器預(yù)測相的分類,可以達到0.87的預(yù)測效果.同樣,在RF分類器研究中,使用n個分類評估器,n個評估器的值在10到200之間,間隔為50,最大深度在3到14之間變化.結(jié)果發(fā)現(xiàn),n個評估器的最佳參數(shù)值為50,最大深度值為9,最佳參數(shù)值的預(yù)測精度達到0.91.SVM中,使用高斯徑向核函數(shù)作為分類器的核函數(shù),懲罰因子取值為1,對數(shù)據(jù)進行無量綱化處理,最終得到0.92的預(yù)測精度.
為了進一步評估模型性能,比較3種ML模型的優(yōu)劣,本研究繪制了ROC曲線,通過計算AUC面積來評估ML算法對高熵合金不同生成相的預(yù)測性能,如圖6所示.類別0表示非晶相的分類,類別1表示金屬間化合物的分類,類別2表示固溶體的分類.不同的ML模型對高熵合金生成相的預(yù)測能力不同,其中,DT更傾向于金屬間化合物的預(yù)測,SVM、RF對高熵合金形成固溶體比較敏感,而SVM更有利于預(yù)測非晶相.對于整體的預(yù)測效果,RF的預(yù)測能力最佳,達到0.93的預(yù)測精度.
圖6 3種模型的ROC曲線
為了再次驗證模型的適用性,本研究選用TiZrNbMo系難熔高熵合金作為測試集,采用最好性能的RF分類器預(yù)測其生成相.經(jīng)預(yù)測,TiZrNbMo系難熔高熵合金相結(jié)構(gòu)為固溶體相,這與文獻[21-25]中實驗測得的結(jié)果基本一致,充分說明了建立的RF模型在高熵合金相分類預(yù)測的適用性.
本研究使用3種ML模型預(yù)測了高熵合金的不同生成相,確定了不同的ML算法對高熵合金生成相的預(yù)測結(jié)果不同,其中,RF模型的表現(xiàn)最佳,其預(yù)測精度達到0.93,同時RF訓練數(shù)據(jù)的ROC曲線相對更加光滑.另外,由于模型訓練過程中作為ML的輸入?yún)?shù)都是隨機的,同一個ML模型中,對高熵合金不同相的預(yù)測效果也不同.RF對固溶體的預(yù)測效果最好,且使用RF模型對TiZrNbMo系難熔高熵合金進行預(yù)測驗證,得到的預(yù)測結(jié)果與實驗結(jié)果基本一致,由此說明了ML模型的可用性.本研究將ML應(yīng)用到高熵合金領(lǐng)域來解決其相分類的問題,為尋找理想合金提供了很大幫助.未來關(guān)于ML輔助高熵合金設(shè)計的研究會更深入,而且ML與材料學的結(jié)合必會更加促進材料科學的發(fā)展.