兩種基于深度神經(jīng)網(wǎng)絡(luò)的新方法,均可成功求解 PDE,并且能夠以更快的速度、更簡(jiǎn)單的方式建模復(fù)雜的系統(tǒng)。有趣的是,和大多神經(jīng)網(wǎng)絡(luò)一樣,我們猜不透它們?yōu)槭裁慈绱藘?yōu)秀。
研究者們致力于使用偏微分方程(Partial differential equation,PDE)來(lái)描述涉及許多獨(dú)立變量的復(fù)雜現(xiàn)象,比如模擬客機(jī)在空中飛舞、模擬地震波、模擬疾病在人群中蔓延的過(guò)程、模擬基本力和粒子之間的相互作用。
一直以來(lái),求解復(fù)雜問(wèn)題的偏微分方程都是世界級(jí)的難題。CPU 往往需要幾百萬(wàn)個(gè)小時(shí)才能得出相對(duì)復(fù)雜的偏微分方程,而且越復(fù)雜的問(wèn)題越難用偏微分方程解決。無(wú)論是設(shè)計(jì)更好的火箭發(fā)動(dòng)機(jī),還是模擬氣候變化,我們都需要更有效的方法來(lái)解決這些問(wèn)題。
近來(lái),研究者在偏微分方程的求解上取得了令人激動(dòng)的新進(jìn)展。他們構(gòu)建了新型的人工神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)了更快求解偏微分方程。經(jīng)過(guò)訓(xùn)練后,新型的神經(jīng)網(wǎng)絡(luò)不但可以求解單個(gè)偏微分方程,而且無(wú)需再度訓(xùn)練即可求解整個(gè)偏微分方程族。
瑞士蘇黎世聯(lián)邦理工學(xué)院的數(shù)學(xué)家 Siddhartha Mishra 表示,傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)通常將數(shù)據(jù)從一個(gè)有限維空間映射或轉(zhuǎn)換到另一個(gè)有限維空間,但新型的深層網(wǎng)絡(luò)能夠在無(wú)窮維空間和無(wú)窮維空間之間映射。
毫無(wú)疑問(wèn),這樣的技術(shù)將加速涉及偏微分方程的許多模型。作為開(kāi)發(fā)團(tuán)隊(duì)的一員,Anima Anandkumar 說(shuō):「最終,我們的目標(biāo)是取代非常緩慢且昂貴的傳統(tǒng)求解器。」
當(dāng)然,新的方法絕不僅僅是作用于加速。對(duì)于只有數(shù)據(jù)卻不知用哪種偏微分方程進(jìn)行建模的情況,訓(xùn)練數(shù)據(jù)然后使用新型神經(jīng)網(wǎng)絡(luò)是唯一的手段。
神經(jīng)網(wǎng)絡(luò)入場(chǎng)求解 PDE
偏微分方程有用且極其難以解決的原因是它的復(fù)雜性。這使它們能夠?qū)Ω鞣N現(xiàn)象進(jìn)行建模,例如,如果建模人員想知道流體在空間中任何一點(diǎn)(也稱(chēng)為流場(chǎng))以及在不同時(shí)間下的速度和壓力,可能會(huì)使用 Navier-Stokes 偏微分方程進(jìn)行建模。求解 Navier-Stokes 方程,將獲得一個(gè)描述系統(tǒng)內(nèi)容的公式。如果對(duì)初始和邊界條件有足夠的了解,例如在時(shí)間 t = 0 時(shí)的流場(chǎng)值,則可以使用數(shù)學(xué)工具來(lái)解析偏微分方程。
但是偏微分方程常常復(fù)雜到?jīng)]有通用的分析解決方案,對(duì)于 Navier-Stokes 方程的最通用形式尚且如此:數(shù)學(xué)家尚未證明是否存在唯一解,更不用說(shuō)通過(guò)分析實(shí)際上找到它們了。
甚至在超級(jí)計(jì)算機(jī)上,用數(shù)值法來(lái)解決復(fù)雜的偏微分方程可能也要花費(fèi)數(shù)月的時(shí)間。而且,每次更改初始或邊界條件或所研究系統(tǒng)的幾何形狀都必須重新開(kāi)始。同樣,使用的增量越小(網(wǎng)格越細(xì)),模型的分辨率就越高,數(shù)值法所需的時(shí)間就越長(zhǎng)。
2016 年,研究人員嘗試將通常用于圖像識(shí)別的深度神經(jīng)網(wǎng)絡(luò)應(yīng)用于解決偏微分方程。首先,研究人員生成了用于訓(xùn)練深度網(wǎng)絡(luò)的圖像數(shù)據(jù)。其中輸入的是有關(guān)對(duì)象幾何形狀和流體初始條件的 2D 圖像編碼信息,而輸出的是相應(yīng)速度場(chǎng)的 2D 快照。
有了數(shù)據(jù),研究人員開(kāi)始訓(xùn)練他們的神經(jīng)網(wǎng)絡(luò),以學(xué)習(xí)這些輸入和輸出之間的相關(guān)性。訓(xùn)練主要是先比較輸出與預(yù)期輸出的差別,然后用算法調(diào)整神經(jīng)元的權(quán)重,以最大程度地減少生成的輸出和預(yù)期輸出之間的差異。重復(fù)此過(guò)程,直到輸出誤差在可接受的范圍。
讓神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)了如何解決偏微分方程是令人興奮的,但還有很大的不足。一旦在一定的網(wǎng)格尺寸上進(jìn)行訓(xùn)練,神經(jīng)網(wǎng)絡(luò)就變得非常特定于該分辨率。深度網(wǎng)絡(luò)已經(jīng)學(xué)會(huì)了預(yù)估將數(shù)據(jù)從一個(gè)有限維空間映射到另一個(gè)空間的函數(shù)。但以不同的分辨率求解偏微分方程時(shí),如果想對(duì)流場(chǎng)有一個(gè)更細(xì)致的了解,或更改初始和邊界條件,則需要重新開(kāi)始訓(xùn)練,學(xué)習(xí)預(yù)估新的函數(shù)。
DeepONet
而現(xiàn)在的深度神經(jīng)網(wǎng)絡(luò),不僅可以學(xué)習(xí)預(yù)估函數(shù),還可以學(xué)習(xí)將函數(shù)映射到函數(shù)的「算子」,并且似乎沒(méi)有遭受神經(jīng)網(wǎng)絡(luò)和其他計(jì)算機(jī)算法從數(shù)據(jù)中學(xué)習(xí)的維數(shù)問(wèn)題。例如,如果想使神經(jīng)網(wǎng)絡(luò)的錯(cuò)誤率從 10%降至 1%,則所需的訓(xùn)練數(shù)據(jù)量或網(wǎng)絡(luò)規(guī)??赡軙?huì)指數(shù)增長(zhǎng),從而導(dǎo)致任務(wù)無(wú)法實(shí)現(xiàn)。
在這之前,研究人員必須弄清楚如何讓神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算子來(lái)解決偏微分方程。布朗大學(xué)的 George Karniadakis 表示,學(xué)習(xí)算子是從無(wú)窮維空間到無(wú)窮維空間。算子作用于一個(gè)函數(shù),然后將其轉(zhuǎn)換為另一函數(shù)。比如,一個(gè)算子將一個(gè)函數(shù)轉(zhuǎn)換為其導(dǎo)數(shù)(比如 x 的正弦轉(zhuǎn)換為 x 的余弦),其輸入和輸出端都是無(wú)窮維的。
學(xué)習(xí)預(yù)估算子的深度網(wǎng)絡(luò)可用于一次求解整個(gè)偏微分方程族,對(duì)一系列初始和邊界條件以及物理參數(shù)建模相同的現(xiàn)象。這樣的偏微分方程族是輸入端的一組函數(shù),而對(duì)偏微分方程公式的相應(yīng)解決方案則由輸出端的函數(shù)來(lái)表示。
1995 年的一項(xiàng)研究表明,淺層網(wǎng)絡(luò)可以看成是算子。由于涉及神經(jīng)網(wǎng)絡(luò),因此此類(lèi)算子也叫神經(jīng)算子,即實(shí)際算子的近似值。在 2019 年 10 月,Karniadakis 和他的同事把這種理論延伸到了深度神經(jīng)網(wǎng)絡(luò),提出了「DeepONet」,一種可以學(xué)習(xí)這種算子并一次求解多個(gè)偏微分方程的深度神經(jīng)網(wǎng)絡(luò)架構(gòu)。
論文鏈接:http://arxiv-export-lb.library.cornell.edu/pdf/1910.03193
DeepONet 的獨(dú)特之處在于它的分叉式架構(gòu),該架構(gòu)在兩個(gè)并行網(wǎng)絡(luò)(「分支」和「主干」)中處理數(shù)據(jù)。前者學(xué)習(xí)預(yù)估輸入側(cè)的許多函數(shù),后者學(xué)習(xí)預(yù)估輸出側(cè)的函數(shù)。然后,DeepONet 將兩個(gè)網(wǎng)絡(luò)的輸出合并,以學(xué)習(xí)偏微分方程所需的算子。訓(xùn)練 DeepONet 的過(guò)程包括反復(fù)地展示使用數(shù)字求解器生成的一族偏微分方程的輸入、輸出數(shù)據(jù),并在每次迭代中調(diào)整分支網(wǎng)絡(luò)和主干網(wǎng)絡(luò)中的權(quán)重,直到整個(gè)網(wǎng)絡(luò)出現(xiàn)的錯(cuò)誤量可以被接受為止。
因此,DeepONet 一旦經(jīng)過(guò)訓(xùn)練,就會(huì)學(xué)會(huì)預(yù)估算子。它可以在輸入端獲取代表偏微分方程的數(shù)據(jù),然后將其轉(zhuǎn)換為輸出端偏微分方程解決方案的數(shù)據(jù)。假設(shè)有 100 個(gè)代表了訓(xùn)練數(shù)據(jù)中沒(méi)有的初始 / 邊界條件和物理參數(shù)以及所需的流場(chǎng)位置的樣本被提供,那么 DeepONet 可以在不到一秒的時(shí)間提供流場(chǎng)。
DeepONet 架構(gòu)圖。
但是,即使 DeepONet 跟數(shù)值求解器一樣快速,它仍必須在訓(xùn)練期間執(zhí)行密集的計(jì)算。當(dāng)必須用大量數(shù)據(jù)訓(xùn)練深度網(wǎng)絡(luò)以使神經(jīng)算子越來(lái)越精確時(shí),這可能會(huì)成為一個(gè)問(wèn)題。
那么,神經(jīng)算子還能更快嗎?
傅里葉神經(jīng)算子
去年,加州理工學(xué)院的 Anima Anandkumar 和普渡大學(xué)的 Kamyar Azizzadenesheli 共同建立了一個(gè)稱(chēng)為傅立葉神經(jīng)算子(FNO)的深度神經(jīng)網(wǎng)絡(luò)。
論文鏈接:https://arxiv.org/pdf/2010.08895v2.pdf
研究者聲稱(chēng)新的架構(gòu)使網(wǎng)絡(luò)具有更快的速度,能將函數(shù)映射到函數(shù),從無(wú)窮維空間到無(wú)窮維空間,并且在偏微分方程上測(cè)試了該神經(jīng)網(wǎng)絡(luò)。
解決方案的核心是傅立葉層:在訓(xùn)練數(shù)據(jù)通過(guò)神經(jīng)網(wǎng)絡(luò)的每一層之前,先對(duì)其進(jìn)行傅里葉變換。然后,該層通過(guò)線性運(yùn)算處理數(shù)據(jù),再執(zhí)行傅立葉逆變換回原始格式。此過(guò)程顯然比 DeepONet 的計(jì)算更直接,并且能夠通過(guò)卷積偏微分方程與其他函數(shù)的數(shù)學(xué)運(yùn)算來(lái)求解偏微分方程。在傅立葉領(lǐng)域中,卷積相當(dāng)于一個(gè)簡(jiǎn)單的乘法,將經(jīng)過(guò)傅立葉變換的數(shù)據(jù)通過(guò)一層已訓(xùn)練過(guò)權(quán)重的人工神經(jīng)元傳遞,然后進(jìn)行傅立葉逆變換。最后,F(xiàn)NO 學(xué)習(xí)了整個(gè)偏微分方程族的算子,將函數(shù)映射到函數(shù)。
FNO 深度神經(jīng)網(wǎng)絡(luò)同時(shí)擁有極快的運(yùn)行速度。例如,在一個(gè)需要進(jìn)行 30000 次仿真(包括 Navier-Stokes 方程)的求解過(guò)程中,對(duì)于每個(gè)仿真,F(xiàn)NO 花費(fèi)了不到一秒的時(shí)間;而 DeepONet 耗時(shí) 2.5 秒;傳統(tǒng)的求解器則大概需要花費(fèi) 18 個(gè)小時(shí)。
總結(jié)
很顯然,DeepONet 與 FNO 這兩種方法都會(huì)超越傳統(tǒng)的求解器。兩個(gè)團(tuán)隊(duì)的方法都是成功的,但是與大多黑盒化的神經(jīng)網(wǎng)絡(luò)一樣,目前我們尚不清楚它們?yōu)槭裁慈绱顺錾?,以及是否在所有情況下都如此出色。
經(jīng)過(guò)一年的努力,今年 2 月研究人員發(fā)表了對(duì) DeepONet 架構(gòu)長(zhǎng)達(dá) 112 頁(yè)的數(shù)學(xué)分析。研究證明這種方法是真正通用的,不僅僅是偏微分方程,DeepONet 可以將輸入端的任何函數(shù)集映射到輸出端的任何函數(shù)集。
而對(duì) FNO 的數(shù)學(xué)分析尚未完成。不過(guò)對(duì)于沒(méi)有確定的偏微分方程的現(xiàn)象,學(xué)習(xí)神經(jīng)算子很可能是建模此類(lèi)系統(tǒng)的唯一方法。比如交通問(wèn)題,編寫(xiě)精確捕捉交通動(dòng)態(tài)的偏微分方程幾乎是不可能的,但是可以學(xué)習(xí)的數(shù)據(jù)量卻非常之多。