自监督脉络
SimCLR;SimCLRV2;BYOL;Moco;SimSiam
一些典型操作
原图地址
When Does Self-supervision Improve Few-shot Learning?(2019 ECCV)
关键点:
- 通过自监督构建多任务学习,能够提高模型提取语义特征的能力,有助于在新类上的识别。
- 只有当无标签的数据与有标签的数据属于同一个域时,进行自监督才有效果,否则反而有害。
- 基于此,设计了一个域选择分类器来对无标签的数据进行筛选
- 使用了额外的无标签数据
通过自监督构建辅助任务,将原先的单任务转化为多任务,通过几个损失共同反馈网络。
Improving Few-Shot Learning with Auxiliary Self-Supervised Pretext Tasks(2021 arxiv)
关键点:构建“rotation prediction”与“BYOL”的自监任务来公共正则化原始小样本分类
BYOL辅助任务,不使用对比学习,而是使用两个网络互相共同学习,使用online network来预测target network的的表达,使用MSE来衡量两个网络损失。
网络架构:
- 使用有标签的数据计算分类损失
L
C
E
L_{CE}
LCE
- 使用两个自监督损失
L
r
o
t
L_{rot}
Lrot和
L
B
Y
O
L
L_{BYOL}
LBYOL,两个任务都是自监督中的经典任务
- 需要注意的是,两个自监督任务会共享
F
t
h
e
t
a
F_{theta}
Ftheta
SELF-SUPERVISED LEARNING FOR FEW-SHOT IMAGE CLASSIFICATION(2019 arxiv)
关键点:不同于其他工作将自监督任务作为辅助任务,本文首先使用自监督来提高模型对语义信息的捕捉能力,训练完成后,将得到的网路使用到小样本学习中。
-
左半部分: 将图片的切片送入两个网络中表达,损失使得两个网络对同一物体的表达接近,以此来提高模型的语义捕捉能力
-
右半部分: 将上一步训练好的网络用到小样本学习中
Boosting Few-Shot Visual Learning with Self-Supervision(2019 ICCV)
有源代码
通过自监督构造辅助任务,形成多任务模型来解决小样本,小样本学习使用N-way K-shot范式,自监督任务使用Image rotations,Relative patch location两种任务
Self-supervised Knowledge Distillation for Few-shot Learning(2020 arxiv)
关键点:知识蒸馏+自监督+小样本
出发点:通过自监督来保证类内的多样性;通过知识蒸馏网络保证类间的判别性
- Generation zero stage:首先使用网络提取变换后图片特征,随后计算分类损失,最后使用类别
l
o
g
i
t
s
logits
logits计算自监督损失来保证最后输出流形的多样性。
- 复制zero stage网络为两份,一个作为teacher,另一个作为student。将原始图片输入teacher得到类别预测
p
′
p^{'}
p′;将原始图片数如student得到
p
s
p^{s}
ps;变换后图片输入student得到
h
a
t
p
s
hatp^s
hatps,然后如上图所示,分别计算损失。
-
L
c
e
L_{ce}
Lce与
L
s
s
L_{ss}
Lss保证teacher network分类的准确性与输出流形空间的多样性;
L
k
d
L_{kd}
Lkd保证student的输出空间与teacher的输出空间一致;
L
L
2
L_{L_{2}}
LL2保证student的同类预测需要一致。
Self-Supervised Learning of Pretext-Invariant Representations(cvpr 2020)
出发点:经过自监督变换后图像学习到的特征应该与原图像特征相似,即Invariant,这样能够保证所提取到的特征具有语义信息。而现有的自监督学习都在关注Covariant,例如,旋转变换后的角度区分;打乱重排后的序列等等。
关键点:损失函数中使用了对比损失,即变换后图片
I
T
I^{T}
IT特征因与原始图片
I
I
I特征相近。与其他图片
I
′
I^{'}
I′的特征远离