電腦也會選花生:源自德國海邊的自動岩性辨識模型

An-Sheng Lee 李安昇
地科人之眼
Published in
7 min readFeb 22, 2023
Generated by Midjourney (CC BY-NC 4.0).

想像一下,你是個大型地科計畫的主持人,花了大筆預算鑽取總長度數公里長的岩心樣本準備做最基本的分析:岩性辨識 (這邊用以統稱沉積物樣本的沉積相與岩石樣本的岩性) ,不管你是要做古氣候、古環境的科學研究還是工程上的應用,都得完成這步以做為後續研究的基礎,這樣費力耗時的工作在你主體研究還沒開始可能就已經花掉大半精力了。

傳統比較嚴謹的作法是聘請數位沉積學家或地質師共同辨識解釋,然現實常因經費或環境限制而必須犧牲人工辨識的精度或量能。若從實務來看,同區域岩心樣本中的岩性其實大部分多具重複性且不複雜,僅有少部分樣本需投入較為密集的人為經驗判斷,因此如果能藉由近年來快速發展的機器學習 (Machine Learning, ML) 與高效能運算 (High Performance Computing) 的幫助完成大部分相似的樣本辨識、保留少部分關鍵樣本予專家做仔細分析,我們對於辨識大數量岩心的成本便可在不犧牲精度下大幅減少。

於是透過跨領域研究計畫Wadden Sea Archive我們使用岩心掃儀器Itrax-XRF core scanner取得來自瓦登海 (Wadden Sea) 德國海岸線的岩心樣本化學性質分布,共計約50公尺長的岩心測得約2萬筆含12種元素濃度的數據,彙整由數位沉積學家共同辨識的岩性資料 (涵蓋自晚Pleistocene以來海進過程中的11種沉積相,圖 1) 作為研究材料。

註: 本研究是Wadden Sea Archive計畫框架下,由德國 University of Bremen GEOPOLAR團隊與台灣的台大地質系團隊合作開發,台大資工系林軒田教授提供相關技術指導。

圖 1、本研究中涵蓋之岩性資料與其簡稱、相對海平面高度、年代,此圖取自Lee et al. (2022)。

在使用ML演算法建立模型前,我們結合了地球化學、地質的領域知識 (Domain Knowledge) 對資料進行處理以提升後續模型表現,此步驟稱為Feature Engineering。搭配圖 2表示,首先對各資料點中的元素濃度做對數轉換 (Centred Log-ratio Transformation, CLR) 以降低掃瞄儀器的誤差;

接著為了使ML模型能夠模擬人為觀察習慣的同時多資料點判斷,而不僅是單資料點判斷,我們測試了兩種特徵轉換好讓各資料點中融入周圍3公分內的資料點資訊,分別命名為rolling與2d;

再使用主成分分析 (Principal Component Analysis, PCA) 視情況擷取原資料矩陣中較具代表性的資訊作為建模輸入資料。

建模過程中我們使用三種不同演算法結合交叉驗證 (Cross validation, CV) 進行參數最佳化並選出表現最好之演算法,

所使用的演算法有
簡單線性演算法: Logistic Regression (LR)
複雜非線性演算法: Support Vector Machine (SVC)Random Forest (RF)

為了嚴謹地衡量模型表現,建模與交叉驗證時僅使用事前隨機切分好的訓練資料,待建模完成後才使用測試資料評測各模型特性 (圖 2) 。

圖 2、(a) 研究流程架構、(b) 原資料做Rolling 特徵轉換示意圖、(c ) 原資料做2d特徵轉換示意圖, (b) 與 (c )是取3資料點的兩元素 (鐵、矽)值做示範,此圖取自Lee et al. (2022) 。

從交叉驗證的結果 (圖 3a) 顯示,訓練自經過特徵轉換的資料的模型皆擁有較好的分數,仔細觀察可以發現,那些具較複雜學習能力的非線性演算法在轉換過的資料上並沒有展現出較線性演算法好的表現,表示所使用的特徵轉換提取了有效資訊幫助演算法學習,使得複雜演算法失去優勢甚至導致過度學習 (Overfitting) 降低模型的表現。

圖 3b 表示三種資料型態 (原資料、rolling資料、2d資料) 所訓練出最好模型的表現,除了辨識準確度以外,我們亦使用模型於測試資料中所辨識出的岩性分層數量表示其辨識瑣碎程度,越不瑣碎越好(因為此項計畫的專家並不會特別標示短周期沉積相變化等的小細節);由特徵轉換過資料訓練的模型皆在準確度與瑣碎度上有明顯改善,之中又以rolling資料訓練的模型表現最好。

總結來說,這些不同資料轉換與演算法組合中最好的是使用線性演算法搭配未使用PCA的rolling資料,我們便以此模型作為輸出之自動化岩性辨識模型。

圖 3、(a) 不同特徵轉換與演算法組合所獲得的模型於交叉驗證中的表現、(b) 三種資料型態 (原資料、rolling資料、2d資料) 所訓練出最好模型於測試資料中的岩性分層數與準確度,此圖取自Lee et al. (2022)。

本研究所推出的自動化岩性辨識模型具有78%準確度,透過誤差分析確認符合人為準確度可視為不同專家間的意見差異;此外於本模型也產出另一個實用指標:結果或然率 (圖 4),每一個資料點都會標示屬於各個岩性的或然率,方便我們標註出模型較無信心的岩心樣本,如此便達到文章開頭所設立的目標,幫助專家針對少部分較複雜、較關鍵之岩心樣本進行詳細分析,藉此有效避免資源冗費。

圖 4、為自動化岩性辨識之一岩心範例, (a) 顯示該岩心各資料點屬各岩性的或然率, (b) 為各資料點對應之最大或然率用以表示模型判斷信心,並輔以岩心照片對照,此圖取自Lee et al. (2022)。

小記: 限制與未來展望

我們的模型雖然已從單一井位規模拓展到區域型規模,但距離成熟的應用模型甚至是商用模型仍然需要許多努力,例如:

· 程式碼的修編
· API至GUI的建立
· 資料取得的成本降低 (例如使用圖片資料取代手續繁複的化學元素資料)
· 自動化作業流程設計

此外這項研究我們也受惠於廣大ML、Python社群的資源,所以不管是所使用的程式碼或是發表之文章,我們皆以開源方式呈現。期待這項導入ML於地科研究場域的突破可以提升研究人員於前端資料取得的效率,而更能著重於分析數據取得後的科學解釋或工程應用,並倚靠更完備之資料覆蓋度與代表性求得過往無法解析的研究細節。

參考文章:

Lee, A.-S., Enters, D., Huang, J.-J. S., Liou, S. Y. H. & Zolitschka, B. An automatic sediment-facies classification approach using machine learning and feature engineering. Communications Earth & Environment 3, 294, doi:10.1038/s43247–022–00631–2 (2022).

Github repo: https://github.com/dispink/WASA_faciesXRF

推薦書目:

Abu-Mostafa, Y. S., Magdon-Ismail, M. & Lin, H.-T. Learning From Data: A Short Course. (AMLBook, 2012).

Müller, A. C. & Guido, S. Introduction to Machine Learning with Python: A Guide for Data Scientists. 1 edn, (O’Reilly Media, 2016).

Ng, A. Machine learning yearning. (deeplearning.ai, 2018).

--

--