Implicit Neural Representations with Periodic Activation Functions(siren) - 1 - 论文学习
代码: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]。
通过这项工作,我们对隐神经表征学习及其应用这一新兴领域做出了重要贡献