专栏名称: 小白学视觉
本公众号主要介绍机器视觉基础知识和新闻,以及在学习机器视觉时遇到的各种纠结和坑的心路历程。
目录
相关文章推荐
前端大全  ·  从 DeepSeek 看25年前端的一个小趋势 ·  昨天  
前端早读课  ·  【第3455期】快手主站前端工程化探索:Gu ... ·  昨天  
歸藏的AI工具箱  ·  终于有给设计师用的 Cursor 了 ·  2 天前  
歸藏的AI工具箱  ·  终于有给设计师用的 Cursor 了 ·  2 天前  
前端早读课  ·  【第3454期】如何用语音学习编程的 ·  2 天前  
前端大全  ·  前端行情变了,差别真的挺大。。。 ·  3 天前  
51好读  ›  专栏  ›  小白学视觉

TPAMI 2024 | 你绝对想不到!零样本学习+特征蒸馏器 竟然有奇效!

小白学视觉  · 公众号  ·  · 2024-09-24 10:19

正文

点击上方 小白学视觉 ”,选择加" 星标 "或“ 置顶

重磅干货,第一时间送达

题目:Explanatory Object Part Aggregation for Zero-Shot Learning

对于零样本学习中的解释性对象部分聚合。

作者:Xin Chen; Xiaoling Deng; Yubin Lan; Yongbing Long; Jian Weng; Zhiquan Liu; Qi Tian


摘要

零样本学习(ZSL)旨在仅基于已见过类别的标记图像来识别未见过的类别对象。大多数现有的ZSL方法集中于优化特征空间或生成未见类别的视觉特征,无论是在传统ZSL还是泛化零样本学习(GZSL)中。然而,由于学习到的特征空间是次优的,存在许多虚拟连接,其中视觉特征与语义属性并不对应。为了减少虚拟连接,本文提出了一种通过构建基于卷积特征图的解释图来发现全面和细粒度的对象部分,然后将对象部分聚合以训练一个部分网络以获得预测结果。由于聚合的对象部分包含激活语义属性的全面视觉特征,因此可以在很大程度上减少虚拟连接。由于部分网络旨在提取局部细粒度视觉特征,一些与全局结构相关的属性被忽略了。为了同时利用局部和全局视觉特征,我们设计了一个特征蒸馏器,将局部特征蒸馏到一个主网络中,该网络旨在提取全局特征。在AWA2、CUB、FLO和SUN数据集上的实验结果表明,我们提出的方法在传统ZSL和GZSL任务中明显优于现有技术。

关键词

  • 零样本学习 (Zero-shot learning)
  • 泛化零样本学习 (Generalized zero-shot learning)
  • 虚拟连接 (Virtual connections)
  • 对象部分发现 (Object part discovery)
  • 解释图 (Explanatory graph)
  • 部分聚合 (Part aggregation)
  • 特征蒸馏 (Feature distillation)

1. 引言

随着深度学习的快速发展,具有标记训练样本的图像识别任务已经取得了巨大的进步。然而,在实际应用中,几乎不可能为所有对象类别收集到大量的标记训练样本。一些类别可能只有很少甚至没有训练样本可用于训练。为了识别没有训练样本的类别,提出了零样本学习(ZSL)。在ZSL中,首先在具有标记训练样本的已见过类别上训练一个分类模型,然后使用该识别模型来识别在训练过程中未参与的未见类别。由于已见过和未见类别不重叠,它们通过中间类别级语义属性(例如视觉属性或词向量)进行桥接。

由于已见过和未见类别之间的数据分布不同,从视觉特征到中间语义属性的映射关系在学习已见过类别时往往会有偏差,当转移到未见类别时。为了减少偏差,现有方法可以分为两类。一种类型旨在使学习到的视觉特征包含尽可能多的信息,另一种类型旨在在训练过程中充分利用未见类别的图像。在第一类中,一些工作通过解码器强制学习到的视觉特征恢复输入图像,一些工作从输入图像中学习额外的潜在语义属性,这些属性与注释的语义属性连接,形成最终的中间语义描述符。在这一类中,如果视觉特征更具生成性,它们将具有较低的区分性。如何平衡生成能力和区分能力是一个重要的问题。

