【ECCV 2022】《Transformers as Meta-learners for Implicit Neural Representations》

文章目录

  • 一、动机
  • 二、相关工作
  • 三、方法
  • 四、实验部分
  • 五、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,并且我们观察到在图像回归和视图合成任务中,它可以优于之前的基于梯度的元学习算法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/205546.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开源运维监控系统-Nightingale(夜莺)应用实践(未完)

一、前言 某业务系统因OS改造,原先的Zabbix监控系统推倒后未重建,本来计划用外部企业内其他监控系统接入,后又通知需要自建才能对接,考虑之前zabbix的一些不便,本次计划采用一个类Prometheus的监控系统,镜调研后发现Nightingale兼容Prometheus,又有一些其他功能增强,又…

TZOJ 1389 人见人爱A^B

答案&#xff1a; #include <stdio.h> int pow(int a, int b) //定义一个a的b次方函数 {int m 1;int i 0;for (i 0; i < b; i) //b次方{m (m * a) % 1000; // %1000用来控制最后输出为后三位&#xff0c;同时每次乘法结果取模&#xff0c;避免溢出 }retu…

Mybatis批处理数据插入(rewriteBatchedStatements参数)

一、rewriteBatchedStatements参数 1、MySQL JDBC驱动在默认情况下会无视executeBatch()【也就是说JDBC默认情况下&#xff0c;会将你的语句分拆成单个&#xff0c;一条一条发给数据库执行&#xff0c;数据量小时感知不大&#xff0c;1w或10w以上差距越来越大】 2、MySQL的JDBC…

基于Linux下搭建NextCloud构建自己的私有网盘

NextCloud是什么 Nextcloud是一款开源免费的私有云存储网盘项目&#xff0c;可以让你快速便捷地搭建一套属于自己或团队的云同步网盘&#xff0c;从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客户端覆盖了Windows、Mac、Android、iOS、Linux 等各种平…

tex2D使用学习

1. 背景&#xff1a; 项目中使用到了纹理进行插值的加速&#xff0c;因此记录一些自己在学习tex2D的一些过程 2. 代码&#xff1a; #include "cuda_runtime.h" #include "device_launch_parameters.h" #include <assert.h> #include <stdio.h>…

【23真题】复录比高达2.24,但题目很棒!

今天分享的是23年广东工业837的信号与系统试题及解析。注意官方不公示真题&#xff0c;所以这套试卷为回忆版本。 本套试卷难度分析&#xff1a;22年广东工业837考研真题&#xff0c;我也发布过&#xff0c;若有需要&#xff0c;戳这里自取&#xff01;平均分107.93&#xff…

腾讯云手动下发指令到设备-用于设备调试

打开腾讯云API Explorer&#xff0c;Publish Msg https://console.cloud.tencent.com/api/explorer?Productiotcloud&Version2021-04-08&ActionPublishMessagehttps://console.cloud.tencent.com/api/explorer?Productiotcloud&Version2021-04-08&ActionPub…

RocketMQ源码剖析之createUniqID方法

目录 版本信息&#xff1a; 写在前面&#xff1a; 源码剖析&#xff1a; 总计&#xff1a; 版本信息&#xff1a; RocketMQ-5.1.3 源码地址&#xff1a;https://github.com/apache/rocketmq 写在前面&#xff1a; 首先&#xff0c;笔者先吐槽一下RocketMQ的官方&#xff0…

【DDD】领域驱动设计总结——如何构造领域模型

文章目录 一 分离领域二 领域对象分类2.1 实体(ENTITY)2.2 值对象(VALUE OBJECT)2.3 服务(SERVICE)2.4 模块&#xff08;&#xff2d;ODULE&#xff09; 三 管理领域对象的生命周期3.1 聚合&#xff08;AGGREGATE&#xff09;3.2 工厂&#xff08;FACTORY&#xff09;3.3 存储库…

UE5富文本框学习(用途:A(名字)用刀(图片)击杀B(名字))

