董家源,楊小渝*
1. 中國科學(xué)院計算機網(wǎng)絡(luò)信息中心,北京 100190
2. 中國科學(xué)院大學(xué),北京 100049
對于材料科學(xué)研究人員而言,由于材料數(shù)據(jù)的稀缺和不易獲取、特征向量的構(gòu)建過程較為困難,以及最終構(gòu)建的模型往往難以在較短的時間內(nèi)取得一個比較好的擬合精度,想要開展材料數(shù)據(jù)挖掘與機器學(xué)習(xí)的相關(guān)工作,有較高的門檻。為了解決這些問題,我們提出并研發(fā)了一種能自動尋找供材料數(shù)據(jù)挖掘所需的特征變量的算法,能自動進行超參數(shù)調(diào)節(jié)使模型達到一個較好擬合精度的算法,以及能獲取不同來源的材料計算數(shù)據(jù)方法和技術(shù)。通過對這些算法的研發(fā)和一些數(shù)據(jù)獲取方法的集成,系統(tǒng)降低材料數(shù)據(jù)挖掘的門檻,使得研發(fā)人員可以更快地構(gòu)建一個擬合精度較高的高可用模型。同時系統(tǒng)還可提供一些用于結(jié)果展示的可視化模塊,方便研發(fā)人員使用。
在工具集成方面,我們基于高通量材料計算與數(shù)據(jù)管理云平臺MatCloud[28-29],通過集成一些主流的材料計算數(shù)據(jù)庫的API[20,26],實現(xiàn)了對于一些材料計算數(shù)據(jù)庫的訪問,如Materials Project[1],The Materials Data Facility[2]等,使得用戶可以一鍵獲取到這些數(shù)據(jù)庫中的數(shù)據(jù),同時還可以進行拼接等操作,使得同時使用這些數(shù)據(jù)成為了可能;其次是對于特征向量的獲取方法,用戶想要獲取存在于繁雜的文獻當(dāng)中的描述材料結(jié)構(gòu)的特征因子非常困難,我們也是通過集成的方法,整合了一些文獻中的特征向量構(gòu)建方法供用戶使用;最后是關(guān)于特征的選擇、模型的選擇、以及模型超參數(shù)的優(yōu)化方面,我們提出和集成了幾種算法并做了一些對比試驗,簡化了材料數(shù)據(jù)挖掘與機器學(xué)習(xí)的流程。
綜上所述,隨著人們對豬常見疾病的關(guān)注程度逐漸提升,如何保證豬常見疾病控制質(zhì)量,成為有關(guān)人員關(guān)注的重點問題。本文通過研究豬常見疾病的防控措施發(fā)現(xiàn),對其進行研究,能夠大大提升豬常見疾病的控制效果,同時還能夠促進我國豬養(yǎng)殖行業(yè)的發(fā)展。由此可以看出,研究豬常見疾病的控制措施,能夠為今后豬常見疾病控制的發(fā)展奠定基礎(chǔ)。
組織和開展的實驗教學(xué)競賽活動可分為校內(nèi)競賽、地區(qū)性競賽和全國性競賽等不同規(guī)模的賽事。舉辦競賽可有效激發(fā)實驗教師的競爭意識、上進意識,對實驗教師專業(yè)能力和實驗教學(xué)能力的促進和提高,意義匪淺。
在最后的部分,本文引入了兩個案例,講述了用戶如何通過使用我們的模塊,加速他們的工作流程,尤其是數(shù)據(jù)的獲取和特征向量的構(gòu)建,以及模型的選擇和參數(shù)設(shè)置這幾個方面。
綜上所述,本文基于MatCloud 平臺,著眼于研發(fā)一個操作簡便的材料數(shù)據(jù)挖掘與機器學(xué)習(xí)模塊Auto-Mat,使得用戶在基于MatCloud 的交互式界面僅通過鼠標點擊的方式,即可完成數(shù)據(jù)獲取、特征提取、模型訓(xùn)練等一系列流程,并且不要求用戶具有機器學(xué)習(xí)和材料學(xué)等領(lǐng)域的背景知識。
《甄嬛傳》和《紅樓夢》中的女人們都是生活在“鐘鳴鼎食之家、翰墨詩書之族”,物質(zhì)生活上是錦衣玉食無一所缺的,但是在行動自由度和精神生活的豐富性方面卻有很大不同。
圖1 給出了本文的數(shù)據(jù)挖掘模塊Auto-Mat 的架構(gòu)設(shè)計圖。該模塊在架構(gòu)設(shè)計上共分為三個部分:(1)前端用戶交互界面,負責(zé)在數(shù)據(jù)導(dǎo)入界面和模型訓(xùn)練界面提供一個圖形化的接口,接受用戶的輸入?yún)?shù)。同時也負責(zé)為用戶在前端提供一個可視化的模型下載接口。由HTML5 和AngularJS 編寫;(2)后臺處理模塊,負責(zé)對用戶輸入的參數(shù)進行預(yù)處理,以及調(diào)用數(shù)據(jù)讀取、特征提取、模型訓(xùn)練等相應(yīng)腳本,并完成將訓(xùn)練結(jié)果等數(shù)據(jù)對前端頁面的回傳;(3)腳本模塊,用來執(zhí)行實際的數(shù)據(jù)挖掘功能,包括通過調(diào)用MatMiner API 獲取數(shù)據(jù)、提取特征,通過調(diào)用scikit-learn 工具包進行模型的訓(xùn)練,以及相關(guān)自動化特征篩選和自動化超參數(shù)優(yōu)化算法的實現(xiàn)。
圖1 整體架構(gòu)Fig.1 Overall architecture
圖2 給出了用戶通過該模塊構(gòu)建的機器學(xué)習(xí)任務(wù)的主要工作流程。主要步驟為:(1)用戶通過數(shù)據(jù)導(dǎo)入模塊,選擇數(shù)據(jù)的來源與待預(yù)測的目標值,該階段獲取的數(shù)據(jù)只包括原始的結(jié)構(gòu)信息;(2)系統(tǒng)自動以原始的結(jié)構(gòu)信息作為輸入,盡可能多地提取特征;(3)如果特征數(shù)量較多,啟用我們的特征篩選方法,只留下對目標值地預(yù)測貢獻度較高的特征; (4)根據(jù)用戶的選擇,決定是否啟用特征重組算法,來增強模型的性能;(5)模型訓(xùn)練階段,根據(jù)用戶的選擇,使用用戶輸入的超參數(shù)或者是啟用我們的算法自動選擇超參數(shù);(6)開始模型訓(xùn)練。
圖2 機器學(xué)習(xí)任務(wù)流水線Fig.2 Machine learning task pipeline
2.1.1 用戶交互界面
圖3 是數(shù)據(jù)導(dǎo)入模塊的前端交互界面展示圖。用戶可以通過選擇數(shù)據(jù)庫、化合物體系、目標值來決定數(shù)據(jù)的選取。我們在界面設(shè)計上借鑒了Citrination[6]的search data 界面,主要在于通過用戶的輸入來篩選數(shù)據(jù)集的邏輯。Citrination 中用戶可以輸入的信息包括:化學(xué)式、數(shù)據(jù)庫篩選、目標性質(zhì)選擇。而我們的篩選方式和Citrination 最大的不同在于,我們支持選擇一類化合物體系,而Citrination 只支持一個特定的化學(xué)式。
與此同時,我們目前集成了幾個材料信息學(xué)領(lǐng)域很經(jīng)典的特征,包括庫倫矩陣[8]、MBTR[9]等,可以供熟悉材料領(lǐng)域的研究者們選擇。
圖3 數(shù)據(jù)導(dǎo)入模塊的人機交互界面Fig.3 The interactive interface of the data import module
2.1.2 數(shù)據(jù)處理
依托于后端集成的Materials Project、Aflow、The Materials Data Facility、ASE 等豐富的材料數(shù)據(jù),我們的用戶可以在這個界面內(nèi)實現(xiàn)“一站式”的數(shù)據(jù)讀取。我們在后端對數(shù)據(jù)進行了統(tǒng)一化的處理,使得我們可以把不同來源的數(shù)據(jù)“拼接”到一起來使用。這一點對于材料科學(xué)的研究者而言將會非常有幫助。
材料科學(xué)中面臨的一個比較大的問題就是,因為計量單位、命名規(guī)范、數(shù)據(jù)格式等因素的不統(tǒng)一,使得數(shù)據(jù)在匯總的過程中存在著很大的困難。為此我們設(shè)計了一個統(tǒng)一的規(guī)范,并通過定義一個JSON格式的語義文本,將所有的規(guī)范以“key-value”鍵值對的形式存儲在這個語義文本當(dāng)中。
舉例說明,在Materials Project和The Materials Data Facility 兩個數(shù)據(jù)庫中,對于帶隙band_gap 這一性質(zhì)的命名和單位都不同,因此在我們的語義文本中定義了如表1 所示的片段。對于band_gap 的命名,在Materials Project 和MDF 數(shù)據(jù)庫中分別命名為’band_gap’和’Band Gap’,我們統(tǒng)一命名為’BandGap’;對于band_gap 的單位,在MaterialsProject 和MDF 數(shù)據(jù)庫中分別采取了以eV 為單位和以mV 為單位,我們統(tǒng)一規(guī)定使用eV 作為單位,即需要對一些數(shù)據(jù)庫的數(shù)據(jù)進行單位進制上的轉(zhuǎn)化。
表1 語義文本片段Table 1 Semantic text fragments
2.1.3 特征提取
為了讓沒有領(lǐng)域知識的人,僅給定化合物的晶體 描述[4](一般為CIF 文件,Crystallographic Information File)就能自動獲取到關(guān)鍵材料特征,我們分為2 步:(1)用戶給出化合物的CIF 文件,我們盡可能多的獲取該化合物的特征,形成基礎(chǔ)特征庫;(2)系統(tǒng)自動篩選出與目標值相關(guān)度最高,而自身相關(guān)性最低的特征變量。本章節(jié)先介紹特征提取的基本方法。
目前主流的特征提取方法主要分為以下幾種[10]:
2.1.5 特征重組算法
(1)結(jié)構(gòu)(Structure)特征,利用晶胞的形狀和晶胞的總體結(jié)構(gòu),提取描述晶體結(jié)構(gòu)的特征,比如鍵長的最大值、空間群編號等;
(2)組分(Composition)特征,根據(jù)化學(xué)式構(gòu)成,提取元素相關(guān)的特征;
(3)原子位置(Sites)特征,基于原子位置和坐標的分布,提取的特征,該類特征向量的長度可能會與原子個數(shù)有關(guān)。
接下來,對輸入的40 個特征按照其在特征權(quán)重向量 中對應(yīng)權(quán)重的絕對值從大到小排序,留下權(quán)重絕對值最大的10 個特征。
2.1.3.1 結(jié)構(gòu)特征
晶胞的結(jié)構(gòu)特征,一般包括全局的鍵長、鍵角、電荷作用等;以及描述間接結(jié)構(gòu)信息的編碼方式,一般有庫倫矩陣、徑向分布函數(shù)[12]、Ewald 能量、結(jié)構(gòu)異質(zhì)性[13]、多體張量表示等。
下面主要介紹關(guān)于庫倫矩陣的詳細內(nèi)容:庫倫矩陣是一個比較經(jīng)典的結(jié)構(gòu)特征,在Goh[15]等人的工作中提到,很多使用傳統(tǒng)或是深度學(xué)習(xí)方法構(gòu)建“結(jié)構(gòu)-性能”模型的文章中都會嘗試使用庫倫矩陣作為輸入特征。
晶胞的結(jié)構(gòu)特征需要具有平移、旋轉(zhuǎn)、翻轉(zhuǎn)不變的特性[16],而庫倫矩陣就具備這一特性。庫倫矩陣是一個n×n 的矩陣,其中n 為晶胞內(nèi)的原子個數(shù),而矩陣中的每一項為:
員工團隊工作效率的提升,對企業(yè)創(chuàng)新戰(zhàn)略,促進企業(yè)核心競爭力的提升都具有十分重要的影響。而基于學(xué)習(xí)型組織的員工團隊創(chuàng)新管理,對員工團隊精神的培養(yǎng)和員工團隊意識的培養(yǎng)以及員工團隊價值的實現(xiàn)都具有重要的促進作用。
然而庫倫矩陣在實際使用中依然會遇到兩個問題:(1)當(dāng)輸入的數(shù)據(jù)集中各個化合物之間原子個數(shù)不一致時,構(gòu)建的庫倫矩陣的大小也不一致;(2)庫倫矩陣中的原子順序是不確定的,因此當(dāng)交換庫倫矩陣的行和列后,該矩陣依然對應(yīng)于同一個晶胞的表征。
解決第一個問題的方法是,可以通過向晶胞中增加“虛無原子”(invisible atoms)[8],將所有的晶胞擴充為d 個原子(d 為數(shù)據(jù)集中原子數(shù)最多的晶胞的原子個數(shù))。第二個問題屬于物理學(xué)領(lǐng)域內(nèi)的一大難題,即相似結(jié)構(gòu)的檢驗。但是在這里我們可以將該問題簡化,我們不需要檢驗相似結(jié)構(gòu),只需要保證庫倫矩陣中的原子順序固定不變即可。我們在構(gòu)建庫倫矩陣之前先對原子做一個排序,不同元素的原子按照其在元素周期表的順序排序,相同元素的原子按照其距離晶胞質(zhì)心的距離排序。這樣就保證了庫倫矩陣中原子順序的唯一性。
2.1.3.2 組分特征
例如:在進行小學(xué)語文的教學(xué)過程中,語文教師要積極與其他班級的教師進行交流與溝通,通過其他教師對自己班級學(xué)生學(xué)習(xí)情況的反應(yīng),找出學(xué)生學(xué)習(xí)問題的共通點,并商量解決對策,有利于促進學(xué)生語文水平的提高。又或者語文教師可以積極與其他學(xué)校的教師進行交流,學(xué)習(xí)其他學(xué)校的教學(xué)方法,增加自己的教學(xué)經(jīng)驗,不僅有利于自己職業(yè)素養(yǎng)的提升,還可以促進學(xué)生的學(xué)習(xí)熱情。所以說在小學(xué)語文教學(xué)中加強師德建設(shè),教師之間要相互交流。
組分特征,顧名思義,根據(jù)化合物的原子組成成分,使用化學(xué)式提取得到的特征。在這里可以分為兩種: (1)從化學(xué)式中的每一種元素分別提取的性質(zhì),如,化學(xué)式中該原子的個數(shù)、電負性(electronegativity)、原子(在元素周期表中的)序號、原子質(zhì)量、原子半徑、平均離子半徑、最大氧化態(tài)、最小氧化態(tài)、在元素周期表中的行號和主族號等;(2)除此之外,還有一些基于整個化學(xué)式提取的特征,包括原子軌道、能帶中心、內(nèi)聚能、電子親和力、電負性差、每一種原子的比例、Miedema 模型、化學(xué)計量學(xué)統(tǒng)計信息、磁性過渡金屬比例、化學(xué)價軌道等。
2.1.3.3 原子位置特征
該類特征著眼于提取局部相鄰的兩個或是多個原子之間的特征,比如鍵長、鍵角、角傅里葉級數(shù)[14]、 局部化學(xué)環(huán)境、局部原子性質(zhì)的差異度、局部泰森多邊形參數(shù)等。
由于該類特征向量的長度一般和原子個數(shù)有關(guān)系,也無法使用類似于我們在2.1.3.1 章節(jié)提到的解決庫倫矩陣原子個數(shù)不確定的方法,因為引入類似的“虛無原子”會影響一些特征對于晶胞的描述。因此需要保證輸入的數(shù)據(jù)集中的化合物之間原子個數(shù)相同。
2.1.3.4 特征提取總結(jié)
通過上述我們系統(tǒng)開發(fā)的特征提取模塊,我們共獲取到了767 個特征,其中包括170 個物質(zhì)組分特征,273 個原子位置特征,324 個結(jié)構(gòu)特征,這些特征構(gòu)成了我們的“特征庫”。接下來,給予我們的特征庫,我們開發(fā)了一系列的特征自動篩選方法。
(1)提高招投標人員業(yè)務(wù)能力是前提條件,加強法制教育是主要手段。對各方參與招投標工作人員加強法制教育;同時不斷加強對招投標工作人員業(yè)務(wù)能力的培訓(xùn),使他們熟悉招投標業(yè)務(wù)和程序,不斷提高業(yè)務(wù)素質(zhì)和技術(shù)水平,達到招標工作的要求。
特征篩選的過程共分為3 個階段:(1)去除“無效”特征;(2)去除“相似”特征;(3)保留與目標值關(guān)聯(lián)度高的特征。
首先,是要將自身數(shù)值變化過小的特征去除掉。由于這一步是預(yù)處理的過程,因此盡量避免誤刪掉有用的特征。一種比較常規(guī)的做法是,如果某個特征內(nèi)有95%的數(shù)據(jù)分布在5%的值域內(nèi),說明數(shù)據(jù)的分布集中在一個很小的范圍內(nèi),又或者說該特征的相對方差很小,這樣對于模型學(xué)習(xí)所能提供的價值就比較有限。我們可以認為這個特征的意義不大,可以刪除[23]。
從式(6)、式(7)、式(8)以及圖3、圖4 可知:根據(jù)最大主應(yīng)力準則,當(dāng)采掘工作距離包裹體一定距離時,不同采動影響下的含應(yīng)力包裹體煤體會在上覆巖層、包裹體、瓦斯的耦合作用下沿著最大主應(yīng)力的方向發(fā)生破壞,且最大主應(yīng)力所在角度θmax隨半徑的變化趨勢都相同,都是隨距離的增大逐漸減小,最終形成口大腔小的楔形或唇形結(jié)構(gòu)斷面。當(dāng)采掘靠近應(yīng)力包裹體時,楔形或唇形斷面間的破碎煤體會失去有效束縛,拋向采掘空間,從而產(chǎn)生煤與瓦斯壓出或噴出現(xiàn)象。破碎煤體拋出后,孔洞斷面皆呈楔形或唇形,這與現(xiàn)場煤與瓦斯壓出后經(jīng)常出現(xiàn)的口大腔小的楔形或唇形孔洞相吻合。
比如,一種極端情況為,該特征上的數(shù)據(jù)全部都為同一個值,方差為0,這樣的特征顯然是沒有任何意義的。下圖展示的是特征抗扭截面系數(shù)wt_CN4在本案例的數(shù)據(jù)上的頻率分布直方圖,可以看到絕大部分數(shù)據(jù)都集中在最左側(cè)一個很小的區(qū)域內(nèi),這樣的數(shù)據(jù)可以認為是沒有價值的。
圖4 特征變量wt_CN4 的頻率分布直方圖Fig.4 Histogram of frequency distribution of feature variable wt_CN4
需要注意的是,變化小的特征變量未必意味著在物理學(xué)意義上一定就不是有價值的特征。由于我們主要還是基于數(shù)理統(tǒng)計方法對特征進行篩選,沒有考慮特征的物理意義,變化大特征對模型訓(xùn)練的影響大于變化小的特征,因此我們還是對變化小的特征予以篩除,以保持整個方法的一致性。
按設(shè)定的閾值我們保留一部分剩余特征(如為300 到350 個之間)。而在這一階段被丟棄的特征主要為原子位置信息和化學(xué)鍵的信息等原始單一特征。這進一步說明了原始的晶胞結(jié)構(gòu)信息是無法直接作為模型輸入的。
接下來,我們需要將變化趨勢“相似”的特征剔除掉。因為變化趨勢相似的特征往往意味著不能為模型帶來新的信息,或者說該特征可以由其他特征推斷出來。
以往的研究者比如Pabitra[23]等人使用了K-NN或者K-Means 聚類[24]的方式來判斷特征之間的相似性,然而這種評價方式受特征值域的影響很大,并不客觀。
因此,我們使用spearman 相關(guān)系數(shù)來刻畫兩個特征之間的相似度。為此,我們計算了每兩個特征之間的spearman 相關(guān)系數(shù),并以此構(gòu)建了一個相關(guān)系數(shù)矩陣,來描述每兩個特征之間的關(guān)系。
假設(shè)該矩陣為M,則
或者說,矩陣中每一個元素表示了對應(yīng)兩個特征之間的spearman 相關(guān)系數(shù),相關(guān)系數(shù)越高,說明兩個特征越“相似”。因此,我們希望我們篩選出來的特征集合的總體相似度盡量小。假設(shè)篩選出來的最優(yōu)特征集合為,則:
我們沒有找到多項式時間的方法來解決該問題(或許不存在這樣的方法)。我們在這里使用 “蒙特-卡羅”方法[25]來找到一個近似的最優(yōu)解。我們隨機地生成10000 個特征集合(特征集合即上面提到的),并在這些特征集合中,找到總體相關(guān)系數(shù)最小的一個特征集合,作為此階段輸出的特征集。經(jīng)過反復(fù)的嘗試,我們認為設(shè)置此階段剩余的特征數(shù)大致在30-50 之間,可以在模型準確性和運行效率之間取得一個比較不錯的平衡,具體數(shù)字由算法自動確定。此階段剩余的特征基本保留著組分特征、位置特征、結(jié)構(gòu)特征這三類特征中比較常見的特征,比如空間群序號、熔點、以及一些化學(xué)鍵的性質(zhì)等。
如何彌補這個缺陷呢?西方文明發(fā)展演進邏輯借鑒或模仿頗具神學(xué)色彩或“形而上學(xué)”特征的各種形式,將“天賦人權(quán)”簡稱為“人權(quán)”,視為一種“天然道義”,始終占據(jù)“人類道義”和“文明發(fā)展”的制高點,任何人都不敢也不能質(zhì)疑可能存在的問題。這就是西方文明發(fā)展演進邏輯將“天賦人權(quán)”視為普世價值,并將自身視為人權(quán)、國際法等方面的代表者和維護者的原因。而實際上,卻從未真正實現(xiàn)自由平等。
最后一個階段,我們希望保留對于目標值的預(yù)測貢獻度最高的特征。在Ouyang[22]等人的文章里提到過使用LASSO 的方法篩選特征,我們在這個階段也采用了這樣的方法。將本案例中的40 個特征作為LASSO 回歸的輸入,來預(yù)測目標值,然后對每一個特征值的LASSO 權(quán)重進行排序,留下LASSO 權(quán)重最大的10 個特征。之所以在這個階段留下10 個特征,一方面是因為篩選出的10 個特征已經(jīng)足夠描述該化合物,因為我們的實驗表明前10 個特征的LASSO權(quán)重在95%以上,也就是說在構(gòu)建模型時候,如果使用比較“稀疏化”的模型,那么后30 個特征對模型的貢獻度很??;另一方面是因為接下來的特征重組算法比較耗時,為了減小時間的開銷,因此盡量降低此階段輸出特征的數(shù)量。
LASSO 特征篩選算法大致介紹如下:
首先,使用L1-正則化的線性回歸算法,對整個數(shù)據(jù)集進行擬合,得到如下所示的特征權(quán)重向量。
其中X為訓(xùn)練樣本,y為目標值, 為預(yù)先設(shè)置的超參數(shù),我們這里按照scikit-learn[3]中的默認值取0.1。
黑龍江省龍江電器集團有限公司成立于1996年,為中小型企業(yè),現(xiàn)有職工370人。龍江電器集團有限公司自2002年起開始推行企務(wù)公開工作。近年來,該公司以落實“三個代表”重要思想,貫徹黨的依靠方針為指導(dǎo),著力在規(guī)范、鞏固、深化、創(chuàng)新、實效上下功夫。隨著企務(wù)公開的不斷開展,企業(yè)民主管理渠道不斷拓寬,廣大職工建功立業(yè)、奉獻企業(yè)的熱情不斷高漲,該公司保持長周期安全穩(wěn)定可持續(xù)發(fā)展。該公司先后榮獲國家“五一勞動獎?wù)隆?、省“廠務(wù)公開民主管理先進單位”、省、市“文明單位”等多項榮譽。
關(guān)于可靠性性評估更詳細的說明參見第3 章應(yīng)用案例。
最后,基于上述篩選的特征,我們進行部分特征的重組。
方法語步常用詞匯:scope,field,domain,contain,cover,include,outline,test study,investigate,examine,experiment,discuss,consider,analyze,analysis,use,apply,application等
為了能自動地從最基本的化學(xué)式和結(jié)構(gòu)特征中提取出和目標值更為相關(guān)的特征,我們提出一個自動化的特征重組算法[22],算法的輸入是帶有基本特征的數(shù)據(jù),如元素相對原子質(zhì)量、原子半徑、晶胞結(jié)構(gòu)等,經(jīng)過一些算術(shù)操作后,輸出一系列的特征組合。
最后,地區(qū)政府需要及時依照中央頒布的餐飲法律文件標準[9],根據(jù)本地區(qū)餐飲經(jīng)濟的融資趨勢,將中央有關(guān)文件精神落實到餐飲企業(yè)融資行為管控工作中,有效維護餐飲企業(yè)自身的經(jīng)營權(quán)益。
特征重組的方法是,對原始特征的一些數(shù)學(xué)運算的疊加。比如,(1)中的IE 表示第一電離能,
2.1.4 特征自動篩選
表示原子共價半徑,d表示原子之間的間距, 表示泡利電負性,這些都是算法輸入的原始特征;輸出的則是對這些原始特征進行數(shù)學(xué)運算得到的。而這些相應(yīng)的數(shù)學(xué)變換都是通過算法自動得出的,我們的算法會根據(jù)和目標值之間的相關(guān)性,判斷出哪些數(shù)學(xué)變換才是合適的。
換句話講,特征重組算法并不能創(chuàng)造新的“物理學(xué)意義”上的特征,而是增強了原始輸入特征的泛化性能。
我們參照了一些比較經(jīng)典的方法[10,22],在特征重組算法中,使用了一些基礎(chǔ)而簡單一元和二元運算符,一元運算符包括:1/xx2,x3,1/x2,1/x3,log(x),exp(x),log(x),exp(x),1/log(x),1/exp(x)這幾種;二元運算符使用了加減乘除四種運算符。
通過我們的算法提取出的特征,相比于輸入的原始特征而言,會顯著地增加和目標值之間的相關(guān)性。我們進行了如下的對比試驗:在Materials Project 的鈣鈦礦ABX3 數(shù)據(jù)集上,在使用簡單結(jié)構(gòu)特征和組分特征作為原始輸入特征的情況下,使用線性回歸算法得到的結(jié)果,與不使用特征重組算法,直接將原始特征作為模型輸入時的結(jié)果,進行對比,如表2 所示??梢钥吹教卣髦亟M算法對于模型性能提升有很大幫助。
表2 特征重組算法的性能比較Table 2 Performance comparison of feature reconstruction algorithms
我們將主流的分類和回歸算法都集成到一個名為“ModelTraining”的模塊內(nèi)。當(dāng)用戶使用時,首先選擇“Classification or Regression”,接下來選擇具體的學(xué)習(xí)器。比如,如果用戶選擇了Regression,那么接下來可以繼續(xù)選擇“Random Forest Regression”[18]。
接下來是算法參數(shù)的設(shè)置,以回歸森林算法舉例,圖5 表示的是用戶參數(shù)設(shè)置的交互式界面。在這個界面里,用戶可以設(shè)置模型學(xué)習(xí)的相關(guān)參數(shù),比如隨機森林算法的Max Depth 參數(shù)等。參數(shù)命名方式和scikit-learn 保持一致。
圖5 用戶設(shè)置模型參數(shù)界面Fig.5 User setting model parameter interface
并且,用戶也可以通過勾選的方式選擇啟用我們的自動超參數(shù)調(diào)節(jié)算法。這樣就省去了手動調(diào)節(jié)超參數(shù)的麻煩。
2.2.1 自動化超參數(shù)調(diào)節(jié)
一些復(fù)雜的學(xué)習(xí)器,如隨機森林,往往需要用戶輸入很多的超參數(shù)。超參數(shù)的選取對于模型的性能非常重要,而很多情況下默認參數(shù)的模型表現(xiàn)往往不盡如人意。因此就需要用戶對機器學(xué)習(xí)模型的調(diào)參具有一定的經(jīng)驗。
而本文正是致力于幫助計算機和機器學(xué)習(xí)相關(guān)經(jīng)驗不足的材料研究者們,因此本文實現(xiàn)了自動化的超參數(shù)優(yōu)化算法,并在前端交互界面為用戶提供了接口(如圖5),用戶可以通過選擇自動化超參數(shù)優(yōu)化的方式,來跳過超參數(shù)選擇的過程,從而簡化了用戶訓(xùn)練模型的難度。
使用我們的自動化超參數(shù)優(yōu)化算法后,一般情況下模型可以獲得比默認參數(shù)下更好的效果。我們進行了如下的對比試驗:在Materials Project 的鈣鈦礦ABX3 數(shù)據(jù)集上,在使用章節(jié)2.1.3 中獲取到的特征作為原始輸入特征的情況下,分別使用默認參數(shù)下的隨機森林模型和附加了我們的超參數(shù)優(yōu)化算法后的隨機森林模型進行對比,結(jié)果如表3 所示。
表3 超參數(shù)優(yōu)化算法的性能比較Table 2 Performance comparison of hyperparameter optimization algorithms
我們設(shè)計并集成了相關(guān)的模型評估的工具箱,使用RMSE、MAE、pearson 相關(guān)系數(shù)、spearman 相關(guān)系數(shù)和R2-Score 決定系數(shù)共五種評價指標。
其中,Zi表示第i 個原子的核電荷數(shù),Ri表示第i 個原子的位置。因此,非對角線位置的值是對自由原子勢能的近似,描述了兩個原子之間的相互作用;而對角線上的值則是對原子對之間的庫倫排斥的近似,描述了了其自身的原子能量。
并且,對于隨機森林算法,我們引入并實現(xiàn)了了Julia Ling[17]等人提出的關(guān)于隨機森林的不確定性這一評價指標。不確定性指標通過分析訓(xùn)練集和測試集的差異性,以及訓(xùn)練集自身的分布和噪聲的影響,對隨機森林中每一個簡單學(xué)習(xí)器(即決策樹)的影響,計算其造成的variance 和bias 的均方根平均數(shù)。具體地,不確定性的計算公式為:
其中,S為訓(xùn)練集的大小,(x)為樣本x在單一決策樹上的bias,使用簡單決策樹是為了避免過擬合。σ(x)則描述了每一個簡單決策樹在訓(xùn)練集和測試集上的協(xié)方差(Covariance)。
同時,對于一些很經(jīng)典的結(jié)構(gòu)描述符,比如庫倫矩陣,我們提高它的優(yōu)先級,使其可以不參與篩選而直接使用。當(dāng)然,出于計算量的考量,它不會參與后面的特征重組算法。這種方式也是為了提升我們算法的“下限”,當(dāng)算法失效,篩選出來的10個特征不足以描述晶胞時,通過像庫倫矩陣這樣的結(jié)構(gòu)描述符至少還可以保留一定的晶胞信息。
下面使用2 個案例講述用戶是如何使用我們的材料數(shù)據(jù)挖掘與機器學(xué)習(xí)工具,其中一個是對于材料領(lǐng)域和機器學(xué)習(xí)相關(guān)知識都不是那么了解的用戶,我們?nèi)绾瓮ㄟ^一些設(shè)置和自動化的方法讓其以最簡單的步驟構(gòu)建起屬于自己的機器學(xué)習(xí)流程;另一個是對于相關(guān)知識和目的都比較明確,我們的工具是如何保證足夠的擴展性,為其提供充足的支持的。
案例:構(gòu)建一個“結(jié)構(gòu)-帶隙”構(gòu)效關(guān)系模型,預(yù)測ABO3 型鈣鈦礦結(jié)構(gòu)化合物的能隙。擬選取的數(shù)據(jù)來源Materials Project、Citrination、MDF、ASE幾個開放的材料計算數(shù)據(jù)庫。
這些民間故事雖然是傳說,但又和本地的地名吻合,是有較高的可信度的。通過這堂課學(xué)生對家鄉(xiāng)的文化有了進一步了解,更增加了想去了解的欲望,課后學(xué)生自發(fā)的找了家鄉(xiāng)民間故事讀本來傳閱。更重要的是通過這一活動增強了學(xué)生對家鄉(xiāng)的熱愛之情。
3.1.1 用戶輸入
首先打開數(shù)據(jù)導(dǎo)入界面后,選擇使用所有候選數(shù)據(jù)庫中的數(shù)據(jù),即對界面中所有數(shù)據(jù)庫復(fù)選框打勾。
然后,在目標性質(zhì)文本框中輸入band_gap。同時,由于我們的用戶對于特征的篩選并不了解,按照我們的默認建議,使用庫倫矩陣這一比較經(jīng)典的結(jié)構(gòu)描述符作為“高優(yōu)先級特征”,即不參與篩選,必定被使用的特征。同時,啟用我們的自動化特征重組方法增強特征的表征能力。
發(fā)展智慧農(nóng)業(yè)需要地方政府的支持和引導(dǎo)。地方政府要積極展開各類農(nóng)業(yè)科學(xué)技術(shù)知識、生產(chǎn)管理和農(nóng)業(yè)科技咨詢服務(wù),提升農(nóng)業(yè)競爭力,推動農(nóng)業(yè)持續(xù)發(fā)展,提高資源利用率和保障產(chǎn)品安全[1]。
用戶輸入完成后的界面如圖6 所示。
圖6 用戶輸入界面-案例1Fig.6 User input interface-case 1
通過根據(jù)用戶的輸入?yún)?shù)進行數(shù)據(jù)的讀取和特征構(gòu)建,我們獲得了原始數(shù)據(jù)并完成了對數(shù)據(jù)的特征向量化。本案例中共得到數(shù)據(jù)923 條。
3.1.2 特征篩選
通過特征提取模塊,共獲取到了767 個特征。接下來是特征篩選環(huán)節(jié),在本案例中,我們在第一個階段的篩選留下了350 個特征;第二個階段留下了40 個特征;第三個階段留下了10 個特征。
在本案例中,第一階段篩選出來的特征數(shù)為328,作為第二階段的輸入特征。這些特征之間的平均spearman 相關(guān)系數(shù)為0.2630,平均相關(guān)系數(shù)是通過對輸入的328×328 的相關(guān)系數(shù)矩陣中所有兩兩特征之間的相關(guān)系數(shù)取平均得到的。而篩選出的40 個特征彼此之間的平均相關(guān)系數(shù)為0.1746。因此說明已經(jīng)顯著降低了特征之間的“相似性”。
通過熱度圖,圖7 展示了在本案例中,通過兩個階段的特征篩選后,輸出的40 個特征中,每兩個特征之間的相關(guān)性。圖中的“溫度”越高表示兩個特征之間的相關(guān)性越高。(因此在對角線上的元素溫度是最高的,因為每個特征和它自身的相關(guān)性為1。)
圖7 特征相關(guān)性熱力圖-案例1Fig.7 Feature correlation heatmap-case 1
下表展示了經(jīng)過了3 個階段篩選出的特征,以及和目標值之間的相關(guān)性,可以看到,相關(guān)系數(shù)最大的特征compound possible 和std_dev wt CN_1 兩個特征的spearman 相關(guān)系數(shù)分別達到了0.46 和0.38,這對于單個特征而言,與目標值之間的相關(guān)性還是比較大的。
表4 第3 階段篩選后特征與目標值之間的相關(guān)系數(shù)-案例1Table 4 Correlation between the filtered features after the third stage and the target values-case 1
獲得上述特征后,我們還可調(diào)用特征重組算法,算法的輸入是上述三個階段篩選得到的10 個特征(不包括作為備用特征的庫倫矩陣),輸出是獲取到的特征的算術(shù)組合。本案例中我們只保留2 個重組特征,因為在特征重組算法的迭代過程中,其內(nèi)部也使用到了前面提到過的LASSO 算法作為特征的篩選,而當(dāng)算法運行到最后一個迭代輪次時,特征之間的權(quán)重分布的差距已經(jīng)非常大。圖8 展示了本案例中在最后一個迭代輪次時特征的權(quán)重分布。(在本案例中特征重組算法每一迭代輪次會獲取20 個重組特征,但是后面的特征的權(quán)重過小,以至于柱狀圖中都無法展示其高度。)
圖8 特征重組中的特征權(quán)重分布Fig.8 Feature weight distribution in feature recombination
本案例中我們獲取到的兩個重組特征分別為:
式中的CP為compound possible,Er為Electronegativity range,PE為packing efficiency,frac為fraction of valence electrons。
重組特征與目標值band_gap 之間的相關(guān)性如下表所示??梢钥吹轿覀兊闹亟M特征和目標值之間相關(guān)性非常高,也就對目標值的預(yù)測具有很大的貢獻。
表5 重組特征與目標值相關(guān)性Table 5 Correlation between recombination features and target values
3.1.3 模型訓(xùn)練
在我們的工具中,用戶可以選擇隨機森林,可以選擇支持向量機,也可以選擇多元線性回歸,或是其他學(xué)習(xí)器。
由于我們的用戶對于機器學(xué)習(xí)算法不熟悉,并不知道該選擇什么學(xué)習(xí)算法,也不知道該如何設(shè)置參數(shù)。由于我們的工具支持“one-in-multi-out”的計算流程,因此我們可以同時使用多個學(xué)習(xí)器來對同一份數(shù)據(jù)進行學(xué)習(xí),并且多個學(xué)習(xí)器之間彼此是相互獨立的。在本案例中我們同時使用了較為復(fù)雜的隨機森林算法和最簡單的線性回歸算法作為學(xué)習(xí)器,如圖9。
圖9 同時使用兩個學(xué)習(xí)器Fig.9 Using two learners at the same time
關(guān)于參數(shù)設(shè)置,用戶在此案例中由于對機器算法不了解,因此決定啟用我們的自動化超參數(shù)優(yōu)化算法來自動選取超參數(shù)。
3.1.4 模型評估
當(dāng)整個計算過程完成后,我們可以打開學(xué)習(xí)算法工具箱查看模型的訓(xùn)練結(jié)果,即各種量化的評價指標,這些指標是使用測試集進行計算的。
圖10 展示了該案例的模型評估結(jié)果,不僅給出了如前所述的一些評價指標,還繪制了一條“predicted-label”散點圖,每一個點對應(yīng)著一條數(shù)據(jù),橫軸為模型預(yù)測的目標值值,縱軸為實際的目標值,所以用戶可以根據(jù)散點群距y=x 這條直線的距離,直觀看出訓(xùn)練結(jié)果的好壞。
圖10 可靠性評估界面-案例1Fig.10 Reliability evaluation interface-case 1
同時由于我們使用的是隨機森林算法,我們也可以查看模型的不確定性,如圖11 所示。圖中灰線的部分即為對應(yīng)樣本的不確定性。
不確定性是隨機森林算法特有的一種評價指標,它說明了使用隨機森林算法,在指定數(shù)據(jù)集上,所能達到的準確度的“上限”是多少。該項指標計算了每一個數(shù)據(jù),所造成的不確定性(又或者說對模型性能的影響),下圖中,每一個藍色的小圓點代表了本案例中鈣鈦礦數(shù)據(jù)集里的一個樣本,而其對應(yīng)的灰線則代表著該樣本造成的不確定性。
圖11 隨機森林算法不確定性曲線圖Fig.11 Random forest algorithm uncertainty curve
3.1.5 模型導(dǎo)出
用戶可以在訓(xùn)練完成后的學(xué)習(xí)算法工具箱中,點擊Download Trained Model 按鈕,下載訓(xùn)練好的pickle 格式的模型。pickle 是基于python 的一個開源代碼庫[5],模型文件下載到用戶本地后用戶可以使用庫函數(shù)很方便地讀入存儲于文件中的模型,并且與scikit-learn 完全兼容,都進來的模型可以直接使用scikit-learn 的預(yù)測函數(shù)進行預(yù)測。
案例:構(gòu)建一個“結(jié)構(gòu)-體彈模量”構(gòu)效關(guān)系模型,使用了Materials Project 和Ctrination 作為數(shù)據(jù)來源,并篩選出化學(xué)式滿足“A2BCO6”格式的化合物作為數(shù)據(jù)集,預(yù)測的目標值為體彈性模量Bulk Modulus。講述一個對機器學(xué)習(xí)和物理學(xué)方面都比較了解的用戶將如何使用我們的工具。
3.2.1 用戶輸入
首先同樣地,該用戶需要添加一個數(shù)據(jù)導(dǎo)入模塊。
由于該用戶希望構(gòu)建的是體彈性模量(Bulk Modulus)的模型,所以,為了區(qū)別其它彈性模量(比如剪切模量和楊氏彈性模量),該用戶決定只使用Materials Project 和Ctrination 數(shù)據(jù)庫。因為在Materials Project 數(shù)據(jù)庫和Ctrination 數(shù)據(jù)庫有較豐富的體彈性模量數(shù)據(jù)。
接下來在選擇化合物體系的界面,因為該用戶的體系在候選當(dāng)中沒有,因此選擇Customize 并在輸入框中輸入“A2BC{O}6”,之所以氧原子要用中括號是因為,在該化學(xué)式體系中,區(qū)別于可以使用任何原子替代的“A”、“B”、“C”原子,氧原子是不可以被替代的。比如說,在該用戶的化合物體系中可以包含Si2LiAlO6(標準化學(xué)式為LiAl(SiO3)2)和C2NaMgO6 兩種化合物,但不可以包含Si2LiAlS6。
我們這種劃分數(shù)據(jù)集的方式一定程度上借鑒了ASE[7]數(shù)據(jù)庫中對于數(shù)據(jù)的劃分方式。ASE 數(shù)據(jù)庫中包括了ABX3、A2BCX4、ABX2 等數(shù)據(jù)集,并按照此種方式進行了劃分。
接下來,該用戶在目標性質(zhì)文本框中輸入elasticity.K_VRH。但是需要注意的的一點是,體彈性模量在Materilas Project 和Ctrination 當(dāng)中的命名方式是不同的(在Materilas Project 中命名為elasticity.K_VRH,在Ctrination 中命名為Bulk modulus),因此需要在我們定義的語義文本中加入以下內(nèi)容:
表6 語義文本片段-案例2Table 6 Semantic text fragments-case2
最后同樣地,用戶勾選庫倫矩陣作為結(jié)構(gòu)特征。
用戶輸入完成后的界面如圖12 所示。本案例共獲取到201 條數(shù)據(jù)。
圖12 用戶輸入界面-案例2Fig.12 User input interface-case 2
3.2.2 特征獲取
特征獲取階段和案例1 大致相同,共獲取到了767 個特征,其中包括170 個組分特征,273 個原子位置特征,324 個結(jié)構(gòu)特征,這些特征構(gòu)成了“特征庫”。
接下來是特征篩選環(huán)節(jié),我們的算法在第一個階段的篩選留下了350 個特征;第二個階段留下了40 個特征;第三個階段留下了10 個特征。
圖13 為第2 個階段的特征篩選后獲取到的特征之間的相關(guān)性熱度圖。本案例中,篩選之前特征之間的平均相關(guān)性為0.2744,而篩選后的平均相關(guān)性為0.1724。
圖13 特征相關(guān)性熱力圖-案例2Fig.13 Feature correlation heatmap-case 2
表7 展示了第3 個階段的特征篩選后,剩下的10 個特征和目標之間的相關(guān)性??梢钥吹絩ange NUnfilled 和bond # 4 這兩個特征與目標值得相關(guān)性也都分別達到了0.45 和0.32,作為單一特征具有和目標值較強的相關(guān)性。
表7 第3 階段篩選后特征與目標值之間的相關(guān)系數(shù)-案例2Table 7 Correlation between the filtered features after the third stage and the target values-case 2
(續(xù)表)
3.2.3 模型訓(xùn)練
當(dāng)用戶對機器學(xué)習(xí)模型較為熟悉時,可以直接選擇合適的模型。比如該用戶認為支持向量回歸(SVR)用來學(xué)習(xí)體彈性模量比較合適,可以使用SVR 模塊并手動設(shè)置參數(shù),如圖14。在支持向量回歸中,用戶可以設(shè)置kernel 和epsilon 兩個參數(shù)。kernel 參數(shù)為SVR 的核函數(shù),為字符串格式,默認值是“rbf”;epsilon 是經(jīng)驗風(fēng)險和正則項的平衡參數(shù),默認值為0.1。
圖14 支持向量回歸參數(shù)設(shè)置界面-案例2Fig.14 Support vector regression parameter setting interface-case 2
本文針對材料科學(xué)工作者開展機器學(xué)習(xí)工作門檻較高這一現(xiàn)狀,在對前沿相關(guān)工作[30-32]充分調(diào)研的基礎(chǔ)上,介紹了基于MatCloud 框架開發(fā)的一個材料數(shù)據(jù)挖掘與機器學(xué)習(xí)模塊。具體介紹了我們的數(shù)據(jù)導(dǎo)入模塊,是如何根據(jù)我們所制定的規(guī)范,完成數(shù)據(jù)的匯總,以及材料數(shù)據(jù)挖掘與機器學(xué)習(xí)工具用戶界面的設(shè)計與實現(xiàn)、特征提取和模型訓(xùn)練模塊的工作原理等細節(jié)。
最后,通過兩個案例,詳細闡述了我們的模塊是如何簡化材料科學(xué)研發(fā)者上手數(shù)據(jù)挖掘門檻的。
本文中提到的材料數(shù)據(jù)挖掘與機器學(xué)習(xí)工具有些功能還不夠完善,因此下一步將繼續(xù)完善該工具的其他模塊。另外,本文中只著眼于使用傳統(tǒng)的機器學(xué)習(xí)方法,在下一步中會嘗試使用深度學(xué)習(xí) 方法[11,19,21,27]。
致 謝
本文的想法和思路來自一些公司、高校和科研院所一線的建議和反饋,作者對他們表示感謝,同時也感謝匿名審稿人對文章提出的修改意見。
利益沖突聲明
所有作者聲明不存在利益沖突關(guān)系。