在第二类中,大多数工作使用注释的属性通过在已见过类别上训练的GANs生成未见类别的假图像。一个重要的问题是,由于GANs是在已见过类别上训练的,它们倾向于生成偏向已见过类别的假图像,这限制了假图像帮助利用未见类别信息的能力。

从上述描述中,我们可以看到,大多数现有的零样本学习方法集中在如何更好地从已见过类别转移到未见类别的视觉特征与语义属性之间的映射关系。一个重要的问题在很大程度上被忽略了。那就是,学习到的视觉特征与语义属性之间的映射关系不一定对应于真实的语义属性。例如,如图1所示,在特征提取过程中,对于属性‘腿颜色棕色’,‘颈部’区域被赋予了更高的重视(激活值大约是准确‘腿部’的3000倍),即使在其他区域也有低重视的部分特征(激活值仅为0.0001),这意味着其他区域的贡献远小于‘颈部’区域。这种偏差很容易使得‘腿部’相关属性在未见样本上被不准确地激活,从而降低了从已见过类别到未见类别的泛化能力。作为隐喻,我们可以将偏离现实的映射连接定义为虚拟连接。这导致了以下事实:当在已见过类别上学习到的映射关系到未见类别时,由于在未见类别中有许多在训练过程中从未见过的视觉模式,虚拟连接可能导致未见类别的许多视觉特征与混淆的语义属性相对应,这在很大程度上限制了零样本识别性能。

为了解决上述问题,一个直观的方法是在已见过类别上学习视觉特征与语义属性之间的映射关系时减少虚拟连接。虚拟连接可以从两个方面减少:减少背景干扰和增加主要对象的语义特征。为了减少背景干扰并增加语义特征,现有工作主要尝试定位区分性区域。Zhu等人提出了一种通过语义注意力定位自动发现对象最具有区分性部分的方法。这种思想在发现区分性对象部分方面很好,但在一定程度上限制了细粒度详细特征的提取能力。Zheng等人提出了一种三线性注意力采样方法,通过建模通道之间的关系生成注意力图,并在细粒度图像识别任务上取得了竞争性能。

在本文中,我们提出基于解释图发现与语义属性相对应的全面对象部分。解释图是通过一个对象类别的所有图像构建的。在图构建过程中,如果一个图像部分在不同卷积层和不同图像中产生一致的共激活和空间关系,那么这个图像部分就被选为全面部分。通过这种方式,不同图像中相似的语义部分被组织成一个图节点。构建一个图后,每个图节点对应于该对象类别的一个语义部分,如头部、眼睛、耳朵、嘴巴等。

与解释图相比,现有的注意力机制在定位关键部分方面主要有两个局限性:1)由于现有的注意力方法基于神经网络中的矩阵操作来定位对象部分,而没有考虑不同卷积层和不同图像之间的结构共激活和空间关系。神经网络是通过反向传播训练的,训练过程旨在最小化损失函数,而不是确保所有图像中的所有属性部分都被发现。即使有些对象部分对应于某些属性没有被激活,或者有些嘈杂部分被高度激活,训练过程仍然可能停止,因为矩阵操作关注数字分布而不是对人类可理解的语义信息。在解释图中,发现的对象部分不仅要在不同卷积层之间具有共激活和空间关系,而且要在不同图像之间保持稳定的共激活和空间关系。这样,嘈杂的对象部分将被过滤掉。2)由于注意力图是基于矩阵操作生成的,并非所有有用的属性区域都考虑在训练过程中。神经网络中的矩阵操作旨在将输入图像映射到嵌入特征空间。有时,仅定位粗略的对象部分(例如头部、颈部、腿部)就足以达到损失函数的最小值,一些细粒度的对象部分(例如眼睛、翅膀斑点、脚趾)容易被忽略。在解释图中,即使一个对象部分的激活度低,它仍然可以被选为属性部分,因为在解释图中推断图节点需要适应所有必需的激活峰值。因此,我们可以看到解释图可以发现更细粒度、更全面、更少噪声的对象部分。一些典型的由注意力机制和解释图发现的对象部分在图2中呈现。我们可以看到,由解释图发现的对象部分包含了比注意力机制更多的详细信息。当更多有用的详细信息被考虑时,虚拟连接将在很大程度上被减少。

