锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

Implicit Neural Representations with Periodic Activation Functions

时间:2022-09-17 12:30:01 kk系列连接器

NeurIPS-2020-implicit-neural-representations-with-periodic-activation-functions-Paper

1 摘要

\quad 神经网络参数化隐式定义、连续、微信号表示已经成为一个强大的例子,提供了许多比传统表示更有可能的好处。然而,目前用于这种隐式神经表示的网络结构信号不能精细建模,它们也空间和时间导数无法准确建模,空间和时间导数是微分方程隐含定义的信号所必需的。我们建议隐式神经表示周期激活函数,证明这些被称为正弦表示网络或SIREN该网络非常适合表示复杂的自然信号及其衍生信号。
\quad 我们分析了SIREN的激活统计学,提出了一个原则性的初始化方案,并演示了图像、波场、视频、声音、三维形状及其衍生表示。此外,我们还展示了如何使用它SIREN解决具有挑战性的边值问题,如特定的边值问题Eikonal泊松方程(产生符号距离函数)Helmholtz方程和波动方程。SIREN结合超网络学习警报函数空间的先验。所有应用程序的建议方法和视频概述请参考项目网站。

\quad 隐式函数表示的起源。泛函C的输入是空间坐标或时空坐标x,Φ由神经网络参数化,x映射成其他量,同时满足(1)的约束。
\quad 因此,Φ由C建立的关系隐式定义,我们指的是神经网络-可以参数化的隐式定义函数,称为隐式神经表示

个人理解,函数 Φ ( x ) \Phi\left(x\right) Φ(x) x x x不能用显式表示成 y = k x y=kx y=kx但可以通过函数函数(泛函)的形式写成显式关系,如公式(1)。

\quad 这种方法可以用于大量的科学问题。正如我们在本文中所示,跨科学领域的各种问题都属于这种形式,如使用连续可微表示法许多不同类型的离散信号建模在图像、视频和音频处理中,通过符号距离函数[1-4]学习三维形状表示,并更一般地解决边值问题,如泊松方程、海姆霍兹方程或波动方程。
隐式函数表示方法
\quad 与其他方法相比,连续参数化提供了一些好处,如基于离散网格的表示,例如,因为Φ定义为x的连续域的,因此它可以比离散表示更有效地提高内存效率,使其能够建模不受网格分辨率限制细节受底层网络架构容量限制。作为一个例子,我们展示了它SIRE架构如何通过仅使用几百KB的网络来表示复杂的3D形状,而相同数据集的原始网格表示需要数百MB。
\quad 可微意味着可以通过分析计算梯度和高阶导数,例如使用自动微分,这再次使这些模型独立于传统的网格分辨率。最后,通过表现良好的导数,隐式神经表示可以为求解微分方程等逆问题提供新的工具箱
\quad 由于这些原因,隐式神经表征在过去一年中引起了极大的研究兴趣(第2节)。这些最新的表示大多建立在基于ReLU的多层感知器(MLP)上。虽然这些架构很有前途,但它们缺乏在底层信号中表示精细细节的能力,并且通常不能很好地表示目标信号的导数。这在一定程度上是由于ReLU网络是分段线性的,其二阶导数处处为零,因此无法对自然信号的高阶导数中包含的信息进行建模。虽然替代激活,如tanh或softplus,能够表示高阶导数,但我们证明,它们的导数通常表现不好,也无法表示精细细节。
\quad 为了解决这些局限性,我们利用具有周期激活函数的MLP进行隐式神经表示。我们证明,这种方法不仅能够比ReLU MLP或并行工作[5]中提出的位置编码策略更好地表示信号中的细节,而且这些属性也唯一适用于导数,这对于我们在本文中探索的许多应用至关重要。
\quad 总之,我们的工作贡献包括:
\quad •使用周期激活函数的连续隐式神经表示法,该函数稳健地拟合复杂信号,如自然图像和3D形状及其导数。
\quad •用于训练这些表示的初始化方案,并验证可以使用超网络学习这些表示的分布。
\quad •演示图像、视频和音频表示中的应用;三维形状重建;求解一阶微分方程以从其梯度估计信号;求解二阶微分方程。

2 相关工作

