定 巍,苗以升,張 壇,黃麗穎
(1.內蒙古科技大學,內蒙古 包頭 014010;2.河北科技工程職業技術大學,河北 邢臺 054035)
機器學習是一種利用數據進行研究的學科,它利用大量數據來訓練算法模型,以便讓模型能夠自動進行分析、預測和決策[1]。因此,研究人員可以利用這些數據,使用機器學習這一工具,推進合金材料的科學研究[2]。
機器學習在材料科學中已經取得了一些重要的成果[3],這些成果是基于在材料科學領域的完備研究,這類研究有歷史長、數據規模大的特點。因此,在運用機器學習方法時,研究人員可以利用已有的數據庫[4],或者是在從相關文獻中獲取完整數據[5-8],無需擔心數據不足的問題。可是,在某些發展時間較短的研究領域,數據量相對較少,很難利用機器學習進行輔助,例如在鋁合金領域,研究人員正在研究可用于制作飛機機翼、工廠儲罐的鋁合金材料,這需要鋁合金具有高屈服強度以及良好的抗腐蝕性[9],但相關的研究目前正在推進,可用數據量仍較少。因此,以現有完整的鋁合金成分-屈服強度-抗腐蝕性數據的規模,難以簡單直接地套用機器學習方法進行相關研究[10]。
在之前基于機器學習的合金材料研究中,也有部分研究是通過較為復雜的方法進行小規模數據建模。這些方法分為三種:(1)利用所需數據少的模型完成建模[11]。(2)將合金相關的先驗知識輔助模型進行學習[12-13]。(3)利用主動學習的方式為模型補充數據[14-16]。這些方法也可以利用小規模的鋁合金成分-屈服強度-抗腐蝕性數據進行研究,但是這些方法存在缺點:(1)所需數據少的模型預測不穩定、實用性差。(2)合金相關的先驗知識受限于研究人員的專業水平,錯誤的先驗知識會破環模型的預測能力。(3)主動學習的模型需要研究人員根據模型需要進行大量的合金制備,所需實驗周期長。并且,這三種方法應用于鋁合金成分-屈服強度-抗腐蝕性研究時,也存在共同的缺點,就是不能夠有效地利用已積累的規模較大的成分-屈服強度和成分-抗腐蝕性研究數據。
本文將研究利用文獻已有的成分-屈服強度和成分-抗腐蝕性數據,使用半監督機器學習方法對數據進行擴充,然后對鋁合金的成分參數與屈服強度、抗腐蝕性進行機器學習建模。
在獲取到的相關文獻的數據中,選擇鋁合金的Al、Cu、Fe、Si、Mn、Mg、Cr、Zn 等8 種合金元素的質量分數。抗腐蝕性劃定為4 個等級:好、較好、一般、較差,預測抗腐蝕性為分類問題。屈服強度直接選用確定值,預測屈服強度是回歸問題。利用半監督機器學習方法,對成分-屈服強度數據和成分-抗腐蝕性數據進行擴充,使之都成為完整的成分-屈服強度-抗腐蝕性數據,圖1 為這一流程的示意圖,紅色字符為新補充的數據。