在发现对象部分后,将图像解耦为一组对象部分。然后如何利用这些对象部分来提高零样本学习的准确性?在本文中,我们设计了一个特征蒸馏器,将对象部分的细粒度信息蒸馏到主分类网络中。这种识别方法主要有两个优点:1)由于图像将在构建解释图后被解耦为无序的图像集,图像旋转或翻转对分类性能的影响很小。尽管这种影响也可以通过数据增强来减少,但仅通过数据增强很难模拟未见类别的所有旋转角度。2)特征蒸馏器可以将由全面对象部分激活的语义属性蒸馏到主分类网络中。由解释图发现的全面图像部分使得建立视觉特征与语义属性之间的关系变得更加容易。发现的图像部分擅长强调局部详细特征,但一些全局结构特征可能受到限制。通过将‘部分网络’的局部特征蒸馏到‘主网络’的全局特征中,可以结合局部和全局特征的优势,使视觉特征与语义属性之间的关系更加完整。然后虚拟连接可以进一步减少。

我们强调我们提出的方法的主要贡献如下:

  • 我们发现虚拟连接是限制ZSL性能的一个重要因素。虚拟连接代表视觉模式和语义属性之间不合理的映射关系。造成虚拟连接的主要原因之一是视觉模式不足。
  • 为了实现足够的视觉模式,我们提出了基于解释图发现全面的对象部分。解释图将图像解耦为一组对象部分。由于解释图充分考虑了不同卷积层和不同图像之间的共激活,发现的对象部分更加全面,噪声更少。
  • 为了聚合发现的对象部分的信息,我们提出了将对象部分的预测属性蒸馏到主分类网络中。这种方法可以充分利用对象部分中存在的丰富视觉模式,并在很大程度上减少虚拟连接。

3. 方法

在本节中,我们介绍我们提出的ZSL方法。所提出方法的框架在图3中展示。本节使用的符号列表在表I中列出。

动机:现有的ZSL方法主要基于由骨干网络提取的特征图来构建视觉和属性特征之间的映射关系。这种策略有一些可以进一步改进的局限性。(1) 骨干网络中的池化操作很容易导致一些重要特征的丢失。(2) 基于神经网络训练中的反向传播算法,训练目标是最小化所有训练样本的损失值之和。这意味着,一旦损失达到最小值,即使仍然有许多不准确的权重,训练过程仍将停止。不准确的权重可能会使一些有用的对象部分被赋予低重要性,这使得一些重要特征没有在卷积特征图上反映出来。(3) 深度神经网络的卷积特征图还有另一个局限性,只要一个图像区域对训练目标有帮助,该图像部分将被赋予更高的注意力权重,而不考虑语义信息,例如,在包含鸟类图像的Caltech-UCSD Birds 200数据集中,许多鸟类图像包含树叶或树枝,然后深度神经网络很容易错误地认为树叶或树枝属于鸟类特征。上述三个局限性导致一些重要的视觉特征没有贡献给相应的属性特征,使得视觉和属性特征之间的一些映射关系不准确。

在本文中,我们将这些视觉和属性特征之间的不准确映射关系定义为虚拟连接。通过解决上述三个局限性,可以减少虚拟连接。为了解决这三个局限性,我们提出通过构建解释图将图像解耦为全面的部分。这些对象部分能够保持不同层和不同图像之间的稳定空间关系,并且不易受到旋转、物体姿态等图像变化的影响。因此,与原始网络激活相比,不同图像中的同一类别的主要语义概念对人类来说更具解释性。

由于我们将全面部分作为部分网络的输入,每个图像部分将得到比输入原始图像更平衡的关注,减少了丢失重要特征或赋予低重要性的有用对象部分的可能性。此外,由于解释图可以发现在不同卷积层和不同图像之间具有稳定空间关系的图像部分,嘈杂的图像部分将减少。通过这种方式,丢失的、不准确和嘈杂的视觉特征将减少。由解释图发现的全面图像部分使得建立视觉特征与语义属性之间的关系变得更加容易。发现的图像部分擅长强调局部详细特征,但一些全局结构特征可能受到限制。通过将‘部分网络’的局部特征蒸馏到‘主网络’的全局特征中,可以结合局部和全局特征的优势,使视觉特征与语义属性之间的关系更加完整。然后虚拟连接可以进一步减少。

A. 解释图构建

