SCAN Learning to Classify Images without Labels
概览
Approach: A two-step approach where feature learning and clustering
are decoupled.
Step 1:
Solve a pretext task + Mine k nearest neighbrs
通过利用特征相似性来挖掘每张图片的最近邻居nearest neighbors,研究发现这些nearest neighbors很大概率属于同一种类别same semantic class,暗示着可以用他们来进行semantic clustering
Step 2:
Train clustering model by imposing consistent predictions among neighbors.
使用损失函数来最大化每张图像和其mined neighbors之间的点积 dot product,使得network产生consistent and discriminative的独热预测,实现对图片和mined neighbors的分类。
具体方法
First, we show how mining nearest neighbors from a pretext task can be used as a prior for semantic clustering.
Second, we integrate the obtained prior into a novel loss function to classify each image and its nearest neighbors together.
Finally,使用自打标self-labeling方法来减轻临近点选择neighbors selection带来的噪声影响。
第一步、定义pretext task: 最小化原图和其增强数据之间的距离,得到semantically meaningful features。使用最小化距离的方式是为了使得到的feature representation对图像的变化【数据增强的方式】具有不表性,i.e. feature representations ought to be invariant to image transformations。
第二步、 a semantic clustering loss
挖掘nearest neighbors
传统 K-means 方法会导致团簇简并cluster degeneracy。 简并的意思是这样的吧:A discriminative model can assign all its probability mass to the same cluster when learning the decision boundary. This leads to one cluster dominating the others.
loss function: 学习一个clustering function ,其可以对某一图片xi和其近邻集合进行分类。The function terminates in a softmax function to perform a soft assignment over the clusters.
聚类过程团簇数量的设置: Remember that, the exact number of clusters in C is generally unknown. However, similar to prior work, we choose C equal to the number of ground-truth clusters for the purpose of evaluation. we can overcluster to a larger amount of clusters, and enforce the class distribution to be uniform.
Implementation details:
· 损失函数需要large batches,也就是需要sampling较多的数据以approximate the dataset statistics。
· 训练时,随机增强样本Xi和它的neighbors
· 对于K的取值,K=0时,only consistency between samples and theiraugmentation is posed。
· 对于K>=1,则考虑了更多的neighbors,但由于不是所有的neighbors都属于同一类,所以这也引入了噪声。
1
2
3
4
第三步、通过自打标的微调 fine-tuning through self-labeling
The semantic clustering loss imposed consistency between a sample and
its neighbors. More specifically, each sample was combined with K ≥ 1
neighbors, some of which inevitably do not belong to the same semantic
cluster. These false positive examples lead to predictions for which
the network is less certain.
At the same time, we experimentally observed that samples with highly confident predictions (pmax ≈ 1) tend to be classified to the proper cluster. In fact, the highly confident predictions that the network forms during clustering can be regarded as “prototypes” for each class。
In particular, during training confident samples are selected by thresholding the probability at the output, i.e. pmax > threshold. For every confident sample, a pseudo label is obtained by assigning the sample to its predicted cluster. A cross-entropy loss is used to update the weights for the obtained pseudo labels. To avoid overfitting, we calculate the cross-entropy loss on strongly augmented versions of the confident samples.
实验设置
数据集
小数据集:CIFAR10, CIFAR100, STL10
大数据集:ImageNet
训练设置:
ResNet-18
for every sample, 20 nearest neighbors are determined through an instance discrimination task based on noise contrastive estimation (NCE).
SimCLR 执行 instance discrimination task on 小数据集;
MoCo on ImageNet.
————————————————
版权声明:本文为CSDN博主「wild kindom」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39393430/article/details/110007564
Abstract
如果没有ground truth,我们是否可以将图像自动分组为语义上有意义的簇?无监督图像分类的任务仍然是计算机视觉中的重要且公开的挑战。最近有几种方法试图以端到端的方式解决这个问题。在本文中,我们偏离了最近的工作,并提倡一种将特征学习和聚类分离的两步方法。首先,采用来自表示学习的自我监督任务来获得语义上有意义的特征。其次,我们将获得的特征作为可学习的聚类方法的先验。这样做,我们消除了聚类学习依赖于低级特征的问题,这是当前端到端学习方法中存在的。实验评估表明,在分类准确度方面,我们的表现大大优于最新技术,尤其是CIFAR10上的+ 26.6%,CIFAR100-20上的+ 25.0%和STL10上的+ 21.3%。此外,我们的方法是第一种在大规模数据集上进行图像分类的方法。特别是,我们在ImageNet上获得了可喜的结果,并且在不使用任何实际的注释的情况下,在低数据条件下优于几种半监督的学习方法。
Introduction and prior work
图像分类是将语义标签从一组预定义的类中分配给图像的任务。例如,图像描绘了猫,狗,汽车,飞机等,或进一步抽象了动物,机器等。如今,通常通过训练卷积神经网络来解决此任务上的大型数据集包含带注释的图像,即带有相应语义标签的图像。在这种有监督的设置下,网络擅长学习区分性特征表示,随后可以将其聚类到预定类别中。但是,如果在训练时无法访问真实的语义标签,会发生什么情况?还是更进一步,语义类,甚至它们的总数,不是先验的吗?在这种情况下,理想的目标是将图像分组,以使同一群集中的图像属于相同或相似的语义类别,而不同群集中的图像在语义上是不同的。在这种设置下,最近在文献中出现了无监督或自我监督的学习技术,作为有监督特征学习的替代方法。
表示学习方法使用自我监督学习来仅从图像生成特征表示,而无需使用昂贵的语义注释。为了实现这一目标,他们使用预先设计的任务(称为“前置任务”),这些任务不需要注释的数据即可学习卷积神经网络的权重。取而代之的是通过最小化前置任务的目标函数来学习视觉特征。文献中已经探索了许多前置任务,包括预测补丁背景[13,33],修补补丁[39],解决拼图游戏[35,37],使用对抗训练[14,29]给图像着色[14,15],预测噪声[3],计数[36],预测旋转[16],发现伪影[23],使用预测编码[38,20]生成图像[41],执行实例判别[51,18,7 ,48,32],依此类推。尽管做出了这些努力,表示学习方法仍主要用作两阶段流水线的第一个预训练阶段。第二阶段包括在另一个任务上以完全监督的方式微调网络,最终目的是验证自我监督的功能转移到新任务的程度。当缺少注释时(如本工作中的情况),仍然需要独立定义和优化聚类标准(例如K均值)。这种做法可以说是次优的,因为它会导致聚类不平衡[4],并且不能保证所学习的聚类将与语义类保持一致。
作为一种替代方法,端到端的学习过程将特征学习与聚类结合在一起。第一组方法(例如DEC [52],DAC [6],DeepCluster [4],DeeperCluster [5]或其他[1,17,54])利用CNN的体系结构作为聚类图像之前的方法。从初始特征表示开始,通过从最有把握的样本[6,52]或通过离线计算得出的聚类重新分配派生监督信号来迭代完善聚类。第二组方法(例如IIC [24],IMSAT [21])提出通过最大化图像及其增强之间的互信息来学习聚类功能。通常,依赖于网络初始特征表示的方法对初始化[6,52,4,5,22,17,54]敏感,或者易于退化解决方案[4,5],因此需要特殊的机制(例如预训练,群集重新分配和功能清理)以避免这些情况。最重要的是,由于聚类学习取决于网络初始化,因此它们很可能会锁定到低级功能(例如颜色),这对于语义群集的目标而言是不必要的。为了部分缓解此问题,一些工作[24,21,4]与特定预处理(例如,Sobel过滤)的使用联系在一起。
在这项工作中,与最近的端到端学习方法相比,我们提倡采用两步法进行无监督图像分类。 所提出的名为SCAN(通过采用最近邻居进行语义聚类)的方法利用了表示法和端到端学习方法的优点,但同时也解决了它们的缺点:
-
第一步,我们通过一个预置任务学习特征表示。 与学习特征表示后需要K-means聚类的表示学习方法相反(已知会导致聚类退化)[4],我们建议根据特征相似度挖掘每个图像的最近邻。 我们根据经验发现,在大多数情况下,这些最近的邻居属于同一语义类(请参见图2),从而使其适合于语义聚类。
-
在第二步中,我们将语义上最有意义的最近邻居集成为一种可学习的方法。 我们使用损失函数对每个图像及其附近的近邻进行分类,该函数在softmax之后最大化其点积,从而推动网络产生一致的和有区别的one-hot预测。 与端到端方法不同,学习到的聚类依赖于更有意义的功能,而不是网络体系结构。 此外,因为我们鼓励不变性 最近的邻居,而不仅仅是w.r.t. 扩充,我们发现不需要对输入进行特定的预处理。
Method
以下各节介绍了我们的方法。 首先,我们说明如何将从前置任务中挖掘最近的邻居用作语义聚类的先验。 另外,我们介绍了用于选择适当的前置任务的其他约束,这些任务能够产生语义上有意义的特征表示。 其次,我们将获得的先验信息整合到一个新颖的损失函数中,以将每个图像及其最近的邻居分类在一起。 此外,我们展示了如何使用自标记方法来减轻最近邻居选择中固有的噪声问题。 我们认为,这些贡献中的每一个都与无监督图像分类有关。
- 语义聚类的表示学习
在监督学习设置中,可以使用可用的真实标签将每个样本与其正确的聚类相关联。 特别地,通常可以通过最小化交叉熵损失来学习图像D = { X 1 , . . . , X ∣ D ∣ } D=\left \{ X_1,...,X_{\left | D \right |} \right \}D={X1,...,X∣D∣}与语义类别C之间的映射。 但是,当我们无法访问此类真实标签时,我们需要先定义先验,然后才能估计哪些样本可能属于一起,哪些样本不属于。
端到端学习方法已经利用CNN的体系结构作为先验[54,6,52,17,4,5],或者在图像及其增强之间实现了强制一致性[24,21]以纠正聚类。 在这两种情况下,聚类学习对网络初始化很敏感。 此外,在训练开始时,网络还没有从图像中提取高级信息。 结果,聚类更容易锁定到低级特征(例如颜色,纹理,对比度等)上,这对于语义聚类而言不是最佳的。 为了克服这些限制,我们采用表示学习作为一种手段来获得更好的语义聚类先验。
在表示学习中,前置任务τ以自我监督的方式学习嵌入函数Φ θ Φ_θΦθ(由具有权重θ的神经网络参数化),该函数将图像映射为特征表示。文献提供了一些前置任务,可用于学习这样的嵌入函数Φ θ Φ_θΦθ(例如旋转预测[16],仿射或透视变换预测[57],着色[29],绘画[39],实例判别[51 ,18,7,32]等)。然而,实际上,某些借前置任务是基于特定的图像变换的,从而导致学习到的特征表示与所采用的变换相互影响。例如,当Φ θ Φ_θΦθ预测仿射变换的变换参数时,同一图像的不同仿射变换将导致Φ θ Φ_θΦθ的不同输出预测。这使得学习到的特征表示不太适合语义聚类,在语义聚类中,特征表示对于图像变换应该是不变的。为了克服这个问题,我们强加了前置任务τ来最小化图像Xi及其增强T [ X i ] T [X_i]T[Xi]之间的距离,可以将其表示为:
m i n θ d ( Φ θ ( X i ) , Φ θ ( T [ X i ] ) ) \underset{\theta}{min}d\left ( \Phi _\theta \left ( X_i \right ),\Phi _\theta \left ( T\left [ X_i \right ] \right ) \right )θmind(Φθ(Xi),Φθ(T[Xi]))
因此,可以使用满足公式1的任何前置任务[51,18,7,32]。 例如,图1显示了在满足等式1的实例区分任务[51]下检索最近的邻居时的结果。我们观察到相似的特征被分配给语义相似的图像。 在第3.2节中可以找到使用不同前置任务的实验评估。
为了理解为什么具有类似高级特征的图像通过Φ θ Φ_θΦθ映射得更近,我们进行了以下观察。 首先,前置任务输出以图像为条件,迫使Φ θ Φ_θΦθ从其输入中提取特定信息。 其次,由于Φ θ Φ_θΦθ的容量有限,因此必须从其输入中丢弃无法预测高级前置任务的信息。 例如,Φ θ Φ_θΦθ不可能仅通过对输入图像中的颜色或单个像素进行编码来解决实例区分任务。 结果,具有相似的高级特性的图像将在Φ θ Φ_θΦθ的嵌入空间中靠得更近。 我们得出的结论是,来自表示学习的前置任务可用于获取语义上有意义的特征。 遵循此观察结果,我们将利用前置特征作为对图像进行聚类的先验。
- 语义聚类损失
挖掘最近邻。在第2.1节中,我们的动机是将表示学习中的前置任务用于获取语义上有意义的特征。 然而,单纯地在获得的特征上应用K均值会导致聚类简并[4]。 当学习决策边界时,判别模型可以将其所有概率密度分配给同一聚类。 这导致一个集群支配其他集群。 相反,我们选择了更好的策略。
让我们首先考虑以下实验。 通过表示学习,我们在未标记的数据集D DD上训练模型Φ θ Φ_θΦθ,以解决前置任务τ,即实例判别[7,18]。 然后,对于每个样本X i ∈ D X_i∈DXi∈D,我们在嵌入空间Φ θ Φ_θΦθ中挖掘其K个最近的邻居。 我们在数据集D中将集合N X i N_{X_i}NXi定义为X i X_iXi的相邻样本。图2量化了挖掘到的最近邻居是同一语义集群实例的程度。 我们观察到,对于不同的K值,这在四个数据集1(CIFAR10 [27],CIFAR100-20 [27],STL10 [9]和ImageNet [11])中大都是这种情况。 通过前置任务τ获得的最接近的邻居,作为我们进行语义聚类的先验。
损失函数。我们的目标是学习由权重为η的神经网络参数化的聚类函数Φ η Φ_ηΦη,该聚类函数将样本X i X_iXi及其挖掘的邻居N X i N_{X_i}NXi一起分类。 函数Φ η Φ_ηΦη终止于softmax函数,以对聚类群集C = { 1 , . . . , C } C=\left \{ 1,...,C \right \}C={1,...,C}进行分配,其中Φ η ( X i ) ∈ [ 0 , 1 ] C Φ_η(X_i)∈[0,1]^ CΦη(Xi)∈[0,1]C。 将样本X i X_iXi分配给聚类c的概率表示为Φ c η ( X i ) Φ_c^η(X_i)Φcη(Xi)。 我们通过最小化以下目标来了解Φ η Φ_ηΦη的权重:
这里,〈 ⋅ 〉 \left \langle \cdot \right \rangle〈⋅〉表示点积操作,公式2中的第一项使用Φ η Φ_ηΦη对样本X i X_iXi和它的邻居N X i N_{X_i}NXi进行一致性预测。请注意,当预测为one-hot(确信)并分配给同一聚类(一致)时,点积将最大。 为避免Φ η Φ_ηΦη将所有样本分配给单个群集,我们包括一个熵项(等式2中的第二项),该熵项将预测均匀地分布在群集C上。如果预先知道群集C上的概率分布,则此处不是这种情况,可以用KL散度代替该术语。
请记住,C中群集的确切数目通常是未知的。 但是,类似于先前的工作[52,6,24],出于评估的目的,我们选择C等于地面真相簇的数量。 在实践中,应该有可能获得对簇数量的粗略估计。 基于此估计,我们可以将群集过度聚集到更大量的群集,并强制使类分布均匀。 我们参考第3.4节中的具体实验。
实现细节。对于损失函数的实际实现,我们通过对足够大的批次进行采样来近似数据集统计数据。 在训练过程中,我们随机增加样本X i X_iXi及其附近的N X i N_{X_i}NXi。 对于角点情况K = 0,仅强加样本及其扩充之间的一致性。 我们将K≥1设置为捕获更多簇的方差,但这是以引入噪声为代价的,即,并非所有样本及其邻居都属于同一簇。 3.2节实验表明,与仅在样本及其扩充之间保持一致性相比,选择K≥1可以显着改善结果,如[24,21]所示。
讨论。与[40,25,49,2,34,59,52]不同,我们没有在损失中包括重建准则,因为我们的目标任务没有明确要求这样做。 毕竟,我们只对从输入信号编码的少量信息感兴趣,而不对通常需要的大多数信息的重构标准感兴趣。 值得注意的是,在我们的案例中,一致性是通过损失中的点积项在单个样本的水平上实现的,而不是在类上联合分布的近似值上[24,21]。 我们认为,这种选择允许以更直接的方式表达一致性。
- 通过自标签微调
2.2节中的语义聚类损失强加了样本及其邻居之间的一致性。 更具体地说,每个样本都与K≥1个邻居合并,其中一些不可避免地不属于同一语义集群。 这些假阳性的例子导致了对网络不确定性的预测。 同时,我们通过实验观察到,具有高度可信的预测(p m a x ≈ 1 p_{max≈1}pmax≈1)的样本倾向于被归类为适当的聚类。 实际上,在聚类期间网络形成的高度自信的预测可以被视为每个类别的“原型”(请参见第3.5节)。 与先前的工作[6,4,52]不同,这使我们能够以更可靠的方式基于预测的置信度来选择样本。 因此,我们提出一种自标记方法[43,31,46],以利用已经很好分类的示例,并纠正由于附近邻居噪声而导致的错误。
特别地,在训练期间,通过对输出处的概率进行阈值选择,即p m a x p_{max}pmax>阈值来选择置信样本。 对于每个置信样本,通过将样本分配给其预测聚类来获得伪标记。 交叉熵损失用于更新获得的伪标记的权重。 为避免过度拟合,我们对置信样本的增强版本计算交叉熵损失。 随着网络逐渐变得更加确定,自标记步骤允许网络进行自我校正,从而向混合中添加更多样本。 我们参考3.2节进行具体实验。
算法1总结了该方法的所有步骤。 我们进一步将其称为SCAN,即采用最近邻居的语义聚类。
实验
- 实验设置
数据集。在CIFAR10 [27],CIFAR100-20 [27],STL10 [9]和ImageNet [11]上进行了实验评估。 我们首先关注较小的数据集。 ImageNet上的结果将在3.5节中单独讨论。 一些先前的工作[24,6,52,54]在完整的数据集上进行了训练和评估。 不同地,我们分别使用train和val进行训练和评估。 这样做可以研究新颖的未见示例的方法的泛化性质。 请注意,与先前的工作相比,这不会导致任何不公平的优势。 结果报告为10次不同运行的平均值和标准偏差。 最后,所有实验均使用相同的主干,增强,前置任务和超参数执行。
训练设置。我们使用标准的ResNet-18主干网络。对于每个样本,通过基于噪声对比估计(NCE)的实例区分任务确定20个最近的邻居[51]。对于较小的数据集,我们采用SimCLR [7]实现实例判别任务,而在ImageNet上采用MoCo [8]实现。所选的前置任务满足方程式1 w.r.t中的特征不变性约束。应用于增加输入图像的变换。特别是,每幅图像都是独立于应用变换的独特实例。为了加快训练速度,我们转移了从前置任务获得的权重以启动聚类步骤(第2.2节)。我们使用大小为128的批处理对100个epoch执行聚类步骤。熵项的权重设置为λ=5。更高的权重可避免训练过程中的样本过早分组。结果似乎对λ的微小变化不敏感。在聚类步骤之后,我们使用阈值为0.99(第2.3节)的自标记过程训练了另外200个epoch。加权的交叉熵损失可补偿整个群集中置信样本之间的不平衡。类别权重与阈值化后批次中的出现次数成反比。网络权重通过Adam[25]以学习速率1 0 − 4 10^{-4}10−4和权重衰减1 0 − 4 10^{-4}10−4进行更新。通过在聚类和自标记步骤中组合四个随机选择的RandAugment [10]变换,可以大大增强图像。在固定间隔之间统一采样转换参数。有关更多详细信息,请访问补充材料。
**验证评估。**在聚类步骤中,我们基于最低的损失选择最佳的模型。 在自标记步骤中,当置信样本数量达到平稳时,我们将保存模型的权重。 由于我们无法访问带有标签的验证集,因此我们遵循这些做法。
- 消融实验
方法。在表1中,我们对CIFAR10进行了消融研究,衡量我们方法的不同部分的性能收益。NCE前置任务的K均值聚类导致最低的准确性(65.9%),并且具有较大的差异(5.7%)。这是可以预料的,因为群集分配可能不平衡(图3),并且不能保证与ground truth保持一致。有趣的是,对于基于端到端学习方案的无监督分类方法,将K-means应用到前置特征的表现优于先前的最先进的方法(请参见第3.3节)。该观察结果支持我们的主要主张,即,将特征学习与聚类分开是有益的。通过SCAN损失更新网络权重-通过SimCLR转换增加输入图像-胜过K均值(+ 15.9%)。请注意,SCAN损耗与K均值有些相关,因为这两种方法都采用了前置特征作为聚类图像之前的特征。不同的是,我们的损失避免了聚类退化的问题。我们还研究了在训练过程中使用不同增强策略的效果。将RandAgument(RA)的转换应用于样本及其附近的邻居,可以进一步提高性能(78.7%对81.8%)。这可以解释为增强过程通过施加其他不变性来帮助减少求解空间。
通过自标记对网络进行微调可进一步提高聚类分配的质量(81.8%至87.6%)。 在自我标记过程中,网络会逐渐变得更加自信,以进行自我纠正(请参见图4)。 重要的是,为了成功地应用自标记,需要进行增强转换(请参见表1或图5)。 我们假设这样做是为了防止网络在已经很好分类的示例中过度拟合。 最后,图6显示了自我标记过程对阈值不敏感。
前置任务。我们研究了使用不同的前置任务挖掘最近的邻居的影响。 特别是,我们考虑了[51,7]和RotNet [16]之前实例区分任务的两种不同实现。 后者训练网络以预测图像旋转。 结果,在通过RotNet预训练的模型的嵌入空间中,图像X i X_iXi及其增强T [ X i ] T [X_i]T[Xi]之间的距离并未最小化(请参见公式1)。 不同的是,实例判别任务满足不变性标准w.r.t。 使用的扩充。 表2显示了CIFAR10上的结果。
邻居数量。图7显示了在聚类步骤中使用不同数量的最近邻居K的影响。 结果对K的值不是很敏感,甚至在将K增加到50时也保持稳定。这是有益的,因为我们不必在非常新的数据集上微调K的值。 实际上,当将K的值增加到一定值时,鲁棒性和准确性都会提高。 当仅对图像及其增强执行一致的预测时,我们还考虑角点情况K = 0。 与K = 5相比,所有三个数据集的性能下降,CIFAR10分别为56.3%vs 79.3%,CIFAR100-20分别为24.6%vs 41.1%,STL10则为47.70%vs 69.8%。 这证实了通过在样本与其最近的邻居之间执行连贯的预测,可以学习到更好的表示。
收敛。 图8显示了当从最近的邻居(即,属于不同类别的样本对)中去除误报时的结果。 就分类精度而言,结果可以被认为是所提出方法的上限。 一个理想的特性是,聚类能够快速地与实际情况保持一致,在CIFAR10和STL10上获得接近完全监督的性能,使用的邻居数量K的增长相对较小。CIFAR100-20的性能改进较低,这可以由用于测量精度的超类的模糊性来解释。例如,没有确切的方法可以将杂食动物或食肉动物等类别归为一组。
- 和最好的结果的比较。
比较。表3在三种不同的基准上将我们的方法与最新技术进行了比较。我们基于聚类准确性(ACC),归一化互信息(NMI)和调整后的rand指数(ARI)评估结果。所提出的方法在所有三个指标(例如,就准确性而言,CIFAR10为+ 26.6%,CIFAR100-20为+ 25.0%,STL10为+ 21.3%。我们还将与代表学习的最新技术进行比较[7](Pretext + K-means)。如3.2节所示,我们的方法在前置特征方面胜过了K-means的应用。最后,当以完全监督的方式解决问题时,我们还将包括结果。我们的模型在CIFAR-10和STL-10上获得了接近监督的性能。由于使用超类,因此在CIFAR100-20上的性能差距更大。
其他优点。与先前的工作[6,24,21]相比,我们不必执行任何针对数据集的微调。此外,可以在单个GPU上的6小时内获得CIFAR10上的结果。作为比较,从[24]中训练模型至少需要一天的训练时间。
- 过度聚类
到目前为止,我们假设已经掌握了ground truth类的数量。 使用匈牙利匹配算法评估方法的预测。 但是,如果簇的数量不再与基本事实类的数量匹配,会发生什么。 表3列出了当我们高估ground truth类的数量时的结果,例如 我们将CIFAR10分为20个类别,而不是10个类别。 对于CIFAR10(87.6%至86.2%)和STL10(76.7%至76.8%),分类准确性保持稳定,而对于CIFAR100-20(45.9%至55.1%)分类精度有所提高。 我们得出的结论是,该方法不需要了解群集的确切数目。 我们假设CIFAR100-20的性能提高与类内差异较高有关。 更具体地说,CIFAR100-20将多个对象类别归为超类。 在这种情况下,过度聚类更适合于解释类内方差。
- ImageNet
设置。我们考虑在大型ImageNet数据集上进行无监督图像分类的问题[11]。 我们首先考虑随机选择的50、100和200个类别的较小子集。 50和100类的集合分别是100和200类的子集。 训练设置的其他详细信息可以在补充材料中找到。
评估。表4比较了我们的结果与在MoCo [8]的前置特征上应用Kmeans的结果。 出乎意料的是,K-means的应用已经很好地完成了这一艰巨的任务。 我们得出结论,这些前置特征非常适合于语义聚类的下游任务。 用SCAN损失训练模型再次胜过K-means的应用。 此外,通过自标记对模型进行微调时,结果会进一步得到改善。 我们不包括现有技术水平的数字[24],因为在运行公开代码时无法在ImageNet上获得令人信服的结果。 我们请读者参考补充材料,以获取有关ImageNet-50的其他定性结果。
典型表现。 在使用SCAN-loss训练模型后,我们可以看到不同的群集。 具体来说,我们在每个聚类中找到最接近前10个最自信样本均值的样本。 结果与匹配的ground truth类别的名称一起显示在图9中。重要的是,我们观察到,除了“ oboe”和“ guacamole”(红色)外,发现的样本与数据集的类别完全吻合。 此外,图像中清楚地显示了每个对象类别的区分特征。 因此,我们将获得的样本视为各个聚类的“原型”。 注意,进行的实验与原型网络非常吻合[45]。
ImageNet -1000 classes。最后,在完整的ImageNet数据集上训练模型。 图11显示了来自验证集的图像,这些图像已由我们的模型分配给同一群集。 获得的群集在语义上是有意义的,例如 飞机,汽车和灵长类动物。 此外,聚类捕获了各种各样的不同背景,观点等。我们得出的结论是,(在很大程度上)模型预测对于不改变语义的图像特征是不变的。 另一方面,基于ImageNet真实注释,并非所有样本对都应分配给同一群集。 例如,真相注释在不同的灵长类之间进行区分,例如 黑猩猩,狒狒,叶猴等。我们认为,在ImageNet的情况下,没有一种根据图像的语义对图像进行分类的正确方法。 即使是对于人类注释者,根据ImageNet类的图像,无需先验知识,将每个聚类在一起也不是一件容易的事。
根据ImageNet层次结构,我们选择以下超类的类实例:狗,昆虫,灵长类,蛇,衣服,建筑物和鸟类。图10显示了所选类别的混淆矩阵。混淆矩阵具有块对角线结构。结果表明,错误分类的示例倾向于从同一超类中分配给其他聚类,例如该模型混淆了两种不同的犬种。我们得出的结论是,该模型已学会将具有相似语义的图像分组在一起,而其预测错误则可归因于缺少注释,这些注释可能无法区分某些类之间的细微差别。最后,表5在将1%的图像用作标记数据时,将我们的方法与最近的半监督学习方法进行了比较。我们在ImageNet上获得以下定量结果:Top-1:39.9%; Top-5:60.0%; NMI:72.0%; ARI:27.5%。在不使用标签的情况下,我们的方法优于几种半监督学习方法。这进一步证明了我们方法的优势。
结论
我们提出了一种无监督图像分类的新颖框架。 与采用端到端策略的最新作品相比,所提出的方法具有许多优势。 实验评估表明,对于各种数据集,该方法的性能大大优于先前的工作。 此外,ImageNet上的积极结果表明,语义聚类可以应用于大规模数据集。 受这些发现的鼓舞,我们认为我们的方法允许对其他领域的一些扩展,例如 语义分割,半监督学习和少样本学习。