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. 發起,及其當時任職公司(台灣雪豹科技)無償贊助場地及茶水點心。

Deep Learning 101 Buy Me A Coffee

去 YouTube 訂閱 | Facebook | 回 GitHub Pages | 到 GitHub 點星 | 網站 | 到 Hugging Face Space 按愛心


大語言模型 語音處理 自然語言處理 電腦視覺
Large Language Model Speech Processing Natural Language Processing, NLP Computer Vision

用 AI 懂 AI

AI 技術 體驗/分享

手把手帶你一起踩 AI 坑https://www.twman.org/AI


AI 技術 開源/試用

深度學習也可以學傅立葉轉換 YouTube

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]:

  1. 使用卷積神經網路 (CNN) 作為算子:
    • 這個想法是將 CNN 模型本身視為一個「算子」,直接學習從輸入函數(例如 PDE 的初始條件或邊界條件)到輸出函數(即 PDE 的解)的映射 [3, 4]。
    • 然而,這種方法通常是基於離散的網格點進行採樣的 (Mesh dependent) [4]。這意味著模型的效能會直接受到採樣點的分辨率影響 [4]。更關鍵的問題是,如果重要的區域沒有被充分採樣(例如現象變化劇烈的區域),CNN 可能難以捕捉其真正的特性 [4]。同時,由於它學到的是特定採樣點上的對應關係,它難以對新的座標點或未在訓練中出現的參數設置下的解進行有效的查詢或預測 [3, 4]。
  2. 使用神經網路直接參數化 PDE 的解:
    • 另一種方法是讓神經網路直接學習 PDE 解函數本身的參數化表示 [3, 4]。這種方法不依賴於固定的網格 (Mesh independent) [4]。
    • (新手入門:想像 PDE 的解 u(x, y) 是一個函數,這種方法是訓練一個神經網路 NN(x, y) 去直接逼近 u(x, y) 的值)。
    • 儘管擺脫了網格依賴,這種方法依然難以對訓練時未見過的新參數或新的座標點進行有效的查詢或預測 [3, 4]。這點與第一種方法有類似的局限性 [4]。講者生動地比喻,這就像圖像分類模型只看過特定角度的貓圖片,遇到不同角度或有點像老虎的圖片時可能判斷失誤 [7]。

這些早期方法雖然有其貢獻,但未能從根本上解決神經網路在處理連續函數和泛化到不同離散化程度時遇到的挑戰。

神經算子 (Neural Operator) 的概念崛起

為了克服上述限制,神經算子 (Neural Operator) 的概念被提出,其核心目標是直接學習函數空間到函數空間的映射 [1, 6-8]。

(新手入門:傳統的神經網路通常處理的是固定長度的向量輸入到固定長度的向量輸出(例如圖片分類:輸入固定大小圖片(向量),輸出類別機率(向量))。而神經算子處理的是「函數」這個概念作為輸入和輸出。函數可以看作是無限維空間中的一個點,例如一個曲面、一張圖片(每個空間座標對應一個像素值)、一個訊號(每個時間點對應一個振幅),都可以被視為一個函數 [9-12])。

在數學上,算子 (Operator) 就是一種將一個函數(可能存在於無限維空間)映射到另一個函數(可能存在於另一個無限維空間)的轉換 [1, 6-8, 11]。PDE 系統在數學上就可以對應到一個算子的作用 [8, 11]。神經算子正是希望利用神經網路來學習實現這種無限維空間之間的映射 [6, 7, 13]。

(研究者視角:從無限維空間直接學習聽起來很理論化,實際在電腦中操作有限的數據點,如何逼近無限維度的映射是關鍵挑戰 [7, 13-15])。

講者在資料中詳細闡述了神經算子的數學基礎 [7, 16, 17]:

從數學積分到神經網路實現:利用圖神經網路 (GNN)

然而,直接在電腦中實現無限維空間的積分是不切實際的 [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 Neural Operator, FNO) 進一步引入了 傅立葉變換 (Fourier Transform) 的概念 [1, 6, 7]。

(新手入門:想像你有一張圖片(空間域的函數),FFT 將它變成頻譜圖(頻率域的表示)。FNO 在頻譜圖上對不同頻率成分進行加權或篩選(乘以 R),就像一個智能濾波器,然後再變回一張處理過的圖片 (IFFT)) [7, 23, 25]。這個 R 矩陣的參數是通過訓練學到的 [7, 26]。

(研究者視角:將操作轉移到頻域處理,尤其是使用 FFT,在計算上通常更高效 [23, 25, 27, 28]。而且,直接在頻域操作可學習的 Kernel,使得模型更能捕捉函數的全局頻率特徵,這或許是其 Mesh independent 能力的關鍵 [5, 6, 28])。

FNO 的優勢與實驗結果

相較於傳統方法和早期的神經網路方法,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 的核心概念,特別是從處理離散點到處理連續函數的思維轉變,以及如何在離散數據中逼近無限維度的算子,是進入這個領域的關鍵重點。