文章目录
- 一、动机
- 二、相关工作
- 三、方法
- 四、实验部分
- 五、Does the INR Exploit Data Structures?
- 六、结论
一、动机
\quad 与像素、体素和网格等离散数据表示相比,INRs不需要依赖于分辨率的二次或三次存储。它们的表示能力并不依赖于网格分辨率,而是依赖于神经网络的能力,神经网络可以捕获底层数据结构并减少表示的冗余,因此提供了一个紧凑(compact)而强大的连续(continuous)数据表示。
\quad 但是,INRs有以下几个挑战:1)如果每个INR都是独立地从随机初始化开始学习,那么优化可能会很慢;2)如果给定的观测值是稀疏的,并且没有强先验,学习到的INR不能很好地推广到不可见的坐标。
\quad 从高效构建INRs的角度出发,《Implicit neural representations with periodic activation functions》提出学习一个latent space,其中每一个INR可以被一个超网络的single vector解耦。可是,a single vector可能没有足够的能力捕捉复杂3D目标的细节。在重建时,single-vector modulated INRs最常用于表征局部,《Modulated periodic activations for generalizable local functional representations》。
\quad 这篇工作启发于《MetaSDF》、《Learned init》,他们使用meta-learning来学习INRs。这些工作无需基于网格的表征,在没有single-vector bottleneck的情况下,可以高效、精确地推断INR weight。但是the computation of higher-order derivatives和a learned fixed initialization使它们不够灵活。
\quad 因此,这篇文章提出使用Transformer作为INRs的hypernetwork。主要贡献如下:
- 提出一个Transformer hypernetwork来推断INR的整体权重。
- 对生成的INR结构进行了分析。
二、相关工作
\quad Hypernetworks for INRs. 根据给定的观测结果直接建立一个INR通常需要执行梯度下降步骤,这是低效的,并且不能很好地推广到稀疏观测结果中(这句话描述的是传统的INR)。解决这个缺点的一个常用方式是,为INRs学习一个latent space,其中,每个INR对应于一个可以被超网络解码的latent vector,这一类的工作有《Occupancy networks》、《DeepSDF》、《Implicit neural representations with periodic activation functions》、《Scene representation networks》。这样的方法的缺点是,一个single vector的表征能力是有限的,无法表征细节。为了解决这个问题,最近的许多工作通过重新访问离散表示,以混合方式定义表征来解决这个问题,但这样仍然对应于基于网格的表示,会受分辨率的限制。
\quad Meta-learning. 尽管MetaSDF和Learned Init已经展现出有希望的结果,但是他们只学习了一个fixed initialization,并且需要test-time optimization。这篇文章展示了用一个Transformer meta-learner来直接构建完整的INR是可行的,并且它比一个fixed initialization更灵活。
三、方法
\quad
在元学习中,目标是训练一个meta-learner从给定的观察结果中推断出目标网络f_θ的权值θ。一个典型的方法是MAML,初始化θ_0是一个可学习的组件,经过n个步骤对θ_0的更新,推断出 θ=θ_n。
\quad
O是观测值(训练时输入)。上面的更新公式定义了一个从θ0到θn的计算图,如果计算图(具有高阶导数)是可微的,则可以将优化θn的梯度反向传播到θ0来训练这个元学习者。
\quad
这篇文章考虑一个更一般的元学习者类,其中它的可学习组件包含:1)A learnable initialization θ_0;2)A total number of update steps n;3)A step-specifific learnable update rule U。
\quad
对于这种formulation的meta-learner,作者发现可以自然地用一个Transformer架构来代替。如下所示,1)用一组可学习的tokens来代替θ_0;2)用L层Transformer来代替n个更新步骤;3)用带残差链接的Transformer来代替更新规则U。
\quad
本文方法的完整结构如下。除了data tokens外,初始化一些 Init. tokens用于学习 weight tokens。每个weight token其实就是一个列向量,每个weight token用一个单独的FC来转换为INR的weight。
\quad
但是,当θ的大小很大时,为权重矩阵中的每个列向量分配tokens可能效率很低。为了提高变压器元学习器的效率和可扩展性,作者提出了一种权重分组策略,它为精度和成本的权衡提供了控制
\quad
这个策略的核心想法是将一个权重矩阵中的列划分为一个个组,然后将每个权重token对应一个组。每个组其实是2个列。就是用一个列向量权重,生成INR权重的两列。此时,为了保证同一组的两列权重不同,这里又设置了一个可学习参数,用这个scale vector,使得由2生成的两个向量不相同。过程如下所示。
\quad
最后,为了防止最后的结果差异不太离谱,对每层权重使用L2归一化。
四、实验部分
\quad 在执行NVS任务时,本文的meta-learner的目标是,从给定的输入视图中有效地推断出INR,使得再给出几个输入视图时可以实现NVS。(不像《learn init》那样有meta-learning的过程)
\quad 像《learn init》那样使用ShapeNet数据集中的chairs、cars、lamps类别。对于每个类别,目标被划分为训练集和测试集。每个目标有25个views用于训练。在测试时,采样一个随机的输入视图来评估性能。(single view 重建任务)
\quad 将每一个input image输入时,首先对他们进行一个扩展。具体地做法是,将每一个像素点所在emitted ray的3D starting point,3D direction vector和RGB values拼接起来,构造一个9channels的 extended image。然后将这个extended image按照正常image的方式输入至ViT。
\quad 自适应采样来提高训练的稳定性。为了提高训练的稳定性,在第一次epoch时(一般保持稳定的话,保持第一次epoch训练的方向即可,目的就是有一个良好的初始化),作者提出了一个自适应采样的策略。其实这个技巧很简单,其实就是在第一次epoch中,当我们对像素位置进行采样以计算重建损失时,确保其中一半是从图像的前景中采样的。实现起来也很简单,因为ShapeNet的图像中背景是白色的,所以作者只需要挑选非白色像素即可。作者发现有了这个简单的采样策略后,训练变得更稳定了。
\quad
与《learn init》的对比如下,上面3个是《learn init》论文中的baseline。除了这篇论文的方法,其他方法还执行了test-time optimization,但尽管如此,本文方法的效果还是更好。
\quad
有了test-time optimization后(100 gradient steps),该篇文章的方法的性能,能够继续提升。定量和定性的结果如下所示。从中可以看出,即使没有测试时优化,Transformer meta-learner也可以从稀疏输入中构造一个不错的INR。
五、Does the INR Exploit Data Structures?
\quad INR的一个关键的潜在优势是,它们的表示能力并不依赖于网格分辨率,而是依赖于神经网络的容量,这使得它能够利用数据中的底层结构并减少表示冗余。为了探究该结构是否在INR中建模,作者将weight tokens的最后一层注意权重可视化到data tokens上。
\quad
作者将INR的不同layers的权重可视化如下。在可视化时,被关注的区域,才会显示input image。
\quad 从上图可以发现,INR的不同层关注着数据结构的不同部分。比如,第一层关注着鼻子和嘴巴,第二层关注着额头,第三层关注了整张脸。这样的观察表明,INR可能捕获数据结构。这与基于网格的离散表示不同,其中每个entry独立地代表一个像素,数据结构没有得到很好的利用。
六、结论
\quad 尽管以往的用于INRs的超网络工作大多是基于单矢量调制和高精度重建为一个全局INR函数,它们大多是通过基于梯度的元学习来实现的。这篇文章提出的Transformer hypernetwork可以在没有任何梯度步骤的情况下有效地向前构建一个INR,并且我们观察到在图像回归和视图合成任务中,它可以优于之前的基于梯度的元学习算法。