close

image

利用機器學習與類神經網路 (neural network, NN) 等技術來建模需要要足夠量的資料才能有好的表現,是眾所皆知,

而且 NN 是著名的黑盒子,也就是我們基本上不知道NN到底是學到了什麼,說不定學到的東西根本就不符合基本的物理原理,

因此誕生了explainable AI 試圖去解讀人工智慧學到的知識,

相較之下,

傳統的物理模型有非常明確的框架,例如各種從經驗和觀察而得來的物理法則與公式,還有各種數值方法得到的動態模擬等,

因此相較之下就比較容易解讀,但是卻也失去了機器學習「從資料學習」的特點,

因此各種試圖描述真實世界的物理模型,都必需要花費大量的精力去調整參數以得到近似解,

但事實上,這除了很花時間以外,誰也不能保證是不是有還沒有被加進去的物理行為在影響我們的系統,

以筆者的經驗來說,物理模型在一些比較極端的情境下很容易失準,這時就開始用各種新的物理公式再加進去修正、trial and error,

但說真的,這帶給我們一種「頭痛醫頭,腳痛醫腳」的感覺。

針對這個問題,來自美國的團隊發表了文章 https://arxiv.org/abs/1710.11431

標題是  "Physics-guided Neural Networks (PGNN): An Application in Lake Temperature Modeling" ,

作者利用下圖來說明兩種模型的差異,同時提出了一個試圖融合兩種模型的特性,得到一個既能夠有物理來帶領,又從資料中學習的架構,

也就是標題說所的 Physics-guided Neural Networks (PGNN)。

我在網路上看到一段說明還不錯: PGNN,就像我們去一個賣場要買東西時,如果能夠先明確定義出要買的東西到底在哪個類別 (貨架),

找到目標的速度自然而然會快很多。

image

作者在文章中提出了兩種作法,(1) 嘗試把兩種模型融合在一起變hybrid model (2) 把物理知識變成objective function。

第一種作法的簡圖如下,把 input D 同時做為物理模型 fHBD 和NN的輸入,而物理模型的輸出 YPHY 會做為另一個輸入進入NN,

image

也就是說物理模型的輸出算是一種補充說明,向類神經網路暗示預期的答案,幫助預測的Y值可以更符合實際值,

但是如前面所說的,物理模型往往會因為參數不正確或是缺少必要的方程式而有所偏差,

此時透過類神經網路的特性來自我決定到底該如何權衡 D和 YPHY

其loss function 除了預測值與實際值之間的誤差以外,還加入模型複雜度的項次,

希望在維持較低的模型度之下,把預測誤差給最小化。

image

然而,這種做法其實還不能保證讓模型真的能學到符合物理原則的趨勢。

而本文的主角 Physics-guided Neural Network (PGNN) 就採用一個更直接的手法,

就是當模型的預測值跟物理知識不符時,給予處罰,

為了達到這個效果,作者在loss function 中加入一個新的項次: physical inconsisitency

image

此一做法類似於 L1/L2 regularization,在loss function中加入處罰項,如果得出來的結果不符合物理原理,

loss 將會比較大,因此演算法就會在優化模型時試圖試圖讓physical inconsisency最小化,達到預測結果能符合物理原理的目的。

作者隨即以湖泊溫度隨時間與深度而產生的變化為例,示範如何運用PGNN。

作者的目標是希望在給定水深和時間的情況下,可以預測湖泊的溫度分布,因此深度和溫度就是所謂 Driver (D),

 

image

上圖展示的便是湖泊的模型,展示了種種會影響水溫的因素,例如氣候、深度、入/出水口等等,

在傳統物理模型的部分,目前已經有一種 General Lake Model (GLM),他會捕捉太陽輻射帶來的熱量、蒸發帶走的熱量等等,

來計算溫度分布。但是如同我前面提到,這種物理模型的參數眾多,包括風的大小、湖水的澄清度等都是變量,

還得針對每一個湖泊去做客製化、重新calibrate,搞起來真是要人命,因此看資料說話的 Nerual Network 手法自然而然受到矚目。

 

接下來回到開頭講的hybrid model (特徵工程) 或 PGNN (loss function增加物理懲罰項) 兩種做法,

如果是採用 hybrid model 的做法,首先利用物理模型 (GLM) 去預測溫度分布 YPHY,搭配深度、時間來組成加強型的特徵集合,

image

這個集合就會做為NN的輸入。NN的主架構作者列出如下,包括了weighting、activation function、loss function的定義: 

image

image

如同前面所說,類神經網路他自己會針對觀測資料和模擬資料去做權衡,因此就算模擬出來的溫度值或許有所偏差,

NN也能在權衡之後找到最佳的超參數去把這部分的影響給最小化。

 

至於PGNN的部分,由於溫度與密度其實具有某一種關聯性,所以我們考量一條密度與溫度之間的關係式: 

image

對應到的就會是下面左邊這個大家在國中理化就有看過的圖形: 水在4度時密度最大 (因此最深的地方反而魚還能存活,因為不會結冰)

image
運用這條溫度與密度之間的物理關係式,

既然我們可以先利用 NN (input 是深度/時間)去得到溫度值,再把溫度值代入,自然而然就得到了密度值,

他的趨勢應該要符合上面右邊的關係圖。

我們可注意到,相較於溫度和密度的關係還有一些變化會發生,深度和密度的關係就簡單多了,基本上深度越深則密度越大,

因此可以寫成下面的關係式: 

image

為了要確保預測符合物理法則,在未標記的資料上,在input是深度與時間的情況下,我們可以制定以下的關係式: 

image

意思是說,在某特定的時間下,要檢查不同深度的密度值,這一關係式必需要是負值,才能表示較深的地方密度會比較高,

我們可以把這視為一個ReLU function: 在違反物理法則 (>0)時才會輸出訊號,讓 loss function 多出處罰項,從而達到針對性優化的目的。

最後為了要讓每一個連續點都能依循物理法則,把每一個時間點的每一個連續位置得到的結果都加總起來並取平均,

成為最終的physical-based loss function。

image

最後來到驗證的環節,作者測試了傳統的物理模型PHY、一般的neural network,還有 hybrid model (PGNN0) 與 physics-based neural network,

image (分布是來自不同的weight initialization)

兩個湖泊都顯示出,

比較 PHY (黑點) 和NN (綠線) 時,可以PHY的 test RMSE 比 NN還要高出一些,換言之,NN有更好的泛化能力 (更能預測未知點的溫度),

但是可以注意到NN有60~90% 或20~60% 的預測值其實是不能滿足物理法則 (較深的地方密度高)的,

相較之下,PGNN0 能夠再降低一些test RMSE,但是還不能有效改進違反物理法則的部分,

最好的解決方案正是本文主推的physical guided NN,在 test RMSE和物理法則的部分都有最好的表現。

而這個現象在不同的訓練資料數下依然成立。

image

最後鎖定PGNN做物理不一致項超參數 (hyparameter)的測試,看到不一致項的佔比越大,違反物理法則的比例會越低,而RMSE基本不變,

image

最後再把預出的密度值給各位做參考

image

 

總結來說,本文的作者提出一個簡單的辦法讓類神經網路的預測能夠透過物理規範來得到適當的引導,

如此以來就不會讓人工智慧學到的東西總是讓人覺得摸不著頭緒: 為什麼人工智慧會這樣想? 

接下來就期待有更多的領域能利用本文提出的方法,創造出科學上的突破了。

 

 

arrow
arrow

    William.Echoes 發表在 痞客邦 留言(0) 人氣()