\quad 隐式神经表示。最近的工作已经证明了全连接网络作为形状零件[6、7]、对象[1、4、8、9]或场景[10-12]的连续、高效记忆隐式表示的潜力。这些表示通常从某种形式的3D数据中训练为有符号距离函数[1、4、8-12]或占用网络[2、13]。除了表示形状外,其中一些模型还被扩展到编码对象外观[3、5、10、14、15],可以使用神经渲染的(多视图)2D图像数据对其进行训练[16]。还提出了时间感知扩展[17]和添加部件级语义分割的变体[18]。

\quad 周期非线性。在过去几十年中,人们反复研究了周期非线性,但到目前为止,它们的性能没有明显优于替代激活函数。早期的工作包括傅立叶神经网络,通过单隐层网络模拟傅立叶变换[19,20]。其他工作探索了简单分类任务的周期激活神经网络[21-23]、方程学习[24]和递归神经网络[25-29]。对于此类模型,已经研究了训练动力学[30],并且已经证明它们具有普适函数近似特性[31-33]。合成模式生成网络[34,35]也利用周期非线性,但通过遗传算法框架中的进化依赖于不同非线性的组合。受离散余弦变换的启发,Klocek等人[36]利用余弦激活函数进行图像表示,但他们没有研究这些表示的导数或我们工作中探索的其他应用。我们探讨了具有周期激活函数的MLP在涉及隐式神经表示及其导数的应用中的应用,并提出了原则性的初始化和泛化方案。
\quad 神经微分方程求解器。长期以来,人们一直在求解微分方程(DEs)[37]的背景下对神经网络进行研究,并且之前已将其作为该任务的隐式表示引入[38]。关于这一主题的早期工作涉及简单的神经网络模型,包括具有少量隐藏层的MLP或径向基函数网络和双曲正切或S形非线性[38-41]。这些浅层网络的容量有限,通常将结果限制为一维解或简单的二维曲面。这些技术的现代方法利用了最新的优化框架和自动差分,但使用了基于MLP的类似架构。然而,求解更复杂的方程,具有更高的维数、更多的约束或更复杂的几何结构是可行的[42-45]。然而,我们表明,常用的具有平滑、非周期激活函数的MLP即使在密集监督下也无法准确建模高频信息高阶导数
\quad 神经微分方程[46]与此主题相关,但本质上非常不同。虽然隐式神经表示可用于直接求解常微分方程或偏微分方程,以监督系统动力学,但神经常微分方程允许通过将传统常微分方程求解器(例如隐式Adams或Runge-Kutta)与参数化函数动力学的网络配对来进行连续函数建模。所提出的架构可能是对这一工作线的补充。

3 公式


\quad 为了解决式(1)定义的隐式函数问题,我们认为这是一个可行性问题,函数Φ要满足一系列的约束C,每一个约束都与Φ或其导数有关,

\quad 这个问题可以用loss来解决,惩罚每个约束在其域Ωm内的偏离。

\quad 其中,指示函数 1 Ω m ( x ) 1_{\Omega_{m}}\left(x\right) 1Ωm(x),当 x ∈ Ω m x\in\Omega_{m} xΩm时,值为1,反之为0。实际上,损失函数是通过采样Ω来实现的。

\quad 数据集 D = { ( x i , a i ( x ) ) } i D=\left\{\left(x_i,a_i\left(x\right)\right)\right\}_i D={ (xi,ai(x))}i是一系列坐标 x i ∈ Ω x_i\in\Omega xiΩ的元组以及出现在约束中的 a i ( x ) a_i\left(x\right) ai(x)中的样本。因此,式(3)是强制为从数据集D中采样的坐标 x i x_i xi,通过

\quad 实际上,数据集D在训练过程中是动态采样的,当样本数增长时能够更好地逼近L,作为蒙特卡洛积分。这一部分暂时不懂

3.1 隐式神经表示的周期激活函数

\quad 我们提出了SIREN,一种用于隐式神经表示的简单神经网络架构,使用正弦作为周期激活函数:

