论文阅读《Semantic Prompt for Few-Shot Image Recognition》
文章标题
关键词
正文
参考文献
致谢
目录
-
1、存在的主要问题
-
2、算法概述
-
3、具体实现步骤
-
- 3.1 预训练阶段
- 3.2 微调过程
- 3.3 空间关系建模模块
- 3.4 通道连接机制
- 3.1 预训练阶段
-
4、实验
- 4.1、对比分析
- 4.2、组件模块去除研究
- 4.3、层级移除效应探索
- 4.4、Backbone与分类器影响研究
- 4.5、投影机制与池化策略分析
- 4.6、尺度范围影响评估
- 4.1、对比分析
1、存在的问题
当下,在处理小样本问题时,存在一种较为有效的方案:借助其他模态的信息(如自然语言),用于辅助学习新概念 。即通过从样本类名中提取文本特征,并将其与视觉特征相结合。
该思路的主要缺陷在于文本特征可能包含了新旧类别间的语义关联,
而缺乏与基础视觉表示的互动。
这使得,在仅有限的支持图像的情况下,
直接从文本特征提取类原型
导致所学习到的视觉特性容易受到虚假特性的干扰 。
例如,在背景复杂的情况下,
难以生成精确且具有代表性的类原型。
比如,在引入一个新的类别'独轮车'时

2、算法简介
该方法开发了一种新颖的语义提示策略,并以类名的文本信息作为语义提示来源,在动态调节特征提取网络的过程中实现了对图像编码器的有效引导作用。
本文重点提出了一个语义引导SP模块以及其内部的两种相互补充的信息交互机制:
1. SP模块:它能够嵌入于特征提取器的各种层次中,并涵盖空间关系与通道交互两方面的内容。
2、空间交互机制: 通过将语义提示特征与图像块特征相结合,并输入到Transformer层中,在经过自注意力机制后, 语义提示能够与每个图像块特征进行信息交互, 从而让模型聚焦于与类别相关的图像区域。
3、通道交互机制: 通过从所有图像块提取视觉特征开始,在将两类特征进行融合并经MLP网络处理以生成调节向量之后,在各图像块的特征表示上施加这一调节向量以实现对视觉特性的逐通道精细调节。
3、算法细节
网络的训练包括两个阶段:
在初始阶段中,我们通过将基数据集中的所有图像进行分类来先进行特征提取器f的预训练
第二阶段,采用元训练策略,使用语义提示SP对特征提取器f进行微调。

3.1、预训练阶段
采用Visformer作为特征提取器 f,在基类数据集上完成训练。
Visformer是一种原始ViT的变体,在网络架构上采用了卷积块来替代最初的七个Transformer层,在网络结构上如图所示

首先,在本研究中,我们将输入图像x\in\mathbb{R}^{H\times W\times C}进行分割处理为连续的M个图像块序列:
第二步骤 ,对每个图像块进行嵌入表示,并附加位置编码信息:
Z_0=[z_0^1,z_0^2,...,z_0^M], \quad z_0^i\in\mathbb{R}^{C_z}
在第三步中,在**L**层的Transformer架构中进行操作以生成图像嵌入
在第L层阶段上,在本步骤中,在最终阶段上,在本环节中,在这一阶段上,在这一环节中
作为参考,同时给出Vision Transformer的网络结构:

3.2、微调阶段
通过部署经过大规模预训练的自然语言处理模型,在类名中提取相应的文本特征。采用元学习策略对特征提取器进行微调优化,使其能够更好地响应并适应于具体的语义提示需求。

第一步 ,基于训练集中的支持图像x^s及其对应的类别名称y^{text} ,通过预先训练好的文本编码器将类名输入至文本编码器中,并从中提取对应的语义特征表示为 g(y^{text}) ;
下一步 ,语义特征通过训练好的特征提取器被用来计算图像的特征:
\phi(\mathbf{x}^s) = f(\mathbf{x}^s|\mathbf{y}_{\text{txt}})
第三阶段,在每一类中,在这一阶段的任务下,在每一类中进行操作,在每一类中进行操作,并且在每一类中进行操作的过程中,在这一阶段的任务下,在每一类中进行操作的过程中,在这一阶段的任务下进行操作的过程中
在第四阶段(即元训练过程中),固定文本编码器g(\cdot)的同时,在优化交叉熵损失函数的基础上提升查询样本与相应原型之间特征匹配度,并最终实现对剩余参数的优化。
3.3、空间交互机制

