溫麗濤,陳 勇
(南華大學(xué) 機(jī)械工程學(xué)院,湖南 衡陽421000)
大數(shù)據(jù)與人工智能的結(jié)合被稱為“科學(xué)的第四范式”,機(jī)器學(xué)習(xí)被譽(yù)為材料研發(fā)的新方法。數(shù)據(jù)可以從實(shí)驗(yàn)、模擬計(jì)算、各大材料數(shù)據(jù)庫(kù)等獲取,再利用機(jī)器學(xué)習(xí)進(jìn)行數(shù)據(jù)挖掘,對(duì)材料進(jìn)行研究[1]。機(jī)器學(xué)習(xí)的出現(xiàn)為廣大科研人員的科學(xué)研究給予了極大的便利,可以加速材料的研究,節(jié)約研發(fā)成本。目前,已有許多研究人員使用機(jī)器學(xué)習(xí)模型并獲得成果。如:胡建軍等[2]利用多種機(jī)器學(xué)習(xí)模型,對(duì)材料彈性性能進(jìn)行了歸納和預(yù)測(cè);Zhang等[3]利用支持向量機(jī)回歸算法,從一系列合金元素中找到恰當(dāng)合金元素,顯著提高銅合金的極限抗拉強(qiáng)度和電導(dǎo)率;Shen等[4]利用基于不同機(jī)器學(xué)習(xí)算法,結(jié)合物理冶金預(yù)測(cè)材料的強(qiáng)度,成功設(shè)計(jì)出了超高強(qiáng)度不銹鋼。如此等等,都是利用機(jī)器學(xué)習(xí)來對(duì)目前產(chǎn)生的大量材料數(shù)據(jù)進(jìn)行數(shù)據(jù)挖掘,利用已有數(shù)據(jù)對(duì)材料性能進(jìn)行預(yù)測(cè),不僅能充分利用材料數(shù)據(jù),而且能對(duì)實(shí)驗(yàn)研究進(jìn)行系統(tǒng)性的指導(dǎo)。
晶粒細(xì)化是提高鋁合金性能的重要手段,所以細(xì)化劑在工業(yè)界被廣泛應(yīng)用[5]。由于晶粒尺寸能很好的表征晶粒細(xì)化的結(jié)果,因此本文利用機(jī)器學(xué)習(xí),實(shí)現(xiàn)晶粒尺寸的預(yù)測(cè)。機(jī)器學(xué)習(xí)的晶粒尺寸性能預(yù)測(cè)模型工作流程如圖1所示。
圖1 機(jī)器學(xué)習(xí)的材料性能預(yù)測(cè)工作流程Fig.1 Workflow of performance prediction model via machine learning
本研究首先從文獻(xiàn)中收集篩選出需要的數(shù)據(jù)樣本、選擇特征、進(jìn)行數(shù)據(jù)預(yù)處理;然后分別采用Xgboost[6]、RF[7]以及AdaBoost[8]3種機(jī)器學(xué)習(xí)模型預(yù)測(cè)晶粒尺寸;最后采用五折交叉驗(yàn)證的方式進(jìn)行不同模型的驗(yàn)證、評(píng)估指標(biāo)、得到最佳模型,從而實(shí)現(xiàn)鋁及其合金晶粒尺寸的預(yù)測(cè)。
Xgboost是一種集成算法,自提出后便被廣泛用于數(shù)學(xué)界和工業(yè)界。其基本思想,是把成百上千個(gè)準(zhǔn)確率較低的、且合理生成的每顆樹,組合成一個(gè)準(zhǔn)確率較高的模型。該算法有諸多優(yōu)點(diǎn):有正則化項(xiàng)防止過擬合、可以加快訓(xùn)練速度等等。
XGBoost的目標(biāo)函數(shù)如下:
RF是由Leo Breiman于2001年提出,由決策樹組合成的集成算法。即由很多決策樹組成的森林,且每棵決策樹之間無關(guān)聯(lián)。RF是指在變量和數(shù)據(jù)的使用上進(jìn)行隨機(jī)化,產(chǎn)生很多決策樹,再將之匯總的結(jié)果。RF的構(gòu)造過程如下:
(1)用N表示訓(xùn)練集的個(gè)數(shù),M表示特征數(shù)目;
(2)輸入特征數(shù)目m,用于確定決策樹節(jié)點(diǎn)的結(jié)果,m應(yīng)遠(yuǎn)小于M;
(3)從N個(gè)訓(xùn)練集中以有放回抽樣的方式,取樣N次,形成一個(gè)訓(xùn)練集,并用未抽到的樣本作預(yù)測(cè),評(píng)估其誤差;
(4)對(duì)于每個(gè)節(jié)點(diǎn),隨機(jī)選擇m個(gè)特征,計(jì)算其最佳的分裂方式;
(5)每棵樹都不會(huì)剪枝,這有可能在建完一棵正常樹狀分類器后會(huì)被采用;
(6)按照步驟(3)~(5)建立大量的決策樹,從而構(gòu)成RF。
Adaboost算法是一種自適應(yīng)的集成算法,1995年由Yoav Freund和Robert Schapire提出。它的自適應(yīng)在于:如果前一個(gè)弱分類器將樣本分錯(cuò),那么樣本對(duì)應(yīng)的權(quán)值會(huì)得到加強(qiáng),即權(quán)值更大,權(quán)值更新后的樣本用來訓(xùn)練下一個(gè)新的弱分類器。每次訓(xùn)練時(shí),都是用總樣本來訓(xùn)練新的弱分類器,產(chǎn)生新權(quán)值,如此反復(fù)迭代直到達(dá)到預(yù)定的評(píng)估指標(biāo)或達(dá)到最大迭代次數(shù)。簡(jiǎn)要過程如下:
(1)初始化訓(xùn)練集的權(quán)值分布。如果有n個(gè)樣本,則每一個(gè)訓(xùn)練的樣本點(diǎn)最開始時(shí)都被賦予相同的權(quán)重為1/n;
(2)弱分類器訓(xùn)練。具體訓(xùn)練過程中,若樣本準(zhǔn)確分類,則權(quán)值降低,否則,權(quán)值增大,即弱分類器得到更高話語權(quán)。權(quán)值更新后的數(shù)據(jù)集被用于訓(xùn)練下個(gè)分類器,如此反復(fù)迭代;
(3)集成算法。將多個(gè)弱分類器組合成強(qiáng)分類器,在每個(gè)弱分類器的訓(xùn)練過程結(jié)束后,誤差率高的弱分類器在最終分類器中占的比例較小,反之則較大。
本文通過對(duì)已有文獻(xiàn)中的鋁及其合金的相關(guān)數(shù)據(jù)的查找,收集樣本數(shù)據(jù)[9]。選擇的特征變量包括鋁及其合金類型、細(xì)化劑類型、細(xì)化劑成分和細(xì)化劑比例,其中晶粒尺寸的值作為目標(biāo)變量,即預(yù)測(cè)的目的變量。
本文使用Python3.7進(jìn)行數(shù)據(jù)處理和算法模型計(jì)算。Python作為一款開源軟件,因其代碼的可讀性高,且擁有豐富強(qiáng)大的擴(kuò)展包。其中,第三方Scikit-learn[10]庫(kù),集成了各種數(shù)據(jù)處理方法及大量算法模型,可高效便捷地進(jìn)行數(shù)據(jù)處理和建立機(jī)器學(xué)習(xí)模型。文中使用的One-Hot編碼、數(shù)據(jù)標(biāo)準(zhǔn)化、RF以及AdaBoost算法都選自Scikit-learn包。Xgboost算法來自第三方擴(kuò)展包。
預(yù)測(cè)晶粒尺寸時(shí),需進(jìn)行特征數(shù)據(jù)的預(yù)處理。因鋁及其合金與細(xì)化劑種類為非數(shù)值類型的數(shù)據(jù),無法參與計(jì)算,在建立模型之前,需將其進(jìn)行獨(dú)熱編碼,也就是One-Hot編碼。
由于不同特征之間的數(shù)據(jù)量級(jí)相差較大,所以還需要將特征數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。處理后的數(shù)據(jù)不僅可以消除數(shù)據(jù)量級(jí)不一致對(duì)機(jī)器學(xué)習(xí)帶來的影響,并使數(shù)據(jù)仍保持了原始分布。即對(duì)每個(gè)特征進(jìn)行如下變換:
式中,x i為輸入的數(shù)據(jù),x-和σ分別為特征的均值和標(biāo)準(zhǔn)差。值得注意的是,該處理雖然使原本數(shù)據(jù)失去本來的意義,但利于模型的建立。
本文使用平均絕對(duì)誤差MAE、均方根誤差(Root Mean Squared Error,RMSE)和決定系數(shù)R2值被用來作為泛化性能評(píng)估。公式如下:
式中,n為樣本數(shù)量;為真實(shí)值;y j為預(yù)測(cè)值。R2為決定系數(shù)的最大取值,設(shè)定為1。取值越接近1,表明擬合程度越好。
不同模型的測(cè)試集評(píng)估結(jié)果見表1。其中,3種機(jī)器學(xué)習(xí)模型的R2值相差不大,表現(xiàn)最好的是Xgboost模型,R2為0.929 9(即可以解釋92.99的方差),M A E和R M S E分別為6.220 9、38.699 0。AdaBoost表現(xiàn)結(jié)果次之,RF相對(duì)最差。由此可見,對(duì)于同一數(shù)據(jù)集,不同的機(jī)器學(xué)習(xí)模型表現(xiàn)效果不一致。因此,合理選用機(jī)器模型對(duì)預(yù)測(cè)結(jié)果十分重要。
表1 不同機(jī)器學(xué)習(xí)模型下測(cè)試樣本的預(yù)測(cè)結(jié)果比較Tab.1 Comparison of test sample results under different machine learning models
為了充分使用數(shù)據(jù)集,實(shí)驗(yàn)采用五折交叉驗(yàn)方法,保證每個(gè)數(shù)據(jù)都能作為訓(xùn)練集或測(cè)試集出現(xiàn)。Xgboost、RF、AdaBoost算法的R2交叉驗(yàn)證結(jié)果見表2??梢钥闯觯?種算法在交叉驗(yàn)證中的R2均存在波動(dòng),說明在選取不同的訓(xùn)練集與測(cè)試集時(shí),會(huì)導(dǎo)致預(yù)測(cè)結(jié)果有較大差異。其中RF算法在交叉驗(yàn)證的5折交叉驗(yàn)證中,其R2預(yù)測(cè)結(jié)果在0.50-0.97之間波動(dòng),變化起伏相對(duì)其它兩個(gè)較小,說明該算法在應(yīng)對(duì)數(shù)據(jù)集時(shí)穩(wěn)定效果最好,且預(yù)測(cè)結(jié)果較好。Xgboost、AdaBoost的R2交叉驗(yàn)證結(jié)果相對(duì)RF來說波動(dòng)幅度更大,說明不同算法應(yīng)對(duì)不同屬性數(shù)據(jù)的穩(wěn)定效果不同。圖2為不同機(jī)器學(xué)習(xí)模型的R2與RMSE交叉驗(yàn)證均值結(jié)果,可以看出誤差都比較大,預(yù)測(cè)結(jié)果不穩(wěn)定,可能是數(shù)據(jù)量不足所致。其中RF的R2值為0.79,RMSE的值為7.04,說明在3種機(jī)器學(xué)習(xí)模型中預(yù)測(cè)結(jié)果最佳。
表2 不同機(jī)器學(xué)習(xí)的R2交叉驗(yàn)證結(jié)果Tab.2 Cross validation of R2 results under different machine learning
圖2 不同機(jī)器學(xué)習(xí)模型下R2與RMSE交叉驗(yàn)證均值結(jié)果Fig.2 Cross validation mean results of R2 and MAE under different machine learning model
為了更直觀地說明3種不同機(jī)器學(xué)習(xí)模型的優(yōu)劣,比較了不同算法下的預(yù)測(cè)結(jié)果,如圖3所示??梢钥闯觯?種機(jī)器學(xué)習(xí)模型的預(yù)測(cè)結(jié)果大多在y=x之上或附近,即預(yù)測(cè)結(jié)果相對(duì)真實(shí)值相吻合,其中RF的預(yù)測(cè)結(jié)果最佳。
圖3 不同機(jī)器學(xué)習(xí)下的預(yù)測(cè)結(jié)果Fig.3 Prediction results under different machine learning
本文利用三種機(jī)器學(xué)習(xí)算法對(duì)鋁及其合金晶粒尺寸進(jìn)行預(yù)測(cè)。分析發(fā)現(xiàn):(1)不同的機(jī)器學(xué)習(xí)模型用于晶粒尺寸的預(yù)測(cè),其預(yù)測(cè)結(jié)果有較大差異,其中RF模型表現(xiàn)最佳,R2為0.79,R M S E為7.04;(2)由于輸入樣本時(shí)是隨機(jī)的,同一個(gè)機(jī)器學(xué)習(xí)模型中的預(yù)測(cè)結(jié)果R2不穩(wěn)定,不同的樣本會(huì)導(dǎo)致模型的好壞,也可能是樣本數(shù)量不足導(dǎo)致的。文中研究結(jié)果為進(jìn)一步研究鋁及其合金的晶粒尺寸提供有益的參考,有利于研究人員對(duì)晶粒細(xì)化的相關(guān)研究。