\quad 这里, ϕ i : R M i ↦ R N i \phi_i:\mathbb{R}^{M_i}\mapsto\mathbb{R}^{N_i} ϕi:RMiRNi是第i层神经网络。包含了由权重矩阵 W i ∈ R N i × M i \bold{W}_i\in\mathbb{R}^{N_i\times M_i} WiRNi×Mi和偏置 b i ∈ R N i \bold{b}_i\in\mathbb{R}^{N_i} biRNi以及输入 x i ∈ R M i \bold{x}_i\in\mathbb{R}^{M_i} xiRMi定义的仿射变换,在仿射变换后,再施加正弦这种非线性操作。
\quad 有趣的是,对于一个SIREN的任何微分都是它自己的一个分量,由于sin函数的微分是cos(看做移相后的sin)。因此,SIREN的微分本质上是SIRENs的属性,使得我们可以推导SIREN的任何微分,以此来表示复杂的信号。在我们的实验中,我们证明了当使用包含 Φ \Phi Φ导数的约束 C m C_m Cm监督SIREN时,神经网络 Φ θ \Phi_\theta Φθ实现的函数仍然表现良好,这对于解决许多问题至关重要,包括边界值问题(BVP)。与双曲正切或ReLU等传统非线性不同,正弦是周期性的,因此是非局部的。直观地说,这为SIREN提供了一定程度的平移不变性,因为它可以学习将相同的功能应用于不同的输入坐标
\quad 我们将展示SIRENs可以通过对激活分布的一些控制来初始化,从而允许我们创建深层架构。此外,SURENs的收敛速度明显快于基线架构,例如,在几百次迭代中拟合单个图像,在现代GPU上需要几秒钟,同时具有更高的图像保真度(图1)。

图1:适合图像隐式表示的不同神经网络架构的比较(地面实况:左上角)。该表示仅在目标图像上进行监督,但我们还分别在第2行和第3行显示了函数拟合的一阶和二阶导数。
\quad 一个例子:拟合图像。考虑这样的情况,找到一个函数 Φ : R 2 ↦ R 3 \Phi:\mathbb{R}^2\mapsto\mathbb{R}^3 ΦR2R3把给定的离散图像 f f f参数化为连续的形式。图像定义了一个数据集 D = { ( x i , f ( x i ) ) } i D=\left\{\left(\bold{x}_i,f\left(\bold{x}_i\right)\right)\right\}_i D={ (xi,f(xi))}i包含像素坐标 x i = ( x i , y i ) \bold{x}_i=\left(x_i,y_i\right) xi=(xi,yi)以及像素的RGB信息 f ( x i ) f(\bold{x}_i) f(xi)。约束 C C C Φ \Phi Φ必须直接在像素点输出图像颜色。 C C C仅仅依赖于 Φ \Phi Φ本身(不包括微分)以及 f ( x i ) f(\bold{x}_i) f(xi),形式如下: C ( f ( x i ) , Φ ( x i ) ) = Φ ( x i ) − f ( x i ) C\left(f(\bold{x}_i),\Phi\left(\bold{x}_i\right)\right)=\Phi\left(\bold{x}_i\right)-f(\bold{x}_i) C(f(xi),Φ(xi))=Φ(xi)f(xi),转换成损失函数的形式就是 L ‾ = ∑ i ∣ ∣ Φ ( x i ) − f ( x i ) ∣ ∣ \mathcal{\overline{L}}=\sum_i||\Phi\left(\bold{x}_i\right)-f(\bold{x}_i)|| L=iΦ(xi)f(xi)

损失函数 C=0就是约束,就是隐式关系,而Loss就是下降为0,因此两者等价。

\quad 在图1中,我们用神经网络(用不同的激活函数)拟合 Φ θ \Phi_\theta Φθ。我们仅仅通过图像值来监督这个实验,并且把梯度 ∇ Φ \nabla\Phi Φ和拉普拉斯算子 Δ Φ \Delta\Phi ΔΦ可视化,只有两种方法表现得还可以,带有位置编码(P.E.)的ReLU网络和我们的SIREN,精确地表示了原图 f ( x ) f\left(\bold{x}\right) f(x),SIREN是唯一能够完全表示图像(信号)的微分的。此外,我们运行了一个劲简单的实验,我们拟合了一个300帧的视频,用512*512像素分辨率以及ReLU和SIREN MLPs。如图2所示,我们的方法成功表示了图像,平均峰值信噪比接近30 dB,比ReLU高了5dB。我们在补充材料中展示了音频信息的处理。

3.2 激活、频率和原则性初始化方案的分布

\quad 我们提出了一种有效训练SIREN所需的原则性初始化方案。在这里非正式介绍的同时,我们在补充材料中讨论了进一步的细节、证明和实证验证。我们的初始化方案的关键思想是保持激活在网络中的分布,以便初始化时的最终输出不依赖于层的数量。注意,在没有仔细选择权重的情况下构建SIREN在准确性和收敛速度方面都表现不佳。

相关文章