你用對模型了嗎?建模前必須了解資料科學這件事

要完成一個AI專案,少不了模型或是演算法以及資料,如何建立出一個好模型更是許多工程師關注的重點。當前有許多建模工具,如:TensorFlow、Keras、PyTorch 等,對於想要學習的人來說,無論是工具書或是線上教學,學習資源都非常多。但學會這些工具,就能建出一個好模型嗎?

對工程師來說,學會寫程式、建立模型並不難,但要如何評估模型的適用性或是根據手上的資料,判斷適合的模型才是真正的考驗。許多人容易犯下的錯是,不管資料品質與來源,直接就丟進模型中訓練,效果當然也就有限。但對科學家來說,除了建立出一個準確率高的模型外,更多時候科學家們更希望透過演算法,找出資料之間的關聯和規則,使得人類對於周遭的現象能夠有更深度的瞭解。

一般來說,我們對於模型往往有幾個迷思,一、模型越複雜越好?二、模型準確率越高越好?然而,我們知道,資料科學的應用往往融合了多種領域,例如工程學、物理學、化學、生物學、生態學、哲學、或是經濟學,已非過去單種專業所能應付。因此,了解資料科學學科的基礎知識與概念十分重要,可以幫助建模者了解如何針對實務上的狀況,選擇適用的工具,避免陷入人云亦云、似是而非的陷阱中。以下是《資料科學的建模基礎:別急著coding!你知道模型的陷阱嗎?》的精彩內容摘錄整理:


何謂易於理解之模型?

理解導向建模最終目的是理解目標現象或資料的生成規則,因此建立出易於理解的數學模型是非常重要。而易於理解的模型,通常會滿足以下條件(不一定需要同時滿足所有條件):

● 參數的數量較少
● 使用的函數較簡單
● 模型中的各元素(數學結構、變數、參數)皆可直觀理解
● 可使用數學方式分析(編註:可以算出數學解析解,或是可以算出
穩態解之類)

因為即便是能夠充分解釋欲分析資料的數學模型,『當其中參數數量較多,或使用之函數較複雜時,要判斷該模型之行為究竟剛好與資料一致,還是真的有捕捉到本質,難度都會被提高。』此外,還有一點很重要的是,模型中的所有元素都要能用言語清楚說明(必須說服他人為何要將該元素納入模型)『由數學模型導出的論證強度,將與模型中邏輯最弱之處具有同樣(或更低)的強度』。因此若要提出強而有力的結論,則模型中包含各元素的理由,都必須在邏輯上具有令人信服的解釋(為何要使用這種變數、數學結構或參數)。

1623761737752.jpg
(圖片:旗標科技提供)

模型並非只要簡單就好,要能解釋資料

但無論有多容易理解,只要無法解釋資料,模型就沒有意義了。因此理解導向建模永遠都得在「能夠解釋資料的程度」與「模型的複雜程度」之間尋求平衡。這也是之前提到,建模過程中每個步驟必須反覆檢查的原因。而如果與『資料的吻合程度相當,則基本上應選擇較易理解的模型。』

欲理解之深度與建模方式

現象的機制是有層級之分的,想要理解的層級也會影響到適合使用的模型。以時間序列資料為例,如果只需要敘述性的「理解」,比如說有多少趨勢或循環變動等因素存在,則使用時間序列模型,觀察取得的參數或推測出來的變數變化即可。

但若想要知道產生出該動態行為之機制,則必須根據問題選擇使用動態系統、強化式學習或多體系統等建模方式。

而『建模過程的重點,則是在模型當中以數學方式描述希望理解或取得解釋之層級。』例如解釋個體數變化時用的洛特卡-沃爾泰拉模型,就是利用了可以合理解釋並具有意義的運算式來描述個體數的變化速度,讓我們可以藉此來解釋個體數變化的發生機制。

數學模型與推論

若數學模型可以充分描述變數之間的關係性以及動態行為,則由此可推論的第一件事,就是『這些變數的運作方式 』(在還不知道模型是否正確的情況)。接下來,若進一假設該模型是正確的,則還可以再藉此進行各種推論或預測。若能進行符合邏輯的推論(比如說,以數學方式計算出某種量),則推論結果之可靠性,將與模型的可靠性一致。

模型無法解釋比自身描述之層級更深入之機制

但上述模型對於更根本的機制,例如「為何會生成此處所假設之動態行為?」是無法提供解釋的。若想要了解,就必須再針對該層級進行建模。

1623762345524.jpg
(圖片:旗標科技提供)

舉例來說,若利用統計模型來表現資料的統計分佈,則可以主張該資料符合模型敘述,也可以計算在此情況下會產生何種現象,但不能對「為何會出現該分佈?」做出結論。不過,若能說明直接針對目標系統之行為建模的結果,會產生出相同的統計分佈,就能藉此理解該假設行為呈現出該分佈的機制了。

資料也是同樣的道理。我們可以從取得的資料當中,推論出該資料是藉由何種規則生成,但是要知道為何會出現這種機制,則必須再取得更進一步的資料。舉個簡單的例子來說,我們或許能夠掌握人類表面行為的原則(比如說,只要將某項商品的包裝設計成某種樣式,就能夠提升銷售),但對方心裡到底是怎麼想的(或根本只是無意識的行為),我們除了想像,其實也別無他法 。

因此,確實了解「手邊資料能匹配什麼層級的模型」是非常重要的概念

本文節錄自《資料科學的建模基礎:別急著coding!你知道模型的陷阱嗎?》,由旗標科技授權轉載。