圖1 半監督學習擴充數據流程示意圖
在質量過關的前提下,使用擴充數據進行有監督的機器學習建模,實現兩個功能:
(1)通過鋁合金組成成分預測鋁合金的屈服強度和抗腐蝕性。
(2)以目標屈服強度和抗腐蝕性為輸入,反向成分設計出目標鋁合金組成成分。
本文使用半監督機器學習方法對數據進行擴充。半監督學習是指在訓練機器學習模型時,既使用有標簽數據建立模型,又利用大量的無標簽數據來提高模型的準確性和可靠性[17]。在通過成分預測屈服強度實驗中,成分數據是特征,屈服強度數據是標簽,所以成分-屈服強度數據是有標簽數據,而成分-抗腐蝕性數據是只有特征而沒有標簽的無標簽數據,本文要擴充的正是這部分缺少的標簽。
本文采用Zhou[18]提出的Co-Training,一種以K 鄰近算法(KNN)模型為基礎的半監督學習方法。KNN 模型是一個基礎機器學習模型,它基于某種距離度量找出訓練集中與測試樣本最靠近的K 個訓練樣本,然后基于這K 個“鄰居”的信息進行預測[19]。
Co-Training 方法設置多個不同超參數的KNN 模型,分別使用同一有標簽數據集進行訓練,再分別對無標簽數據進行預測,并對預測結果置信度高的數據進行標注,設定為“偽標簽”數據,并將這個數據加入其他模型所使用的有標簽數據集中,對模型進行二次訓練。經過數次迭代后,就完成了對無標簽數據的充分利用,進一步強化了KNN 模型的準確性。
訓練完成后,選出預測結果置信度高的無標簽,并將其中缺少的標簽用模型預測的值進行填補,完成數據擴充,從而建立了足夠大的鋁合金成分-屈服強度-抗腐蝕性數據集,稱之為擴充數據集。因為所有標簽都已被補完,所以該數據集可用于有監督的反向設計實驗。
同時,擴充數據集的數據量大于原有的成分-屈服強度和成分-抗腐蝕性數據集,而本文正向預測實驗,使用有監督模型進行建模,因此數據量越大越好。但數據量越大越好是建立在數據具有高質量的前提下,本節實驗已證明擴充數據集在半監督學習模型上表現良好,只需證明該數據集的可遷移性[20],就可證明擴充數據集具有很高的質量。
數據集的高可遷移性是指數據集在被某模型生成并檢測后,應用于不同模型時,能產生與原模型相同的檢測結果。數據集的可遷移性,是數據集的重要評判標準[21]。
本實驗中,分別使用擴充前后的數據集對人工神經網絡(ANN)、隨機森林算法(RF)和KNN 模型進行訓練,驗證擴充數據是否具有可遷移性。ANN 是一種按照誤差逆向傳播算法訓練的多層前饋神經網絡,具有很強的非線性映射能力[22]。RF 是一個包含多個決策樹模型的算法,其輸出是由樹的輸出的眾數而定[23]。為保證實驗客觀,本實驗中KNN 模型的超參數與KNN 模型所使用的超參數不同。
因為沒有合適的公共數據集進行測試,所以使用N 交叉驗證方法對模型與數據進行評估。N 折交叉驗證是機器學習中常用的評估方法,是指將數據集分割為N 份,N-1 份為訓練數據,另外1 份為驗證數據。本文中分別進行5 折交叉驗證和10 折交叉驗證,并進行100 次數據集隨機分割,每次分割后,都進行相應的訓練、驗證步驟,取所有驗證結果的平均值。
在證明擴充數據具有較高的可遷移性后,使用這些數據進行下一節的正向預測性能實驗和反向設計成分實驗。
在鋁合金組成成分預測屈服強度和抗腐蝕性實驗中選擇有監督的ANN、RF、KNN 模型進行建模。以鋁合金的成分為輸入,抗腐蝕性或屈服強度為輸出。通過比對三個模型的驗證結果,以選擇合適的模型進行預測。
反向成分設計實驗,以抗腐蝕性和屈服強度同時作為輸入,輸出8 種金屬元素的質量分數。因為需要同時輸出多個標簽,所以不選用KNN、RF 模型,選用對輸入輸出不設限制的ANN 模型。以擴充后得到的數據為訓練數據,利用獲取到的少量的成分-屈服強度-抗腐蝕性完整數據進行驗證。這部分完整數據是來自同時研究鋁合金屈服強度和抗腐蝕性的文獻,并且不在擴充數據集中,通過這部分數據進行驗證,可以反映出以擴充數據集為訓練集的模型能否設計出真實世界的鋁合金。
在成分-屈服強度數據的擴充實驗中,通過有標簽數據進行KNN 模型建模后,最終模型選取了無標簽數據中的70%進行數據擴充,用擴充后的數據進行模型強化。在模型強化前后,分別對有標簽數據進行預測,結果如圖2 所示,圖2(a)為使用無標簽數據強化前的表現,圖2(b)為強化后的表現。橫坐標為目標值,是數據原有的值,縱坐標為預測值。因此,越接近圖中對角虛線的預測點越準確。對兩組預測點分別進行線性回歸擬合,擬合線越接近對角虛線,說明預測越準確。

