代碼:https://github.com/vsitzmann/siren
項目網站 : https://vsitzmann.github.io/siren/
Implicit Neural Representations with Periodic Activation Functions
Abstract
由神經網絡參數化的隱式定義的、連續的、可微的信號表示已經成為一種強大的范例,提供了比傳統表示更多的可能好處。然而,目前用於這種隱式神經表征的網絡架構無法對信號進行細致的建模,也不能表示信號的時空導數,盡管這些對許多被隱式定義為偏微分方程解的物理信號至關重要。我們建議利用周期激活函數來表示隱式神經信號,並證明這些網絡,稱為正弦表示網絡或SIRENs,非常適合表示復雜的自然信號及其衍生物。我們分析了SIREN的激活統計,提出了一個有原則的初始化方案,並演示了圖像、波場、視頻、聲音及其導數的表示。此外,我們展示了如何利用SIRENs來解決具有挑戰性的邊值問題,如特殊的Eikonal方程(產生帶符號的距離函數)、泊松方程、Helmholtz方程和wave方程。最后,我們結合了SIREN和超網絡來學習SIREN函數空間上的先驗。請查看項目網站上所提議的方法的視頻概述和所有的應用。
1 Introduction
我們對滿足如下形式的等式的函數Φ的類感興趣:
這種隱問題公式需要將空間或時空坐標x∈Rm,和可選地根據這些坐標計算Φ的導數作為輸入。我們的目標是學習一個參數化Φ來將x映射到一些感興趣的數量,同時滿足方程(1)中給出的約束的神經網絡。因此,Φ被定義為F的關系隱式定義,提到的神經網絡就是用來參數化該隱式定義函數Φ為隱神經表征。
如我們在該論文所示,在科學領域中各種各樣的問題都陷入這種形式,如使用連續、可微的表征在圖像,視頻和音頻處理中建模不同類型的離散信號、通過signed距離函數[1-4]學習3D形狀表征,而且,更普遍的是解決邊值問題,如泊松、或Helmholtz方程和wave方程。
連續參數化對比其他方法有幾個優點,比如離散的基於網格的表示。例如,由於Φ是定義在x連續域上的,它比一個離散的表示有明顯更高效的內存,允許它建模好的細節而不被網格分辨率限制, 但是會被底層網絡架構的能力限制。可微意味着梯度和高階導數可以解析計算,例如使用自動微分,這再次使這些模型獨立於傳統的網格分辨率。最后,有了表現良好的導數,隱神經表征可以提供一個新的工具箱來解決逆問題,如微分方程。
基於這些原因,隱神經表征在過去的一年里可見有很強烈的研究興趣(第2節)。大多數最近的表征建立在基於Relu的多層感知器(MLPs)上。雖然前景看好,但這些架構缺乏表達底層信號好的細節的能力,而且它們通常不能很好地表示目標信號的導數。這部分是由於ReLU網絡是分段線性的,其二階導數處處為零,因此無法對包含在自然信號高階導數中的信息建模。雖然有可替代的激活函數,如tanh或softplus,它們能夠表示高階導數,但是我們證明了它們的導數通常表現不好,也不能表示細節。
為了解決這些限制,我們為隱神經表征使用了帶有周期性激活函數的MLPs。我們證明,這種方法不僅比ReLU-MLPs或在當前工作[5]中提出的位置編碼策略能更好地表示信號中的細節,而且這些特性也唯一地適用於導數,這對於我們在本文中探索的許多應用來說是至關重要的。
綜上所述,我們的工作貢獻包括:
- 一種使用適用於復雜的信號,如自然圖像和三維形狀的周期激活函數的連續隱神經表征,以及它們的導數。
- 訓練這些表征的初始化方案和驗證這些表征的分布可以通過超網絡學習。
- 在圖像、視頻和音頻表示中的應用程序演示; 3D形狀重建; 求解一階微分方程,目的是通過監測信號的梯度估計信號; 解二階微分方程。
2 Related Work
Implicit neural representations. 最近的研究已經證明了全連接網絡作為連續的、內存高效的隱式表征的潛力,可用於形狀部分[6,7]、物體[1,4,8,9]或場景[10 - 13]。這些表示通常是從某種形式的3D數據中訓練出來的,比如 signed distance function[1,4,8-12]或 occupancy networks[2,14]。除了表示形狀,其中一些模型還被擴展到編碼對象外觀[3,5,10,15,16],可以使用神經渲染[17]的(多視圖)二維圖像數據進行訓練。也有人提出了時間感知擴展[18]和變體,用於增加part-level的語義分割[19]。
Periodic nonlinearities. 在過去的幾十年里,人們反復研究了周期性非線性,但到目前為止,它的表現還不能明顯優於其他的激活函數。早期的工作包括傅立葉神經網絡,通過單隱藏層網絡來模擬傅立葉變換[20,21]。其他工作探索用於簡單分類任務[22-24]的帶有周期激活函數的神經網絡和回歸神經網絡[25 - 29]。已經證明,這些模型具有普遍的函數近似性質( function approximation properties)[30 -32]。Compositional pattern producing network[33,34]也利用周期性非線性,但依賴於通過遺傳算法框架中進化的不同非線性的組合。受離散余弦變換的啟發,Klocek等人[35]利用余弦激活函數來表示圖像,但他們不研究這些表示的導數或我們工作中探索的其他應用。受這些和其他開創性工作的啟發,我們探索了包含周期激活函數的MLPs,用於隱式神經表示及其導數的應用,並提出了有原則的初始化和泛化方案
Neural DE Solvers. 神經網絡已經在求解微分方程(DEs)[36]的上下文中研究了很長時間,並且在此之前已經被引入作為這個任務[37]的隱式表示。這一課題的早期工作涉及簡單的神經網絡模型,包括具有少量隱含層和雙曲正切或sigmoid非線性的MLPs或radial basis函數網絡[37-39]。這些淺網絡的有限能力通常將結果限制在一維解或簡單的二維曲面上。這些技術的現代方法利用了最近的優化框架和自動微分,但使用了基於MLPs的類似架構。不過,解決有着更高維度、更多約束或更復雜幾何的更復雜的方程是可行的[40 - 42]。然而,我們發現,通常使用的具有平滑、非周期激活函數的MLPs,即使在嚴密監控下,也不能准確地模擬高頻信息和高階導數。
Neural ODEs[43]與此主題相關,但本質上非常不同。由於隱式神經表示可以在系統dynamics的監督下直接求解常微分方程(ODEs)或偏微分方程(PDEs),Neural ODEs允許通過將常規的常微分方程求解器(例如,隱式Adams或Runge-Kutta)與參數化函數的dynamics的網絡配對來進行連續函數建模。所提議的架構可能是對這一行工作的補充。
3 Formulation
我們的目標是解決表示為等式(1)的形式的問題。我們將其作為一個可行性問題,其中函數Φ滿足M個約束,其中每個約束都將函數Φ或其導數與quantities a(x)相關聯:
該問題可以用一個懲罰來自域Ωm的每一個約束的導數的損失函數來解決:
實踐中,該損失函數通過采樣Ω來執行。數據集是一個坐標
和出現在約束中的quantities a(xi)樣本的元組集。因此,等式(3)的損失執行在從數據集中采樣得到的坐標xi上,得到損失為
在實踐中,數據集D是在訓練時動態采樣的,隨着樣本數量的增加,近似L的效果會更好,就像蒙特卡洛積分一樣。
我們參數化函數Φθ為帶着參數θ的全連接神經網絡,使用梯度下降解決結果的優化問題。
3.1 Periodic Activations for Implicit Neural Representations
我們提出SIREN,一個簡單的用於隱神經表征的神經網絡結構,其使用sine作為周期激活函數:
在這里,是網絡的第i層,其包含了使用應用於輸入
的權重矩陣
和偏差
來定義的仿射轉換,后面跟着一個應用於結果向量每個成分的sine非線性層
有趣的是,任何SIREN的導數本身就是SIREN,因為sin的導數是cos,如 phase-shifted sine(見補充)。因此,SIREN的導數繼承了SIREN的性質,使我們能夠監督SIREN在“復雜”信號下的任何導數。在我們的實驗中,我們證明了,當使用包含Φ的導數的約束Cm來監督SIREN時,這個函數Φ仍然表現良好,這在解決許多問題中是至關重要的,包括邊值問題(BVPs)。
我們將展示SIRENs可以使用激活分布的一些控制來初始化,從而允許我們創建深層架構。此外,SIREN的收斂速度明顯快於基線架構,例如,在幾百次迭代中擬合一張圖像,在現代GPU上只需要幾秒鍾,同時具有更高的圖像保真度(圖1):
第二行是一次求導的結果,第三行是二次求導的結果
A simple example: fitting an image. 考慮一個例子,即尋找一個能夠以連續的方式參數化一個給定的離散圖像 f 的函數。圖像定義一個與它們的RGB顏色
相關聯的像素坐標
的數據集
。唯一實施的約束是 Φ 應該在像素坐標上輸出圖像顏色,該約束僅依賴於Φ(與其任何導數無關)和
,其表示形式為
,該約束可以轉換成損失
。
在圖1中,我們使用帶有不同激活函數的可兼容的網絡結構去擬合Φθ成一個自然圖像。我們只對圖像值進行監督實驗,同時對梯度∇f 和 Laplacians∆f也進行了可視化。只有兩種方法,即帶有位置編碼(P.E)[5]的ReLU網絡和我們的SIREN,能夠准確地表示ground truth圖像f (x),而SIREN是唯一能夠表示信號導數的網絡。此外,我們運行了一個簡單的實驗,我們使用使用ReLU和SIREN MLPs去擬合300幀的、分辨率為512×512像素的一個短視頻。如圖2所示:
我們的方法成功地用接近30 dB的平均峰值信噪比來表示這個視頻,比ReLU基線高出約5 dB。我們也通過在補充材料中表示音頻信號來顯示了SIREN方法的靈活性。
3.2 Distribution of activations, frequencies, and a principled initialization scheme
我們提出了一個有效訓練SIREN所需的原則性初始化方案。在非正式地提出的同時,我們在補充材料中討論了進一步的細節、證明和經驗驗證。我們的初始化方案的關鍵思想是保持通過網絡后激活的分布,以便初始化時的最終輸出不依賴於層的數量。值得注意的是,在沒有仔細選擇均勻分布權值的情況下,構建SIRENs的精度和收斂速度都很差。
最后,我們首先考慮帶着均勻分布輸入 (這個輸入x=wTx+b) 的sine神經元的輸出分布。神經元的輸出為
其在任何
情況下是成立的,即最少跨越半個周期,sine的輸出為
,是u形Beta分布的一種特殊情況,且與b的選擇無關。我們現在可以推斷神經元的輸出分布。取n個權重為
的輸入
做一個線性組合,其輸出為
。假設該神經元在第二層,其每一個輸入都是arcsine分布(因為是第二層,第一層的輸出為第二層的輸入)。當w的每個成分都是如
的均勻分布,我們說明(可見補充)當n增加時,內積wTx將收斂到正態分布
。最后,對任何
的情況,這個正態分布的點積通過另一個正弦函數得到也是反正弦函數。注意,SIREN的權重可以解釋為角頻率,而偏差是相位偏移。因此,對於具有較大量級的權重,網絡中出現較大的頻率。對於
,sine層將保留不變的頻率,此時sine約等於線性函數。實際上,按經驗來說,我們發現一個sine層保持空間頻率近似恆定的振幅,如
,並增加空間頻率的振幅高於該值(通過SIREN公式化輸出頻率的分布證明是一個困難的任務,超出了該工作的范圍)
因此,我們提出使用c = √6來構造權重,因此。其保證每一個sine激活的輸入wTx+b是標准差為1的正態分布。當僅有少量的權重量級大於 π時,整個sine網絡的頻率也會緩慢增加。最后,我們提出使用權重初始化sine網絡的第一層,這樣sine函數
跨越多個周期,范圍為[-1,1]。在該工作中,我們發現ω0 = 30在所有應用中使用效果最好。該提出的初始化方案對所有實驗使用ADAM優化器得到快且魯棒的收斂
--------------------------------------- 補充內容
第一層sine激活的實現如上,輸入為均勻分布,設置Y=sin(π/2X),使得輸出Y滿足arcsine分布
這樣接下來從第二層開始的其他層一開始都初始化權重為(n為n個輸入),范圍在[-c,c],,這導致第一層之后的每一層的每個sine激活的輸入wTx是高斯正態分布
,該正態分布經過sine激活后得到的輸出結果大約是標准差為0.5的arcsin分布(因此除了第一層sine激活的輸入是均勻分布外,后面sine激活的輸入輸出都是arcsine分布。此外,我們聲明這些分布的形式和moment不會隨着網絡深度的增長而改變。
我們的初始化方案依賴於這樣一個事實:如果一層神經元的輸入和輸出的分布方式相同,那么通過一個簡單的遞歸參數,我們可以看到這種分布將在整個網絡中保持不變。
補充1.4 Empirical evaluation
我們用實驗來驗證我們的理論推導。我們組裝了一個有2048個隱藏單元的6層單輸入SIREN,並根據所提出的初始化方案對其進行初始化。我們在- 1到1的線性范圍內繪制28個輸入值,並繪制每個線性層wTx+b和每個正弦sine激活后的柱狀圖。進一步計算了一層中所有激活的一維快速傅里葉變換。最后,我們計算最后一層的激活和,並計算每個激活和的梯度.。結果如圖2所示。每個線性層后結果的分布和預測的高斯正態分布以及每個正弦sine非線性后結果的分布與預測的反正弦分布幾乎完全匹配。正如在正文中所討論的,頻譜的頻率成分同樣保持可比較的程度,最大頻率僅緩慢增長。我們對一個50層SIREN的初始化方案進行了實驗驗證,得到了相似的結果。最后,類似於激活的分布,我們繪制梯度的分布,並通過經驗證明,它在每層中幾乎保持完全恆定,證明SIREN在初始化不受梯度消失或爆炸的折磨。我們把梯度分布的正式研究留給以后的工作。
---------------------------------------
4 Experiments
在本節中,我們利用SIRENs使用Φ導數不同類型的監督解決具有挑戰性的邊值問題。我們首先通過對其導數的直接監督來求解泊松方程。然后,我們求解Eikonal方程的一個特殊形式,對梯度施加單位范數約束,參數化signed distance functions (SDFs)的類。SIREN的性能明顯優於基於ReLU的SDFs,它可以在高水平細節上捕捉到大場景。然后,我們解決二階Helmholtz偏微分方程,以及富有挑戰性的full-waveform inversio的逆問題。最后,我們將SIRENs與超網絡結合,學習參數化函數空間上的先驗。所有代碼和數據都將公開。
4.1 Solving the Poisson Equation
我們證明了所提出的表征不僅能夠准確地表示一個函數及其導數,而且還可以僅由其導數來監督,即模型從未給出實際的函數值,而只給出其一階或更高階導數的值。表示這類問題的一個直觀的例子是泊松方程。泊松方程可能是最簡單的橢圓偏微分方程(PDE),它在物理和工程中起着至關重要的作用,例如用於建模由電荷或質量分布引起的勢。在該問題中,一個未知的ground truth信號f從其如下面式子的梯度或
的離散樣本中估計得到:
Poisson image reconstruction. 解決該泊松方程就能夠使用其導數來重構圖像了。展示使用SIREN方法的結果,如圖3:
使用ground truth梯度,即,或Laplacians即
來監督隱表征,能夠成功重構圖像。剩余的強度變化是由於問題的不適應性( ill-posedness)
Poisson image editing. 圖像可以在梯度域無縫融合。為了實現該目標,Φ使用等式(5)中的來監督,其中
是兩個圖像f1,2的梯度的復合函數:
圖3展示了使用該方法的兩張圖像的無縫融合:
4.2 Representing Shapes with Signed Distance Functions
受最近使用 differentiable signed distance functions(SDFs)[1、4、9]的形狀表征工作的啟發,我們使用基於ReLU隱神經表征和SIRENs在oriented point clouds上直接擬合SDFs。這相當於解決一個特定的 Eikonal邊值問題,其約束空間梯度|∇xΦ| 的范數(norm)在所有地方都為1。請注意,ReLU網絡似乎是表示SDFs的理想方法,因為它們的梯度局部恆定,並且它們的二階導數為0。在之前的工作中描述了直接使用點雲的充分訓練程序[4,9]。我們將一個SIREN安裝到一個oriented point clouds上,使用如下的損失形式:
其中將用來懲罰創建SDF值接近0的表面外點。Ω表示整個域,Ω0表示zero-level的SDF集合。模型Φ(x)被從網格中采樣得到的oriented points監督,我們要求SIREN保證Φ(x) = 0及其法線n (x) =∇f (x)。在訓練期間,每個minibatch在網格中和網格外包含同等數量的點,每一個點從Ω隨機采樣得到。如圖4所示,所提出的周期激活顯著增加了這些神經SDFs可以表示的對象的細節和場景的復雜性,僅用一個五層的全連接神經網絡就將整個房間參數化。這與當前工作形成了對比,后者解決了傳統MLP架構在表示復雜或大型場景時的相同失敗問題,即通過局部解碼一個離散表示,如voxelgrid,將其轉化為幾何圖形的隱式神經表示[11-13]。
4.3 Solving the Helmholtz and Wave Equations
Helmholtz方程和wave方程是與擴散和波動物理建模有關的二階偏微分方程。它們通過傅里葉變換關系密切相關,給出的Helmholtz方程為:
在這里,f (x)代表一個已知的源函數,Φ(x)是未知的波場,和平方 slowness m(x) = 1 / c(x)2是一個波速c(x)的函數。一般來說,Helmholtz方程的解是complex-valued的,需要數值求解器來計算。由於Helmholtz方程和wave方程遵循類似的形式,我們在這里討論Helmholtz方程,並在附錄中對wave方程補充了額外的結果和討論。
Solving for the wavefield. 通過參數化帶有SIREN的Φ(x)來求解波場。為了適應complex-valued解決方案,我們將網絡配置為輸出兩個值,解釋為實部和虛部。對域中隨機采樣的點x進行訓練。使用基於Helmholtz方程
的損失函數來監督網絡,當
(對應於Helmholtz方程的非齊次contribution)時,
是一個超參數;否則
(對於齊次部分)。每個mini-batch包含來自contributions和k已經設置的樣本,所以在訓練開始時損失近似相等。在實踐中,我們使用方程(7)的一個稍微修改的形式來包含完美匹配的邊界條件,以確保唯一解[45](詳見補充)。
空間均勻波速和單點源(使用σ2 = 10−4的高斯分布構造)的二維Helmholtz方程的求解結果如圖5所示:
將SIREN算法與principled求解器[45]以及其他神經網絡算法進行了比較。所有評估的網絡架構都使用與SIREN相同數量的隱藏層,但激活功能不同。在RBF網絡的情況下,我們在RBF層前加上1024個隱藏單元,並使用tanh激活函數。SIREN是唯一能夠產生高保真重建波場的表示。我們還注意到,tanh網絡的架構與最近在神經PDE求解器[41]上的工作類似,只是我們增加了網絡的規模以匹配SIREN。
Neural full-waveform inversion (FWI). 在許多基於波的傳感方式(雷達、聲納、地震成像等)中,人們試圖使用稀疏放置的源(即發射器)和接收器探測和感知整個域。FWI利用已知的源和接收器位置,共同恢復整個波場和其他物理特性,如介電常數、密度或波速。具體來說,FWI問題可以描述為[47]:
當有N個源時,在接收位置采樣波場,ri(X)對第i個源的接收數據進行建模。
我們首先使用SIREN對已知的波速擾動直接求解等式(7),得到與principled求解器[45]近似的精確波場(圖5,右)。在沒有速度場先驗知識的情況下,FWI被用於共同恢復波場和速度。這里,我們使用5個信號源,在域周圍放置30個接收器,如圖5所示。使用principled求解器,我們模擬了5個波場(每個源一個)在單個頻率3.2 Hz下的接收機測量,選擇相對較低的頻率來提高收斂性。我們預先訓練SIREN為一個均勻速度輸出5個復雜的波場和一個平方slowness值。然后,我們使用等式(8)(詳見附錄)的懲罰方法變體[47]對波場和平方slowness進行優化。在圖5中,我們比較了基於乘數交替方向法的FWI求解器[46,48]。由於inversion僅有單一頻率,principled求解器容易收斂到速度差的解。如圖5所示,SIREN收斂於更好的速度解和更准確的波場解。所有重建都以256×256的分辨率進行或顯示,以避免在圓速度擾動中明顯的階梯偽影
4.4 Learning a Space of Implicit Functions
隱表示的一個強大概念是學習定義它們[1,2,10]的函數空間的先驗。在此我們證明了由SIRENs參數化的函數空間也允許學習強大的先驗。這些Φj中的每一個都完全由他們的參數定義。假設一個類的所有參數 θj 存在於
的一個k維子空間,那么該參數能夠被潛在編碼向量
很好地建模。像神經過程[ 50–52 ],我們通過encoder在信號
的部分觀察中決定這些潛在編碼向量:
並使用ReLU超網絡[53],去映射潛在編碼到SIREN的權重,如[10]:
我們使用設置的編碼器在CelebA數據集[49]上復制了來自[50]的實驗。此外,我們展示了使用操作在稀疏圖像的卷積神經網絡編碼器的結果。有趣的是,這提高了inpaint任務的定量和定性性能。
在測試時,這使得可以從稀疏的像素觀察進行重建,從而實現inpaint。圖6顯示了從不同數目的像素觀測得到的測試時重構:
注意,這些inpaint結果都是使用相同的模型生成的,具有相同的參數值。表1報告了與[50]的定量比較,證明了對SIREN表示的泛化至少與對圖像的泛化一樣強大。
5 Discussion and Conclusion
如何表示信號是科學和工程領域許多問題的核心。相對於傳統的連續和離散表征而言,隱神經表征提供了許多潛在的好處,從而為其中許多方面提供了一個新的工具。我們證明了使用隱式神經表征的周期激活函數是理想的適合代表復雜的自然信號及其導數的函數。我們還以幾個邊值問題為原型,我們的框架能夠健壯地解決這些問題。對於未來的工作,有幾個令人興奮的途徑,包括探索其他類型的逆問題和在隱式神經表征之外領域的應用,例如神經ODEs[43]。
通過這項工作,我們對隱神經表征學習及其應用這一新興領域做出了重要貢獻