解释图的构建是为了适应所有训练样本的卷积特征图,其中图节点应该在不同的卷积层和不同图像之间保持稳定的空间关系。解释图应该最大化图节点与所有训练图像的特征图之间的兼容性。所有图节点应该适应所有训练图像的特征图。此外,不同对象部分之间的共激活和空间关系在不同图像中是稳定的,即使图像旋转或对象位于不同位置也是如此。通过这种方式,同一类别的不同图像中的主要内容变得更加容易向人类解释,与原始网络激活相比。

  1. 解耦对象部分的要求:为了发现全面的对象部分,我们需要分析一个类别中所有训练图像的部分。如果一个图像的部分满足三个条件,则应将其选为典型部分:1) 该部分可以激活ZSL深度分类网络中的神经元;2) 由该部分激活的神经元在不同卷积层中是一致的;3) 由该部分激活的神经元应在所有训练图像的不同卷积层上保持稳定的空间关系。

上述目标可以通过构建图G来实现。在图G中,一个图节点代表一个对象部分(如头部、喙、腿部等),即代表“头部”的图节点对应于一个类别中所有训练图像的头部部分。图边缘代表不同部分之间的共激活关系,例如,应该在部分“头部”和部分“喙”之间存在一条边缘,因为喙属于头部。

  1. 解释图构建:给定输入图像I的第L层卷积特征图 ,图节点的数量N是手动定义的,并且等于对象部分的数量。图节点和图边缘可以通过卷积特征图 的激活响应来推断。为了模拟不同卷积层之间的共激活和空间关系,需要逐层构建图G。

给定第L层卷积特征图的特征图 ,图节点的数量N定义为手动设置的值,并且等于对象部分的数量。图节点和图边缘可以通过卷积特征图 的激活响应来推断。特征图X可以被视为“神经激活实体”的分布。每个激活单元x的神经响应 可以被视为“激活实体”的数量。激活单元x对应于卷积特征图中的一个神经元。特征图中的每个神经激活单元x可以通过其空间位置 和通道号d_x来识别。定义 用于测量位置 处的激活实体数量,其中fx是激活单元x的归一化激活值,β是一个常数。

构建解释图后,每个图节点将在特征图上有一个对应的位置,其坐标为x,并且可以通过在该位置周围切割图像块来获得该位置对应的图像部分。位置x处的相应激活值 可以反映相应图像部分的活跃程度。具有高 值的图像部分被认为是高度活跃的部分。

图节点集V期望有两个约束:一个是图节点V应很好地适应特征图 ;另一个是图节点V应与上层的图节点 保持稳定和结构化的空间关系。假设图G的参数为 ,那么学习图G的目标函数为:

其中I ∈ I表示所有训练图像将参与解释图的构建过程。为了简化符号,我们在以下段落中忽略了上标I和下标L。目标函数可以使学习到的图适应特征图X,并与上层的图节点R保持关系。

优化目标函数首先需要计算 。特征图X可以被视为神经激活实体的分布。所有图节点V构成了一个混合模型,如高斯混合模型。混合模型可以解释X的激活实体分布:

其中px表示特征图X中一个神经激活单元x的空间位置, 是一个常数先验概率。位置px处的激活实体数量由 测量,其中fx表示单元x的归一化响应,β是一个常数。

计算(2)中的 首先需要计算 。术语 表示图节点V与位置px处的激活实体之间的兼容性,可以近似为:

其中图节点V被视为一个隐藏变量,以适应特征图中的激活实体, 表示上层的图节点, 表示 的推断位置,λ是一个归一化常数,α是一个常数,以确保 。通过这种操作,推断出的图节点将在不同卷积层之间保持稳定的共激活关系,这可以满足发现典型对象部分的一个条件:“由该部分激活的神经元在不同卷积层中是一致的”。

术语 在(3)中表示图节点V与位置px处的激活实体之间的兼容性。我们可以看到,术语 被分解为V和 之间的兼容性,即 。由于V和 之间的相对位移在不同图像中变化很小,V和 之间的位移可以通过位置位移近似。

要计算 ,我们假设V和 之间的空间关系遵循高斯分布,那么:

其中 表示在给定图节点 的情况下图节点V的先验位置, 表示变化。基于(1)、(2)、(3)、(4)中的近似方法,图G是通过期望最大化(EM)算法从高层到低层学习的。详细过程如图4所示。

