Deep Learning 101, Taiwan’s pioneering and highest deep learning meetup, launched on 2016/11/11 @ 83F, Taipei 101
AI是一條孤獨且充滿惶恐及未知的旅程,花俏絢麗的收費課程或活動絕非通往成功的捷徑。
衷心感謝當時來自不同單位的AI同好參與者實名分享的寶貴經驗;如欲移除資訊還請告知。
由 TonTon Huang Ph.D. 發起,及其當時任職公司(台灣雪豹科技)無償贊助場地及茶水點心。
YouTube | Facebook | 回 GitHub Pages | 網站 | Hugging Face Space
Deep Learning Can Also Learn Fourier Transforms: Neural Operators
2020/12/04 杜岳華
在科學與工程領域,偏微分方程 (PDE) 是描述許多自然現象與物理過程的核心工具,從熱傳導、波動傳播到流體力學(如 Navier-Stokes 方程)[1-3]。然而,求解這些方程往往極具挑戰性,傳統上主要依賴於數值方法,例如有限元素法 (Finite Element Method)、有限體積法 (Finite Volume Method) 或有限差分法 (Finite Difference Method) [1, 3, 4]。這些方法雖然成熟且廣泛應用,但經常受到網格分辨率的限制(即所謂的 mesh-dependent),且在處理複雜問題或需要快速求解時可能顯得效率不足 [4, 5]。
深度學習的興起為 PDE 求解帶來了新的視角。相較於傳統數值方法,神經網路有潛力提供更快、更精準的解 [1, 6]。早期的研究也嘗試將神經網路應用於此,我們從資料中看到主要有兩種嘗試方向 [1, 3, 4]:
這些早期方法雖然有其貢獻,但未能從根本上解決神經網路在處理連續函數和泛化到不同離散化程度時遇到的挑戰。
為了克服上述限制,神經算子 (Neural Operator) 的概念被提出,其核心目標是直接學習函數空間到函數空間的映射 [1, 6-8]。
(新手入門:傳統的神經網路通常處理的是固定長度的向量輸入到固定長度的向量輸出(例如圖片分類:輸入固定大小圖片(向量),輸出類別機率(向量))。而神經算子處理的是「函數」這個概念作為輸入和輸出。函數可以看作是無限維空間中的一個點,例如一個曲面、一張圖片(每個空間座標對應一個像素值)、一個訊號(每個時間點對應一個振幅),都可以被視為一個函數 [9-12])。
在數學上,算子 (Operator) 就是一種將一個函數(可能存在於無限維空間)映射到另一個函數(可能存在於另一個無限維空間)的轉換 [1, 6-8, 11]。PDE 系統在數學上就可以對應到一個算子的作用 [8, 11]。神經算子正是希望利用神經網路來學習實現這種無限維空間之間的映射 [6, 7, 13]。
(研究者視角:從無限維空間直接學習聽起來很理論化,實際在電腦中操作有限的數據點,如何逼近無限維度的映射是關鍵挑戰 [7, 13-15])。
講者在資料中詳細闡述了神經算子的數學基礎 [7, 16, 17]:
然而,直接在電腦中實現無限維空間的積分是不切實際的 [7, 14]。因此,實際實現神經算子時,會將數學上的積分轉換為對離散採樣點的求和 (summation) [7, 14]。這正是可以利用 圖神經網路 (Graph Neural Network, GNN) 或其中的 Message Passing Neural Network 框架的地方 [1, 7, 14]。
因此,藉由 GNN 的框架,神經算子將抽象的無限維積分轉換為在離散圖結構上的訊息傳遞和聚合,從而在實際中實現了對函數算子的學習 [7, 14, 19]。
在神經算子這個通用框架的基礎上,傅立葉神經算子 (Fourier Neural Operator, FNO) 進一步引入了 傅立葉變換 (Fourier Transform) 的概念 [1, 6, 7]。
FNO 的核心思想是利用這一點,將神經算子中的 Kernel Function $k$ 特化為一個與傅立葉變換相關的算子,具體來說是一個 Convolution Kernel [1, 7, 17, 22, 23]。由於空間域的卷積等價於頻域的乘法,FNO 的做法就是:
(新手入門:想像你有一張圖片(空間域的函數),FFT 將它變成頻譜圖(頻率域的表示)。FNO 在頻譜圖上對不同頻率成分進行加權或篩選(乘以 R),就像一個智能濾波器,然後再變回一張處理過的圖片 (IFFT)) [7, 23, 25]。這個 R 矩陣的參數是通過訓練學到的 [7, 26]。
(研究者視角:將操作轉移到頻域處理,尤其是使用 FFT,在計算上通常更高效 [23, 25, 27, 28]。而且,直接在頻域操作可學習的 Kernel,使得模型更能捕捉函數的全局頻率特徵,這或許是其 Mesh independent 能力的關鍵 [5, 6, 28])。
相較於傳統方法和早期的神經網路方法,FNO 展現出顯著的優勢 [5, 6, 27]:
資料中展示了 FNO 在不同 PDE 問題(如 Burgers equation, 2D Darcy flow, Navier-Stokes equation)上的實驗結果,並與 FCN (Fully Convolutional Network,這裡可能代表基於 CNN 的早期方法) 和 GKN (Graph Kernel Network,基於 GNN 的 Neural Operator) 等方法進行了比較 [5, 6, 15, 27, 28]。
資料中也提到了一些關於 FNO 的討論點 [25, 27-29]:
總而言之,Fourier Neural Operator 代表了深度學習在求解 PDE 問題上的一個重要進展,它通過學習函數算子,並巧妙地將傅立葉變換融入其中,實現了對傳統數值方法和先前神經網路方法限制的突破。其 Mesh independent 的特性和良好的泛化能力,為利用深度學習解決科學和工程領域的挑戰性問題提供了新的強大工具 [6, 29, 30]。對於新手研究者而言,理解神經算子和 FNO 的核心概念,特別是從處理離散點到處理連續函數的思維轉變,以及如何在離散數據中逼近無限維度的算子,是進入這個領域的關鍵重點。