圖2 模型預測值分布
如圖2(a)所示,僅使用有標簽數據進行訓練,預測點的線性回歸擬合線已經非常接近對角虛線,說明此時訓練得到的KNN 模型已經非常準確。經過無標簽數據強化后,圖2(b)中線性回歸擬合線的斜率更接近1,截距更接近原點,說明擬合線更加貼近對角虛線。說明無標簽數據對模型的擬合起到了正向作用。
在成分-抗腐蝕性數據的擴充實驗中,有標簽數據為成分-抗腐蝕性數據,無標簽數據為成分-屈服強度數據的成分數據。通過有標簽數據進行建模后,模型選擇了所有的無標簽數據進行數據擴充,用無標簽數據進行模型強化,并且兩個階段的分類準確率都是100%。這是因為分類問題較回歸問題更簡單,對數據質量要求低。目前可知,用擴充數據對半監督學習中的KNN 模型進行訓練,沒有對模型起到負向作用。
使用ANN、RF、KNN 模型對成分-屈服強度數據進行建模,所用數據集分為兩組,一組為擴充得到的成分-屈服強度-抗腐蝕性數據中的成分與屈服強度數據,另一組為原有的成分-屈服強度數據。回歸誤差值使用(1)。
檢驗擴充數據實驗結果圖3,圖3(a)(b)(c)是成分-屈服強度預測圖,成分-屈服強度實驗結果使用(1)衡量。圖3(d)(e)(f)為成分-抗腐蝕性預測圖,實驗結果使用分類準確率衡量。所有柱狀圖都代表100 次隨機驗證集劃分后,模型在驗證集上的實驗結果平均值,誤差棒代表100 次實驗結果的標準差。
在成分-屈服強度預測實驗中,使用擴充后的數據集訓練后,KNN、RF 模型預測的回歸誤差平均值都有降低,并且實驗結果的標準差也都相應減小。說明使用擴充后的數據集訓練模型可以提高KNN、RF模型的性能,并且能使模型的輸出更加穩定。但在ANN 模型上,回歸誤差反而增高了,推測可能是模型對特征提取的方式不同導致的:擴充數據所使用的半監督學習模型以KNN 為基礎模型,KNN 模型對特征的提取方式以簡單的距離度量為標準,簡單來說,就是每個元素質量分數差異的總和。而ANN 模型會以多種方式在輸入的特征之上再生成新的高維特征[24],所以可能是成分-屈服強度擴充數據集里的新數據擁有新的高維特征,而這些高維特征不同于原數據集的高維特征,因此在擴充了這些新數據后,ANN 模型會表現略差。但是產生的誤差僅在0.1%左右,仍可證明成分-屈服強度擴充數據集具有可遷移性。
在成分-抗腐蝕性預測實驗中,KNN、ANN 模型的預測結果準確率皆有提升,RF 模型的預測結果準確率幾乎保持不變。因為分類問題比較容易,所以對于ANN 模型來說,在訓練過程中需要產生的高維度特征較少,更多地利用了原有的合金成分質量分數特征,更接近于KNN 模型所使用的距離度量特征,因此成分-抗腐蝕性擴充數據集對ANN、KNN 模型同樣具有提升效果。
RF 模型的特征提取方式是對特征進行打分和篩選,并且RF 模型的特征選擇能力很強。所以推測得,相對于原成分-抗腐蝕性數據集,新的成分-抗腐蝕性擴充數據集并不具有新的重要特征,其中的重要特征與原數據集一樣,所以擴充數據對RF 模型的提升并不大。
本實驗證明,擴充數據集在不同的模型上都可以產生與半監督學習模型相似的效果,具有可遷移性。因為具有數據量大的優勢,所以擴充數據集可以替代原成分-屈服強度、原成分-抗腐蝕性數據集,以進行接下來的正向預測實驗。
正向預測結果選擇有監督的ANN、RF、KNN 模型進行建模。數據集是之前建立的擴充數據集,以鋁合金的成分為輸入,抗腐蝕性或屈服強度為輸出。通過比對三個模型的結果,以選擇合適的模型進行預測。不同模型的預測結果如圖4。圖4(a)為成分-屈服強度預測實驗結果,誤差值計算公式使用式(1),圖4(b)為成分-抗腐蝕性預測結果。

