题目:Attribute Surrogates Learning and Spectral Tokens Pooling in Transformers for few-shot learning
发表单位:复旦大学、上海市智能信息处理重点实验室、香港大学
关键词:few-shot , DINO , ViT , patch tokens , class token
论文:Attribute Surrogates Learning and Spectral Tokens Pooling in Transformers for few-shot learning
代码:https://github.com/StomachCold/HCTransformers
1 Motivation
希望通过提高数据的有效性来解决Transformer“数据饥渴”的问题。因为小样本学习的关键问题就是如何高效利用隐藏在标注数据中的丰富信息进行学习,视觉Transformer(ViT)的研究关注于大中型数据集上的表现;论文将ViT应用于针对小样本任务对过拟合更加敏感的研究,也就是如何提高小数据集下数据的利用效率上,并在四个流行的小样本数据集上达到了SOTA!
2 创新点
我个人认为与上篇博客写的语言作为查询殊途同归(Language as queries),都出于港大。本篇论文是提出了一种基于DINO知识蒸馏架构的分层级联Transformer(HCTransformer)网络,上篇论文的关键思想也是不单纯利用标签信息(one-hot类型)而是定义了N个可学习特征作为query,与本篇论文的标签代理方案有异曲同工之妙!
1 提出了token谱聚类层 | 作用:获取并利用图像内部结构来降低目标前景区域和背景噪声区域分界的模糊性(让目标和噪声的边界更清晰) |
---|---|
2 提出了一个标签代理学习方案 | 作用:充分利用图像-标签对之间的视觉信息而不是一个视觉标签概念 |
3 Method
上图是方法的整体架构。包括三个级联的Transformer网络,每一阶段都是一个teacher-student的知识蒸馏结构。
3.1 DINO自监督架构
DINO是一种基于知识蒸馏的自监督网络,其中teacher和student模型结构完全一样但是参数不同,student网络的参数通过反向传播进行更新,teacher模型的权重更新是通过对student模型权重的EMA(exponential moving average-指数移动平均)来更新的。
3.2 属性代理监督
假设共有C个类,对于每一类标签y,学习一个语义属性的代理向量(这里其实就是把标签变成一个可学习的向量即标签代理)。训练过程中通过该代理来监督student网络的参数学习,也就是使同一个标签的输出均向这个代理向量在向量空间中靠拢,同时代理向量的参数也受影响进行更新。
这里与传统监督方式不同的是:论文不是单一的使用输入图片通过transformer的encoder得到的class token 或者N个patch tokens,而是将二者同时用于监督,这样来最大限度的提高数据利用效率。
3.3 class token 监督
由于DINO本身的自监督设计,student网络的class token 经过一个MLP的最终输出,是该标签对应的语义属性代理向量(
P
s
{P}_{s}
Ps(
x
g
{x}_{g}
xg))(此时就不是one-hot类型的向量了,而是一个更高维度的向量),然后再通过
D
K
L
{D}_{KL}
DKL的KL散度计算将同一标签的输出聚拢。即下式:
3.4 patch tokens 监督
为了在使用class token进行监督的同时,也用上patch级别的标签信息,即用patch tokens同时进行监督网络,论文把图片经过encoder后得到的N个patch tokens (
f
p
{f}_{p}
fp(x)) 用经过softmax操作后的注意力矩阵(class token对其他patch tokens的注意力矩阵)(
A
c
{A}_{c}
Ac(x)) 进行加权合并计算,得到一个全局token (
F
p
{F}_{p}
Fp(x)) ,如下式:
然后采用和class token相同的监督方式对该全局token进行监督。
3.5 谱聚类tokens池化
为了保持各 patch 之间原有的位置关系信息,论文对于 ViT 中的 N 个 patch tokens 之间的注意力矩阵加上了邻接限制,使每个 patch 只和相邻的 8 个 patch 有相似性。
在论文的网络设计中,训练阶段首先会训练第一阶段的 Transformer 网络来得到一个有较好表征能力的特征生成器,随后再引入池化操作,加上二三阶段 Transformer 共同训练。最终在三阶段中通过验证集挑选出最优结果作为最终输出。
下图是谱聚类池化的可视化图。
4 实验部分
论文分别在四个流行的 Few-Shot Classification 数据集:mini-Imagenet, tiered-Imagenet, CIFAR-FS 和 FC100 上做了详尽的实验。
最终结果如表 1,2,3 所示:相比于现有的 SOTA 模型,HCTransformers 在 1-shot 和 5-shot 的结果上都显示出明显的性能优势。
这样令人印象深刻的结果要归功于好的网络结构,它能学习到数据中固有的内在信息,并具有良好的泛化能力
表 2 和表 3 分别显示了在小分辨率数据集 CIFAR-FS 和 FC100 上的结果。HCTransformers 在这些低分辨率设置中显示出和 SOTA 类似或更好的结果: 在 CIFAR-FS 上提高了 1.02%(1-shot) 和 0.76%(5-shot); 在 FC100 上提高了 0.51%(1-shot) 和 1.12%(5-shot)。
在小分辨率数据集上,并没有超越以前的 SOTA 方法很多,应该将其归因于 ViT 的 patch 机制:当图像分辨率较小时,如 32*32,每一个 patch 所包含的实际像素过少,很难提取出有用的特征表示。