本文主要是介绍论文阅读:(arxiv 2022)COORDX: ACCELERATING IMPLICIT NEURAL REPRESENTATION WITH A SPLIT MLP ARCHITECTURE,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
COORDX: ACCELERATING IMPLICIT NEURAL REPRESENTATION WITH A SPLIT MLP ARCHITECTURE (arxiv 2022)
Paper:https://arxiv.org/abs/2201.12425
Code:https://github.com/nexuslrf/CoordX
2022/7/21:今天中午学校终于解封了,晚上想吃螺蛳粉或者大份的黄焖鸡,我真的好饿好饿好饿,也不想吃食堂食堂食堂。
本文主要讲的就是通过输入坐标分解和共享参数进行推理加速,并且作者使用了一些小trick加速训练和增强重构能力
Abstract
利用多层感知器(MLPs)的隐式神经表征最近在各种各样的任务中获得了突出的地位,如新颖的视图合成和3D对象表示和渲染。然而,这些表示的一个重大挑战是,MLP在大量的输入坐标上训练和推断,以学习和表示图像、视频或3D对象,需要大量的计算和花费很长的处理时间。在这项工作中,我们的目标是通过提出一种新的分割MLP架构CoordX来加速基于坐标的MLP的隐含神经表示的推理和训练。在CoordX中,初始层被分割,分别学习输入坐标的每个维度。最后一层融合中间特征,在相应的坐标点生成学习到的信号。这大大减少了所需的计算量,并导致在训练和推断中大大加快,同时达到了与基线MLP相似的精度。因此,该方法旨在首先学习原始信号的分解函数,然后融合它们来生成学习到的信号。我们提出的架构通常可以用于许多隐式神经表示任务,而不需要额外的内存开销。在图像、视频和3D形状表示和渲染任务中,与基线模型相比,我们展示了高达2.92倍的加速。
1. Introduction
研究意义:使用隐式神经表示代替传统的离散表示有几个好处。首先,它的内存效率可能更高。与被表示对象的粒度受网格分辨率限制的离散表示不同,隐式神经表示的粒度可以通过选择不同的输入坐标分辨率来自由调整,同时不超过学习后的MLP的表示能力。第二,完全可微分学习过程允许MLP从稀疏可用的数据点学习复杂信号,以重建高质量的图像或物体。寻求更精确、更一般化的隐式神经网络结构和方法是一个活跃的研究领域。
问题:隐式神经表示的一个关键挑战是推理和训练的大量计算需求。
现有方法的问题:然而,这些方法有几个缺点。首先,所提到的一些方法只适用于特定的任务,例如,新视角合成(Neff等人,2021年)。其次,用于显式保存表示以避免计算的额外数据结构可能会导致较高的内存开销,例如Garbin等人(2021)。第三,这些方法的有效性受限于所学习信号的稀疏性,它们可能对高度密集和特征丰富的图像/物体不太有效。
本文切入点:然而,这忽略了图像中具有相似坐标值的点之间的隐式局部,例如,沿着同一轴的相邻点。
我们的方法的主要好处是:首先,它通过本质上减少输入的维度,使训练和推断的速度显著加快。其次,这种技术可以正交地应用于以前提出的优化技术,利用稀疏性,而不会产生太多额外的内存开销。第三,正如我们在本工作中演示的那样,基于维度的拆分方法可以应用于使用基于坐标的mlp的广泛任务。
开发分离架构的关键挑战是:(i)确保即使在使用单独的层处理输入的每个维度时,模型的总体大小也不会增加;(ii)有效融合分离层的特征以保持原始模型的精度。在这项工作中,我们通过(i)只拆分第一个FC层,然后在所有输入分支上共享剩余的FC层来应对这些挑战;和(ii)使用外部积操作融合分离分支的特征。
- 我们为基于坐标的mlp开发了一种新的架构,该架构利用输入坐标点之间的局部性来减少所需的计算量,并显著加快推理和训练的速度。
- 我们设计的分割MLP架构实现了更快的训练和推断,并保持与具有可比或略大参数计数的基线模型相同的精度水平。
- 我们展示了CoordX在加速各种信号拟合任务的推理和训练方面的有效性,包括图像、视频和3D形状渲染,以及其他高级应用,如图像超分辨率。
2. Method
本文的切入点和创新点如图所示,经典Coordinate MLP需要查询所有输入点才能得到输出结果,这样会占用大量的内存和计算,将其按照维度切分为两个维度(对于图像)则如图1(b)(c)所示。所提出方法的网络结构如图1(e)所示。
对于经典coordMLP,对于一个H*W的图像而言,有N=HW个输入坐标点需要进行独立查询,则坐标点的集合可以表示为 X ∈ R N × K \bf{X} \in \R^{N \times K} X∈RN×K,其中K表示每个点的维度(例如对于坐标为(x,y)的图像平面,K=2)。对于CoordX而言,MLP的第一层并不是查询N个K维度的坐标点,我们将MLP的第一层划分为C个分支, C ≤ K C \leq K C≤K。当K = C时,K- d输入坐标的每一维i分别馈给对应的Ci输入支路,如图1(e)所示。如果C < K,在这种情况下,1个或多个坐标维度不被分割并保留其原始形式。例如,视频中的坐标点(x;y;t) (K = 3)可沿2维(C = 2)分解:支路1由沿X、Y维的二维坐标点馈送为(X;Y),分支2由时间维度(t)提供。
因此输入网格 X ∈ R N × K \bf{X} \in \R^{N \times K} X∈RN×K转换为一组分解后的输入网格 { X ( i ) ∈ R B i × K i ∣ i = 1 , 2 , . . . , C } \{\bf{X}^{(i)} \in \R^{B_i \times K_i}| i=1,2,...,C\} {X(i)∈RBi×Ki∣i=1,2,...,C},i表示输入分支, B i B_i Bi是输入分支i的坐标点的数量, K i K_i Ki是输入到分支i的各个分解坐标点的维数。因此,(这一步还是很容易得到的)
这一部分是关于运行速度上的分析,写的也比较简洁直白,稍微推导即可得。
该部分考虑了对输出二维矩阵直接进行SVD或者QR分解,将输出图像表示为两个分支矩阵的外积,因此可以将CoordX分为完全分离的CoordX和部分分离的CoordX。后续实验结果证明完全分离的实验效果较差,这一点是比较容易得到的,因为观察图2(b)中分离矩阵表示即可得出,分离矩阵中频率变化大并且含有很多高频信息,隐式神经表示的一个缺陷即难以表示高频分量,两个高频分量拟合本来就差,外积得到的结果只会更差。 本人在使用FFT的INR表示实验中也碰到此类问题
3. Experimental Evaluation
推理速度上比MLP确实是要快上很多,但是训练方面的结果是要明显差于SIREN和PE的,一个掉了3dB一个掉了4dB。这里A表示运用了训练加速策略,在附录中有详细说明。
不同的维度分离方式会有不同的结果,对于视频而言分为XY+T要优于X+Y+T。不过同样采用分离的方式还是会带来性能的下降,接近2dB,这是不可容忍的。
4. Conclusion and Future Work
在这项工作中,我们提出了CoordX,一种新的架构,加速了基于坐标的隐含神经表示的MLPs的推理和训练。CoordX沿着每个输入维度分解输入位置(时间)坐标,并将基础MLP分成多个分支MLP。分解后的输入分别输入到每个分支,导致推理和训练的显著加速,同时保持类似于较慢的基线模型的表示精度。我们还演示了一些方法来增加拆分坐标MLP的表示能力,引领新的设计空间权衡速度,质量和大小。
除了所评估的任务,CoordX还有更广泛的适用性。例如,本工作中引入的分割策略也可以用于加速动态场景的视图合成(Peng等人,2021;Li等人,2021年)和可变形场景(Park等人,2020年;2021)。CoordX还可以帮助基于神经隐式表示的压缩(Dupont et al., 2021)实现更高的压缩/解压速度。最后,本工作中提出的拆分MLPs可能用于多维信号分解或多元函数分解,这可能对其他任务如多关系数据建模有用(Rabanser等人,2017)。我们把这些探索留给未来的工作。
这篇关于论文阅读:(arxiv 2022)COORDX: ACCELERATING IMPLICIT NEURAL REPRESENTATION WITH A SPLIT MLP ARCHITECTURE的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!