應用與前沿

神經算子(neural operator)

多數神經網路學的是從數字到數字的映射——這張圖對應那個標籤。神經算子的目標更高:它學的是從整個「函數」到整個函數的映射。把一個微分方程的初始條件或係數場交給它,它回傳該方程完整的解場——實際上,它學會了一次當整族問題的求解器。

其動機是藉由攤提來換取速度。古典求解器對每個新問題案例都從零開始;若你必須把同一類方程解上千次——為了設計最佳化、不確定性量化或即時控制——那個代價會疊加起來。神經算子在許多已解的輸入-輸出對上訓練「一次」(這些對常由一個受信任的古典求解器產生),此後就能以一次快速的前向傳遞把任何新輸入映射到它的解,往往快上數百或數千倍。領頭的設計傅立葉神經算子在頻域中做混合:它用 FFT 轉換輸入場,對低頻施加學習出來的權重,再轉換回來——這讓單一訓練好的模型能在不同網格解析度上適用,這個性質稱為離散化不變性,是普通網路所欠缺的。

神經算子作為在反覆呼叫求解器的外迴圈中的快速代理時大放異彩,並在流體流動與天氣模擬上展現出驚人的加速。誠實的告誡與所有科學機器學習相同,只是更尖銳:算子只對類似其訓練分布的輸入可靠,在真正新穎的情形下可能嚴重失靈;它繼承了產生其訓練資料的求解器的誤差;而且它不提供收斂保證或嚴謹的誤差界。它最好被理解為一個學習出來、快速的求解器「近似」,需對照真實之物加以確認,而非已被證明能取代它。

一支飛機團隊在設計搜尋中需要繞過一萬種候選機翼形狀的氣流。與其每次都跑一次完整的 CFD 求解,他們用幾千個 CFD 解訓練一個傅立葉神經算子,然後讓它在數毫秒內預測每個新形狀的流場——只保留那台緩慢而受信任的求解器,用來對少數幾個優勝者複查。

訓練好的神經算子在數毫秒內預測上千形狀的流場;真正的求解器則複查優勝者。

神經算子的好壞不超過它的訓練分布以及產生它的求解器,且沒有收斂保證。在熟悉的情形內把它當快速代理來信任,新穎的案例則對照真正的求解器加以確認。

又称
operator learningFourier neural operatorFNOlearned solver算子學習傅立葉神經算子