UE5-UMG教程-通用控件&#xff1a;多格式文本块&#xff08;RichTextBlock&#xff09;_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Pu4y1k7Z2/?p54&spm_id_frompageDriver 结果示例&#xff1a; 1.添加富文本框 2.添加文字样式库 点添加&#xff0c;更改每行行…

PostGIS学习教程八:空间关系

PostGIS学习教程八&#xff1a;空间关系 到目前为止&#xff0c;我们只使用了测量&#xff08;ST_Area、ST_Length&#xff09;、序列化&#xff08;ST_GeomFromText&#xff09;或者反序列化&#xff08;ST_AsGML&#xff09;几何图形&#xff08;geometry&#xff09;的空间…

【OJ比赛日历】快周末了,不来一场比赛吗? #12.02-12.08 #15场

CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号会推送最新的比赛消息&#xff0c;欢迎关注&#xff01; 以下信息仅供参考&#xff0c;以比赛官网为准 目录 2023-12-02&#xff08;周六&#xff09; #4场比赛2023-12-03…

五种多目标优化算法(MSSA、MOAHA、MOPSO、NSGA3、NSGA2)求解微电网多目标优化调度(MATLAB)

一、多目标优化算法简介 &#xff08;1&#xff09;多目标鳟海鞘算法MSSA 多目标优化算法&#xff1a;多目标鳟海鞘算法&#xff08;Multi-objective Salp Swarm Algorithm &#xff0c;MSSA&#xff09;-CSDN博客 参考文献&#xff1a; S. Mirjalili, A.H. Gandomi, S.Z. M…

C语言--每日选择题--Day31

第一题 1. 下面程序 i 的值为&#xff08;&#xff09; int main() {int i 10;int j 0;if (j 0)i; elsei--; return 0; } A&#xff1a;11 B&#xff1a;9 答案及解析 B if语句中的条件判断为赋值语句的时候&#xff0c;因为赋值语句的返回值是右操作数&#xff1b; …

系统设计面试指南之分布式任务调度

1 简介 任务是需要资源(CPU 时间、内存、存储、网络带宽等)在指定时间内完成的一段计算工作。 通过智能地将资源分配给任务以满足任务级和系统级目标的系统称为任务调度程序。 任务调度程序&#xff1a; 及时决定和分配资源给任务的过程称为任务调度。 当我们在 Facebook 发…

13-Vue基础之自定义指令与插槽的使用

个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大二在校生 &#x1f921; 个人主页&#xff1a;坠入暮云间x &#x1f43c;座右铭&#xff1a;懒惰受到的惩罚不仅仅是自己的失败&#xff0c;还有别人的成功。 &#x1f385;**学习目标: 坚持每一次的学习打卡 文章…

【驱动】串口驱动分析(二)-tty core

前言 tty这个名称源于电传打字节的简称&#xff0c;在linux表示各种终端&#xff0c;终端通常都跟硬件相对应。比如对应于输入设备键盘鼠标&#xff0c;输出设备显示器的控制终端和串口终端。也有对应于不存在设备的pty驱动。在如此众多的终端模型之中&#xff0c;linux是怎么…

jmeter做接口自动化测试,你可能只是个新手!

jmeter 这个工具既可以做接口的功能测试&#xff0c;也可以做自动化测试&#xff0c;还可以做性能测试&#xff0c;其主要用途就是用于性能测试。但是&#xff0c;有些公司和个人&#xff0c;就想用 jmeter 来做接口自动化测试。 你有没有想过呢&#xff1f; 下面我就给大家讲…

WPF应用开发之附件管理

在我们之前的开发框架中&#xff0c;往往都是为了方便&#xff0c;对附件的管理都会进行一些简单的封装&#xff0c;目的是为了方便快速的使用&#xff0c;并达到统一界面的效果&#xff0c;本篇随笔介绍我们基于SqlSugar开发框架的WPF应用端&#xff0c;对于附件展示和控件的一…

软考:2024年软考高级:软件工程

软考&#xff1a;2024年软考高级: 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是需要细心准备的 &#xff08;1…