圖4 不同模型進行使用擴充數據集進行正向預測
在成分-屈服強度預測實驗中,橫向比較不同模型,可以發現RF 模型的表現明顯優于ANN 模型,略優于KNN 模型。RF 模型采用特征篩選的方式,KNN 會直接運用所有特征,ANN 會在所有特征之上繼續生成特征。從結果看,在合金材料的成分-屈服強度預測過程中,使用全部元素質量分數特征(KNN),或有選擇地利用元素質量分數特征(RF),就可以實現精準預測。因為這種特征已經是人類總結出來的高級特征,所以只需使用RF 模型對其進行篩選利用,就可以達到很低的誤差值。因此,更好地利用現有的合金知識,是基于機器學習的材料研究的前進方向之一。
比較同一模型的不同驗證方式,也可對模型的性能進行評估。通常在數據量足夠大時,模型在進行10 折交叉驗證時比進行5 折交叉驗證更容易產生過擬合,也就是10 折交叉驗證誤差值大于5 折交叉驗證。如果數據量不夠,模型進行5 折交叉驗證容易產生欠擬合,這時5 折交叉驗證誤差值較大。因此對比同一模型的5 折交叉驗證和10 折交叉驗證誤差值,也可對模型所需數據量進行評判。因此可得,RF 模型訓練所需數據量要少于ANN 和KNN,更容易用于實踐當中。
在成分-抗腐蝕性預測實驗中,仍舊是RF 模型性能大于其他兩個模型,說明RF 模型的優越性。對比同一模型不同驗證方式,發現三者都是10 折交叉驗證效果更好,推測三個模型都存在一定情況的欠擬合,需要更多的數據進行訓練,也說明使用擴充數據集代替原數據集的正確性。
ANN 模型無論在預測屈服強度還是預測抗腐蝕性的實驗中,都是性能最差的,這是可以預料的,因為ANN 模型的原理是尋找局部最優解,通常需要足夠大的數據量才能達到較高的水準。但是其他機器學習模型通常專注于回歸任務或分類任務,對模型的輸入輸出有較大的限制,而ANN 對模型的輸入輸出不設任何限制,非常適用于下一節實驗中以屈服強度和抗腐蝕性為輸入,各金屬元素含量為輸出的情景,因此在反向設計中,使用ANN 模型進行建模。
反向設計實驗選擇有監督的ANN 模型進行建模。數據集是之前建立的擴充數據集,以抗腐蝕性和屈服強度為輸如,以8 種元素的質量分數為輸出。利用獲取到的成分-屈服強度-抗腐蝕性完整數據進行驗證,驗證使用3 個完整樣本:3A21、AA1100、1052 鋁合金,三個樣本皆為高抗腐蝕性,屈服強度分別為65 Mpa、117 Mpa、150 Mpa。圖5(a)3A21 鋁合金真實數據與預測結果;(b)AA1100 鋁合金真實數據與預測結果;(c)1052鋁合金真實成分與預測結果;(d)3003 鋁合金真實數據與AA1100 鋁合金預測結果;(e)3004 鋁合金真實數據與1052鋁合金預測結果

