溫麗濤,陳 勇
(南華大學 機械工程學院,湖南 衡陽421000)
大數據與人工智能的結合被稱為“科學的第四范式”,機器學習被譽為材料研發的新方法。數據可以從實驗、模擬計算、各大材料數據庫等獲取,再利用機器學習進行數據挖掘,對材料進行研究[1]。機器學習的出現為廣大科研人員的科學研究給予了極大的便利,可以加速材料的研究,節約研發成本。目前,已有許多研究人員使用機器學習模型并獲得成果。如:胡建軍等[2]利用多種機器學習模型,對材料彈性性能進行了歸納和預測;Zhang等[3]利用支持向量機回歸算法,從一系列合金元素中找到恰當合金元素,顯著提高銅合金的極限抗拉強度和電導率;Shen等[4]利用基于不同機器學習算法,結合物理冶金預測材料的強度,成功設計出了超高強度不銹鋼。如此等等,都是利用機器學習來對目前產生的大量材料數據進行數據挖掘,利用已有數據對材料性能進行預測,不僅能充分利用材料數據,而且能對實驗研究進行系統性的指導。
晶粒細化是提高鋁合金性能的重要手段,所以細化劑在工業界被廣泛應用[5]。由于晶粒尺寸能很好的表征晶粒細化的結果,因此本文利用機器學習,實現晶粒尺寸的預測。機器學習的晶粒尺寸性能預測模型工作流程如圖1所示。

圖1 機器學習的材料性能預測工作流程Fig.1 Workflow of performance prediction model via machine learning
本研究首先從文獻中收集篩選出需要的數據樣本、選擇特征、進行數據預處理;然后分別采用Xgboost[6]、RF[7]以及AdaBoost[8]3種機器學習模型預測晶粒尺寸;最后采用五折交叉驗證的方式進行不同模型的驗證、評估指標、得到最佳模型,從而實現鋁及其合金晶粒尺寸的預測。
Xgboost是一種集成算法,自提出后便被廣泛用于數學界和工業界。其基本思想,是把成百上千個準確率較低的、且合理生成的每顆樹,組合成一個準確率較高的模型。該算法有諸多優點:有正則化項防止過擬合、可以加快訓練速度等等。
XGBoost的目標函數如下:

RF是由Leo Breiman于2001年提出,由決策樹組合成的集成算法。即由很多決策樹組成的森林,且每棵決策樹之間無關聯。RF是指在變量和數據的使用上進行隨機化,產生很多決策樹,再將之匯總的結果。RF的構造過程如下:
(1)用N表示訓練集的個數,M表示特征數目;
(2)輸入特征數目m,用于確定決策樹節點的結果,m應遠小于M;
(3)從N個訓練集中以有放回抽樣的方式,取樣N次,形成一個訓練集,并用未抽到的樣本作預測,評估其誤差;
(4)對于每個節點,隨機選擇m個特征,計算其最佳的分裂方式;
(5)每棵樹都不會剪枝,這有可能在建完一棵正常樹狀分類器后會被采用;
(6)按照步驟(3)~(5)建立大量的決策樹,從而構成RF。
Adaboost算法是一種自適應的集成算法,1995年由Yoav Freund和Robert Schapire提出。它的自適應在于:如果前一個弱分類器將樣本分錯,那么樣本對應的權值會得到加強,即權值更大,權值更新后的樣本用來訓練下一個新的弱分類器。每次訓練時,都是用總樣本來訓練新的弱分類器,產生新權值,如此反復迭代直到達到預定的評估指標或達到最大迭代次數。簡要過程如下:
(1)初始化訓練集的權值分布。如果有n個樣本,則每一個訓練的樣本點最開始時都被賦予相同的權重為1/n;
(2)弱分類器訓練。具體訓練過程中,若樣本準確分類,則權值降低,否則,權值增大,即弱分類器得到更高話語權。權值更新后的數據集被用于訓練下個分類器,如此反復迭代;
(3)集成算法。將多個弱分類器組合成強分類器,在每個弱分類器的訓練過程結束后,誤差率高的弱分類器在最終分類器中占的比例較小,反之則較大。
本文通過對已有文獻中的鋁及其合金的相關數據的查找,收集樣本數據[9]。選擇的特征變量包括鋁及其合金類型、細化劑類型、細化劑成分和細化劑比例,其中晶粒尺寸的值作為目標變量,即預測的目的變量。
本文使用Python3.7進行數據處理和算法模型計算。Python作為一款開源軟件,因其代碼的可讀性高,且擁有豐富強大的擴展包。其中,第三方Scikit-learn[10]庫,集成了各種數據處理方法及大量算法模型,可高效便捷地進行數據處理和建立機器學習模型。文中使用的One-Hot編碼、數據標準化、RF以及AdaBoost算法都選自Scikit-learn包。Xgboost算法來自第三方擴展包。
預測晶粒尺寸時,需進行特征數據的預處理。因鋁及其合金與細化劑種類為非數值類型的數據,無法參與計算,在建立模型之前,需將其進行獨熱編碼,也就是One-Hot編碼。
由于不同特征之間的數據量級相差較大,所以還需要將特征數據進行標準化處理。處理后的數據不僅可以消除數據量級不一致對機器學習帶來的影響,并使數據仍保持了原始分布。即對每個特征進行如下變換:

式中,x i為輸入的數據,x-和σ分別為特征的均值和標準差。值得注意的是,該處理雖然使原本數據失去本來的意義,但利于模型的建立。
本文使用平均絕對誤差MAE、均方根誤差(Root Mean Squared Error,RMSE)和決定系數R2值被用來作為泛化性能評估。公式如下:

式中,n為樣本數量;為真實值;y j為預測值。R2為決定系數的最大取值,設定為1。取值越接近1,表明擬合程度越好。
不同模型的測試集評估結果見表1。其中,3種機器學習模型的R2值相差不大,表現最好的是Xgboost模型,R2為0.929 9(即可以解釋92.99的方差),M A E和R M S E分別為6.220 9、38.699 0。AdaBoost表現結果次之,RF相對最差。由此可見,對于同一數據集,不同的機器學習模型表現效果不一致。因此,合理選用機器模型對預測結果十分重要。

表1 不同機器學習模型下測試樣本的預測結果比較Tab.1 Comparison of test sample results under different machine learning models
為了充分使用數據集,實驗采用五折交叉驗方法,保證每個數據都能作為訓練集或測試集出現。Xgboost、RF、AdaBoost算法的R2交叉驗證結果見表2??梢钥闯觯?種算法在交叉驗證中的R2均存在波動,說明在選取不同的訓練集與測試集時,會導致預測結果有較大差異。其中RF算法在交叉驗證的5折交叉驗證中,其R2預測結果在0.50-0.97之間波動,變化起伏相對其它兩個較小,說明該算法在應對數據集時穩定效果最好,且預測結果較好。Xgboost、AdaBoost的R2交叉驗證結果相對RF來說波動幅度更大,說明不同算法應對不同屬性數據的穩定效果不同。圖2為不同機器學習模型的R2與RMSE交叉驗證均值結果,可以看出誤差都比較大,預測結果不穩定,可能是數據量不足所致。其中RF的R2值為0.79,RMSE的值為7.04,說明在3種機器學習模型中預測結果最佳。

表2 不同機器學習的R2交叉驗證結果Tab.2 Cross validation of R2 results under different machine learning

圖2 不同機器學習模型下R2與RMSE交叉驗證均值結果Fig.2 Cross validation mean results of R2 and MAE under different machine learning model
為了更直觀地說明3種不同機器學習模型的優劣,比較了不同算法下的預測結果,如圖3所示??梢钥闯觯?種機器學習模型的預測結果大多在y=x之上或附近,即預測結果相對真實值相吻合,其中RF的預測結果最佳。

圖3 不同機器學習下的預測結果Fig.3 Prediction results under different machine learning
本文利用三種機器學習算法對鋁及其合金晶粒尺寸進行預測。分析發現:(1)不同的機器學習模型用于晶粒尺寸的預測,其預測結果有較大差異,其中RF模型表現最佳,R2為0.79,R M S E為7.04;(2)由于輸入樣本時是隨機的,同一個機器學習模型中的預測結果R2不穩定,不同的樣本會導致模型的好壞,也可能是樣本數量不足導致的。文中研究結果為進一步研究鋁及其合金的晶粒尺寸提供有益的參考,有利于研究人員對晶粒細化的相關研究。