解耦激活峰值对应于对象部分以构建图的过程如图5所示。我们可以看到,通过构建图,一个对象图像可以被解耦为典型的对象部分,这些部分可以覆盖全面的对象属性。

B. 部分网络分支

我们采取以下步骤为一个图像构建一个完整的集合:

步骤1:形成图节点组:为了选择尽可能多的重要对象部分,我们需要估计对象部分的部件标签,并基于估计的部件标签选择对象部分。由于每个图节点在解释图中对应一个部件标签,并且每个图节点被推断为描述一个激活实体,其激活响应为F,那么具有相似激活响应的一组图节点对应相似的部件标签。对象部分对应于图节点的可以按F值排序。“相似部件标签”表示属于同一语义对象部分的部件标签,以“鸟喙”部分为例,无论是喙的尖端区域还是中间区域都属于“喙”的部件标签,那么我们就说,代表尖端区域的对象部分和代表中间区域的部分属于相似的部件标签。在形成图节点组和图节点组与部件标签之间的关系后,可以通过参考对象部分属于哪个图节点组来自动推断对象部分的标签。

图节点组是通过k均值聚类形成的。如图6所示,“top a-top (b)”表示合并(b-a+1)个对象部分,这种合并过程可以使对象部分包含重复的模式。合并过程如图7所示,我们可以看到,合并具有较高a值的图节点形成更广泛的视觉感受野,因为具有较高a值的图节点对应于更分散的对象部分。

步骤2:选择图节点:由于每个部件标签属于一个图节点组,我们随机选择一个来自相应图节点组的部分图像,以形成部分图像集。通过这种方式,我们可以获取涵盖所有部件标签的部分图像。在聚合图节点时,顺序是根据图节点的激活值从大到小定义的。当对图节点的激活值从大到小进行排序时,一些对象部分样本在激活排序后的实验结果中呈现,我们可以看到,AWA2数据集的对象部分顺序是:“眼睛、额头、嘴巴、耳朵、头部、腿部、胃部、鼻子”。对于SUN数据集,由于该数据集没有提供注释属性,SUN数据集的对象部分顺序是抽象的,但这不会影响图节点的分组和从图节点组中选择对象部分。

步骤3:连接选定的部分图像。我们将部分图像集中的所有选定部分图像按顺序连接起来,形成一个完整的图像。构建的完整部分集如图8所示。我们可以看到,完整的部分集主要包括多尺度对象部分,并且大部分背景噪声已经被限制。

对象部分可以根据图节点的激活响应值和先验信息进行排列,并非必须使用先验信息。如果数据集具有像CUB这样的规则属性,我们可以根据预定义属性的顺序排列图像部分;如果数据集没有规则属性,我们可以根据相应图节点的激活响应值的顺序排列图像部分。

C. 主网络分支

由于在部分网络中,将图像 输入到部分网络中,图像 将被重新排列为部分标签的顺序,一些有益的对象模式可能会被破坏,例如,在连接过程中,如果我们把“颈部”放在“头部”的右侧,颈部和头部的连接模式将被破坏。为了提取良性视觉模式的特征,我们需要设计一个主网络,它可以提取良性对象特征。为了提取良性对象特征,我们需要定位完整的对象区域以保留全局结构。

在本文中,我们通过合并多个对象部分来获得对象的全局结构。在构建的图中,每个图节点对应于不同图像中的相同语义模式。语义模式在卷积特征图上的位置在图构建过程中被记录。合并多个较小对象部分的位置可以形成一个更大的对象部分。给定卷积特征图上的位置,可以通过逆卷积操作获得原始图像上的相应位置。假设在输入图像平面上获得的位置坐标为 ,期望的语义模式大小为 ,原始图像大小为 ,则对应的语义模式大小计算如下:

给定位置 和裁剪大小 ,语义模式 被裁剪为 。多个语义模式可以合并形成一个更大尺度的语义模式。为了合并多个图节点的图像部分,我们首先按激活值降序排序图节点,然后合并前 个图节点,通过获得覆盖所有 个图节点的边界坐标值,然后根据边界坐标值裁剪图像部分,形成合并图像作为主网络的输入。在我们的实验中,我们发现 可以获得满意的性能。如果 超过一个阈值,裁剪范围将受到图像边缘的限制。因此,改变 对最终性能的影响很小。

