系列论文研读目录
例如:第一章 Python 机器学习入门之pandas的使用
摘要
学习复杂场景的以对象为中心的表示是实现从低级感知特征进行高效抽象推理的一个有前途的步骤。然而,大多数深度学习方法学习的分布式表示并不能捕捉自然场景的组成属性。在本文中,我们提出了时隙注意模块,它是一个与感知表示(如卷积神经网络的输出)接口的架构组件,并产生一组与任务相关的抽象表示,我们称之为时隙、槽、插槽。这些槽是可交换的,并且可以通过在多轮注意力的竞争过程中进行专门化来绑定到输入中的任何对象。实验结果表明,在无监督的目标发现和有监督的属性预测任务中,时隙注意能够提取以目标为中心的表征,从而能够泛化到不可见的组合。
引言
以对象为中心的表示有可能在一系列应用领域中提高样本效率和机器学习算法的泛化能力,例如视觉推理[1],结构化环境建模[2],多代理建模[3-5]和交互物理系统的模拟[6-8]。从原始感知输入(如图像或视频)中获得以对象为中心的表示是具有挑战性的,通常需要监督[1,3,9,10]或特定于任务的架构[2,11]。因此,学习以对象为中心的表示的步骤通常被完全跳过。相反,模型通常被训练为对环境的结构化表示进行操作,例如,从模拟器[6,8]或游戏引擎[4,5]的内部表示中获得。
为了克服这一挑战,我们引入了Slot Attention模块,这是感知表示(例如,CNN的输出)和一组称为slots的变量。使用迭代注意机制,Slot Attention产生一组具有排列对称性的输出向量。与胶囊网络中使用的胶囊不同[12,13],Slot Attention产生的插槽不会专门针对特定类型或类别的对象,这可能会损害泛化。相反,它们的行为类似于目标文件[14],即,插槽使用一种通用的表示格式:每个插槽可以存储(并绑定到)输入中的任何对象。这允许槽注意力以系统的方式推广到看不见的成分,更多的对象和更多的槽。
Slot Attention是一个简单且易于实现的架构组件,可以放置在CNN [15]编码器的顶部,以从图像中提取对象表示,并通过下游任务进行端到端训练。在本文中,我们考虑图像重建和集合预测作为下游任务,以展示我们的模块在具有挑战性的无监督对象发现设置和涉及集合结构对象属性预测的监督任务中的多功能性。
我们的主要贡献如下:(i)我们引入了Slot Attention模块,这是感知表示(例如CNN的输出)和构造为集合的表示之间接口处的一个简单架构组件。(ii)我们将基于Slot Attention的架构应用于无监督对象发现,它匹配或优于相关的最先进方法[16,17],同时更有效地利用内存,并且训练速度更快。(iii)我们证明了插槽注意模块可用于监督对象属性预测,其中注意机制学习突出单个对象,而无需直接监督对象分割。
2 方法
在本节中,我们将介绍Slot Attention模块(图1a; 2.1节),并演示如何将其集成到无监督对象发现架构(图1b; 2.2节)和集合预测架构(图1c; 2.3节)中。
2.1 插槽注意力模块
Slot Attention模块(图1a)从一组N个输入特征向量映射到一组K个输出向量,我们将其称为slot。例如,该输出集中的每个向量可以描述输入中的对象或实体。整个模块在算法1中以伪代码1描述。
(a)槽注意模块和示例应用于(B)无监督对象发现和(c)具有标记目标yi的监督集合预测。详情请参见正文。
Slot Attention使用迭代注意力机制将其输入映射到插槽。随机初始化时隙,然后在每次迭代t = 1时细化时隙。…T绑定到输入要素的特定部分(或分组)。从公共分布随机采样初始槽表示允许槽注意力在测试时推广到不同数量的槽。
在每次迭代中,槽通过基于softmax的注意力机制[18-20]竞争解释输入的部分,并使用循环更新函数更新它们的表示。每个槽中的最终表示可以用于下游任务,例如无监督对象发现(图1b)或监督集合预测(图1c)。
我们现在描述Slot Attention在一组输入特征上的单次迭代,inputs ∈ RN×Dinputs,K个输出槽的维度为Dslots(为了清楚起见,我们省略了批次维度)。我们使用可学习的线性变换k、q和v将输入和插槽映射到一个公共维度D。
插槽注意力使用点积注意力[19],注意力系数在插槽上归一化,即,注意力机制的质疑。这种归一化的选择引入了解释输入部分的槽之间的竞争。
我们进一步遵循将softmax温度设置为固定值的惯例
换句话说,归一化确保了对于每个单独的输入特征向量,注意力系数总和为1,这防止了注意力机制忽略输入的部分。为了将输入值聚