在深度神经网络中进行目标检测的过程中 ,首先初始化各通道的空间位置嵌入序列 Z_{l-1}=[z_{l-1}^1,z_{l-1}^2,...,z_{l-1}^M] 位于实数矩阵空间 \mathbb{R}^{M\times C_z} 中 ;与此同时 ,给定了第 l 层的空间语义表示 g(y^{text}) ,并将其作为后续计算的基础输入
z^0=h_s\left(g(y^{text})\right)\in\mathbb{R}^{C_z}
使用投影后的语义特征与图像块嵌入序列拼接\hat{Z}_{l-1}=[z^0,z_{l-1}^1,...,z_{l-1}^M]
第二步 ,将经过扩展的序列依次注入到Transformer层中,在其架构中包含了多头自注意力机制模块MSA。
第三步 ,MSA通过编码生成三个向量:每个图像块进行编码生成三个参数分别为查询、键和值的向量。
第四步 ,计算q与k的内积,并通过空间维度的softmax函数获得注意力权重A;随后将注意力权重用于从不同位置获取信息,并将这些信息进行聚合。公式表示为:
A=softmax(qk^T/C_h^{\frac{1}{4}}),\quad A\in\mathbb{R}^{N_h\times(M+1)\times(M+1)}
第五阶段 ,将所有头输出的注意力权重进行整合,并经过线性变换得到最终输出结果:
MSA(\hat{Z_{l-1}})=(Av)W_{out}
3.4、通道交互机制

在第一步中包含以下内容:首先提供第l层的语义描述g(y^{text})以及图像块嵌入序列组Z_{l-1}=[z_{l-1}^1,z_{l-1}^2,...,z_{l-1}^M](其中每个元素属于\mathbb{R}^{C_z}空间)
统计每个图像块的嵌入向量,并求其平均值;从而生成一个全局视觉上下文向量:
z_{l-1}^c=\frac{1}{M}\sum_{i=1}^{M}z_{l-1}^i
这一步骤中,通过投影函数使语义特征的空间维度与图像块嵌入的空间维度保持一致z^0=h_c(g(y_{text}))\in\mathbb{R}^{C_z}
第三步 ,使用投影后的语义特征与全局视觉上下文向量拼接[z^0;z_{l-1}^c]
通过将经过拼接处理后的向量输入到两个全连接层中进行计算得到调制向量
第五步 ,将调制向量融入所有图像块嵌入中:
\tilde{Z}_{l-1}=[z_{l-1}^i+\beta_{l-1},]\quad i=1,2,...,M
从而可以在每个通道中精细调节视觉特征。
4、实验
4.1、对比实验
基于四个不同的数据集展开比较实验,并报告了准确率指标。第一部分仅依赖显性特征而非隐含语义信息,在中间阶段则通过类名提示和描述类属性提取隐含语义内容。此外,在1-shot任务中表现优异的带CLIP的SP系统显著超越了基于单一模态的学习方法SBERT和GloVe。这一优势源于CLIP经过多模态预训练使视觉编码与语义表示更加契合,在单样本学习任务中显著超越了基于单一模态的学习方法SBERT和GloVe


4.2、组成模块消融
Aug:数据增强
SI:空间交互机制
CI:通道交互机制

4.3、插入层消融
该特征提取器划分为三个独立阶段进行功能划分,并且每个子网络由多个Transformer层构成。研究表明任意一层都可以引入预定义的语义提示信息 ,并通过实证分析二、三阶段不同层级中语义提示的效果。当将高阶嵌入空间中的语义提示应用于较高层级时(较高层级能够捕获更为特化的类别特征),模型性能显著提升;而较低层级嵌入效果相对较弱(较低层级则容易产生类别间的共性信息)。通过对比实验发现,在较高层次嵌入策略下获得的整体效果较为理想(整体效果较为理想),并且最优配置建议采用第三层次中的第二位嵌入位置(layer3-2)。


4.4、Backbone和分类器消融
仅仅用Visformer替代ResNet-12并不能带来实质性的改进

NN和余弦距离最近原型分类器被采用;而LR代表线性逻辑回归分类器。
当样本数量为1时(即1-shot),两种分类器的性能表现相当。
然而,在样本数量为5时(即5-shot),通过使用更多的训练数据(即更多的训练样本),线性逻辑回归分类器(即LR)表现出色,并且其性能比余弦距离最近原型分类器(即NN)提升了0.53%。

4.5、投影函数和池化消融
线性投影函数与MLP投影函数相比而言, 后者略微领先。
Head: 选择语义提示向量位置处的输出

Patch: 对所有图像块的特征取平均

All: 对所有特征向量取平均


4.6、插入图像大小消融
在不改变卷积核尺寸及stride的情况下, 图像尺寸缩减将导致检测精度的下降, 其原因在于此时所使用的卷积核规模及stride过大以至于难以捕捉到细节丰富的视觉特征. 因此, 从而建议适当减小卷积核及其stride, 这将有助于提升整体检测性能.

