Unsupervised Learning of Visual Features by Contrasting Cluster Assignments
摘要介绍方法
数据增强方法 总结
摘要现在大多数对比学习的方法都是在线学习且依赖于大量的样本对,这造成了比较打得计算负担。在这篇文章中,作者提出了一种在线学习算法,它不依赖与成对地比较。这个方法对数据进行聚类,同时确保同一图像的不同增强(或“视图”)产生的聚类分配之间的一致性。不像对比学习那样直接去比较特征。使用一种交换预测机制,从一个视图的表示去预测另一个视图。提出了一种新的数据增强的策略:multi-crop,使用不同分辨率的视图的混合去替换两个全分辨率的视图,这有利于减小计算量。
介绍自监督学习的主要目的是在没有人工标注的情况下去获取特征,并且也在计算机视觉领域取得了不错的性能。最近提取的一些自监督学习方法大多是基于实例判别任务,将数据集中的每个图像以及它的变换图像认为是一个类别。这种方法主要依赖于两个方面:对比损失和一系列的图像转换操作。这对于增强网络性能是必不可少的。
本文提出了一种新的交换预测的方法,从另一个视图的表示中预测一个视图的编码。我们通过在同一个图像的多个视图之间交换分配来学习特征。另外本文还提出了一种新的图像变换操作,我们使用更小尺寸的图像来增加视图数量,而不增加训练期间的内存或计算需求。
本文提出了一种基于聚类的自监督学习方法,并且以在线学习的方式来学习视觉特征。典型的聚类方式都属于离线学习,使用整个数据集做聚类。它的缺点也很明显,不适合做在线学习。本文的方法可以被解释为一种对比多个图像视图的方法,通过比较它们的聚类任务(Assignments)而不是它们的特征。
本文通过从一个增强的视图来计算一个code,并且从相同图片的其他增强视图来预测这个code。具体来说,给定两个图像的特征,
z
t
z_t
zt 和
z
s
z_s
zs,它们是来自于同一幅图片的不同增强视图,通过将特征与一系列
K
K
K个原型(prototypes){
c
1
,
.
.
.
,
c
k
c_1,...,c_k
c1,...,ck}匹配,来计算它们各自的code,
q
t
q_t
qt 和
q
s
q_s
qs。损失函数的定义是基于本文提出的交换预测机制,损失函数定义如下:
L
(
z
t
,
z
s
)
=
l
(
z
t
,
q
s
)
+
l
(
z
s
,
q
t
)
L(z_t,z_s)=l(z_t,q_s)+l(z_s,q_t)
L(zt,zs)=l(zt,qs)+l(zs,qt)
l
(
z
,
q
)
l(z,q)
l(z,q) 衡量了特诊
z
z
z 和 code
q
q
q 之间的匹配程度,使用中间编码(code)
q
t
q_t
qt,
q
s
q_s
qs 比较特征
z
t
z_t
zt,
z
s
z_s
zs.
在线计算code
q
q
q的计算使用prototypes
C
C
C,给定
B
B
B个特征向量,
Z
=
[
z
1
,
.
.
.
,
z
B
]
boldsymbol Z=lbrack z_1,...,z_Brbrack
Z=[z1,...,zB],将这些特征映射到prototypes
C
=
[
c
1
,
.
.
.
,
c
K
]
boldsymbol C=lbrack c_1,...,c_Krbrack
C=[c1,...,cK]中,code
Q
=
[
q
1
,
.
.
.
,
q
B
]
boldsymbol Q=lbrack q_1,...,q_Brbrack
Q=[q1,...,qB],优化
Q
Q
Q来最大化特征和原始类型的相似性。
H
H
H是熵函数,熵正则化会出现比较麻烦的问题,所以
ε
varepsilon
ε设得比较小。本文的方法属于在线学习的方式,所以不会使用整个数据集去学习,而是分成许多的minibatchs.
使用离散的codes会使得收敛变快,不如使用连续的codes,本文使用如下的方式计算codes
Multi-crop:Augmenting views with smaller images
增加裁剪或“视图”的数量会增加内存和计算需求,本文提出一个multi-crop的策略,使用两个标准分辨率的裁剪图像和
V
V
V个额外的低分辨率的裁剪图像。使用低分辨率的图像可以确保不增加计算负担。
自监督学习的文章主要依赖于辅助任务的设计,本篇文章的贡献主要在两个方面,第一个是将图像的特征进行映射得到一个prototype,计算出一个编码code,在使用交叉熵的方式计算损失函数。第二个方面在于提出的数据增强的操作。使用了额外的低分辨率图像去作为数据增强的方式,提升了模型的性能。自监督学习很大程度上依赖于较强的数据增强方式。