圖5 真實數據元素質量分數與模型預測結果對比
圖為反向設計的實驗結果,為了方便比較,其中Al 的含量百分比為減去90%的值。圖5(a)(b)(c)是樣本真實值與預測值的對比圖。圖5(d)(e)為第二、第三個樣本的預測值與其他鋁合金的成分對比。
從圖5(a)可以看出,第一個樣本的真實值與預測值折線形狀相似、數值相近,說明成分含量誤差小,且預測樣本各成分之間的比例與真實樣本相似。Zn 的預測值雖然比真實值高,但是在所有元素里仍然是較低的水平。
在圖5(b)(c)中,樣本的真實值與預測值存在明顯誤差:圖5(b)的誤差主要在Mn 元素的質量分數較高,Al 元素質量分數較低,推測是因為數據集中含有大量的3 系鋁合金,屈服強度與抗腐蝕性都與AA1 系鋁合金類似,ANN 模型會盡量的擬合每一個樣本,因此數量較多的樣本對模型的影響更大,所以模型在低屈服強度、高抗腐蝕性特征下,學習到的更多是3 系鋁合金的成分組成。預測樣本與一種3003 鋁合金成分類似,對比圖如圖5(d)所示。3003 鋁合金屈服強度為130 MPa,且具有很高的抗腐蝕性,與AA1100 鋁合金性能接近。
圖5(c)中,誤差值主要在Mn、Mg 兩個元素上,預測值與一種3004 鋁合金的組成成分類似,對比圖為圖5(e)。該鋁合金亦有高抗腐蝕性、屈服強度為200 Mpa,與1052 鋁合金性能非常接近。
以上兩個預測樣本雖然與驗證樣本存在誤差,但是與數據集對比,皆與某種3 系鋁合金組成成分類似,且這些3 系鋁合金的性能與驗證樣本的性能接近,滿足設計要求。因此證明,雖然存在一定誤差,但該ANN 模型可以用來設計滿足某種性能要求的鋁合金,也證明了使用半監督機器學習方法擴充數據集的合理性。
盡管機器學習模型在正向性能預測和反向成分設計實驗中都有較好的表現,但準確性仍有進步的可能,可能存在以下問題:
(1)在正向性能預測實驗中,RF 使用篩選特征的特征選擇方式,就可達到最優表現。在基于機器學習的合金材料研究中,這個方向是合理的,專家已總結出了多種特征,只需利用機器學習方法對特征進行更合理的篩選利用即可。在未來工作中,應該更好地利用機器學習選擇特征,還是直接套用端對端的預測模型[25],是一個值得討論的問題。
(2)擴充后得數據集仍存在數據不平衡的問題,由于反向成分設計有監督的訓練方式,所以對數據的要求更高。抓取的數據中存在大量的3 系、5 系、6 系鋁合金,數據集不夠均衡可能導致模型過擬合[26],模型會偏向于生成這三類鋁合金的成分設計結果來降低整體的誤差率
(3)擴充后的數據集雖然可以提高了模型可使用的數據量,但對于ANN、KNN 模型來說,仍存在著數據量過少的問題,因此需要更多的數據以完成更加符合實際情況的預測[27]。
(4)本文只是對成分-性能進行建模,未能考慮工藝對鋁合金性能帶來的影響。Li 等[28]預測醫用鎂合金的性能時,同時使用元素質量分數、熱處理工藝、試驗溫度等特征,達到了較為準確的預測效果。因此,材料的加工工藝也是重要特征之一,加入加工工藝參數,可以更準確的對鋁合金性能進行預測。
本文通過從相關文獻中獲取數據,完成鋁合金的成分-性能數據關系建模,以實現對鋁合金性能的正向預測,和對目標性能鋁合金成分的反向成分設計。此處鋁合金的目標性能不再是單一的性能,而是來自多種不同研究的不同性能的組合。具體來說,本文對鋁合金的兩種性能——屈服強度與抗腐蝕性進行研究。為了解決不同這兩項研究之間性能標簽缺失的問題,通過以KNN 為基礎的半監督機器學習方法,實現了對數據標簽的補完,獲得了大量成分-屈服強度-抗腐蝕性數據。這些數據既可以用于以組合性能反向設計鋁合金成分,也可選擇部分數據用于擴充成分-單一性能數據集。以這些數據為基礎,實現了鋁合金性能預測和鋁合金成分的反向成分設計,且誤差較小。