如果一个语义模式是由 个较小尺度的语义模式合并而成,我们定义合并后的语义模式的尺度为 。部分合并的效果如图9所示。我们可以看到,合并前50个激活的图节点可以定位整个和准确的对象区域。图9展示了合并多个对象模式以形成更大对象模式的效果。“Top 4”表示对象模式是由前4个激活的图节点合并而成。合并50个模式可以定位整个和准确的对象区域,无论背景多么复杂。

D. 模型蒸馏

蒸馏的目的是将通过解释图提取的全面部分信息蒸馏到主网络中,这可以结合局部和全局信息以提高泛化能力。在获得完整的部分集后,我们需要设计一个部分网络,将发现的部分集投影到属性空间,然后通过预定义的映射矩阵将属性空间投影到类标签。对于一个完整的部分集S,集合S中的所有部分图像首先按标签顺序连接形成一个统一的图像I。然后图像I被输入到骨干CNN(例如,Resnet-50)以获得全连接输出。图像I的全连接输出表示为 。图像I的fc输出 首先通过参数W映射到语义属性空间a,然后语义属性空间a通过归一化属性矩阵A映射到类概率输出 ,其中 表示总类数,即:

对于蒸馏,我们需要产生一个类别上的软概率分布,即:

其中 表示软化概率向量,其中一个值指示一个类别上的一个预测概率,T是温度参数,在分类任务中通常设置为1。T应该取一个较大的值以在知识蒸馏中产生软化的概率分布。

全局对象结构图像S可以从多个较小的对象部分合并而成。图像S被输入到主网络以获得fc输出 。图像S的fc输出 首先通过参数W_S映射到语义属性空间a_S,然后语义属性空间a_S通过归一化属性矩阵A映射到类概率输出 ,即:

对于蒸馏,我们有:

其中 表示软化概率向量。对于主网络,我们采用软目标交叉熵作为:

其中N表示已见过类别的数量。主网络的目标函数为:

其中 是主网络的分类损失,y是表示类别标签的独热向量, 表示两个项之间的平衡因子。我们可以看到,(11)中的目标函数可以将部分网络中学到的细粒度细节蒸馏到主网络中。当我们输入不同尺度的部分图像到部分网络时,多尺度细粒度细节被蒸馏到主网络中。为了更好地将部分网络的泛化能力蒸馏到主网络,骨干网络参数在部分网络和主网络之间共享。骨干网络包括卷积参数和全连接参数,共享卷积参数对于蒸馏很重要,而共享全连接参数是可选的。参数共享可以减少网络参数的数量并提高蒸馏网络的训练效率。

E. 零样本识别

在训练了所提出的分类网络之后,给定一个测试图像 ,测试输入包括合并和聚合的图像,这与训练输入相同。我们首先获得主网络和部分网络的fc输出 ,然后将fc输出映射到语义属性空间,由参数 映射,然后语义属性空间映射到类概率输出 ,即:

其中 是类别 的语义向量。然后我们融合主网络和部分网络的预测以获得测试图像 的类别标签。ZSL分类器公式化为:

GZSL分类器公式化为:

其中 分别代表主网络和部分网络的类概率输出。

我们将讨论对象部分重叠区域的预测。直观地说,如果对象部分和属性向量有排他性的对应关系,即每个属性元素对应单一的对象部分,并且不同的对象部分对应不同的属性元素,那么对象部分的重叠区域将产生多个预测。例如,部分“喙”和部分“头部”都包含“喙”特征,如果部分“喙”和部分“头部”被映射到不同的属性,那么重叠的“喙”区域将产生多个预测。然而,由于部分网络在语义属性向量之前的最后一层是全连接层,对象部分和属性之间没有排他性对应关系,这意味着单一属性可以被多个对象部分中的图像特征激活。即使在不同的对象部分中存在重叠区域,这些重叠区域仍然可以激活相同的属性元素。因此,重叠区域不一定会导致多个预测。

F. 解释图和蒸馏的必要性分析

在部分网络中,当输入图像 到部分网络时,图像 将通过解释图被解耦为不同的对象部分,每个对象部分对应一个图节点。对象部分将被有序地排列和聚合,通过这种方式,将包括足够的对象部分以覆盖属性区域,并且即使图像







请到「今天看啥」查看全文