【读点论文】Deep Clustering for Unsupervised Learning of Visual Features聚类生成伪标签,伪标签指导网络学习更具判别力特征,左脚踩右脚
本文提出了DeepCluster,一种用于无监督视觉特征学习的深度聚类方法。该方法结合卷积神经网络(CNN)和标准聚类算法(如k-means),通过迭代进行特征聚类和网络参数更新,实现端到端的无监督训练。具体步骤包括:首先使用当前网络提取特征,通过k-means生成伪标签,然后利用这些伪标签更新网络参数。为避免平凡解,DeepCluster处理空簇和不平衡簇问题,如重新分配空簇中心、按簇大小加权损
Deep Clustering for Unsupervised Learning of Visual Features
Abstract
- 聚类是一类在计算机视觉中被广泛应用和研究的无监督学习方法。几乎没有做什么工作来使其适应大规模数据集上视觉特征的端到端训练。在这项工作中,我们提出了DeepCluster,一种联合学习神经网络参数和结果特征的聚类分配的聚类方法。DeepCluster使用标准聚类算法kmeans对特征进行迭代分组,并使用后续分配作为监督来更新网络的权重。我们将DeepCluster应用于在ImageNet和YFCC100M等大型数据集上对卷积神经网络进行无监督训练。在所有标准基准测试中,最终的模型都远远超过了当前的技术水平。
- 论文地址:[1807.05520] Deep Clustering for Unsupervised Learning of Visual Features
- 项目地址:GitHub - facebookresearch/deepcluster: Deep Clustering for Unsupervised Learning of Visual Features
- 现有的聚类方法很少用于端到端训练视觉特征,尤其是在大规模数据集上。传统方法如 k-means 直接应用会导致平凡解,比如特征归零。因此,问题在于如何将聚类算法与深度神经网络结合,实现端到端的无监督特征学习,避免平凡解,并在大规模数据上有效。DeepCluster是一种迭代方法,交替进行特征聚类和网络参数更新。具体来说,使用 k-means 等聚类算法生成伪标签,然后用这些伪标签训练网络,类似于自监督学习,但依赖聚类而非 pretext tasks。实现上,每次迭代中,先用当前网络生成特征,聚类得到伪标签,再用伪标签更新网络参数。同时,通过处理空簇和不平衡簇来避免平凡解,比如重新分配空簇中心,按簇大小加权损失函数。
- 利用聚类生成伪监督信号,引导网络学习 discriminative 特征。通过交替优化特征表示和聚类分配,形成相互促进的过程:更好的特征提升聚类质量,更准确的聚类提供更好的伪标签,从而提升特征质量。这类似于 EM 算法的思想,交替优化两个变量。旨在通过聚类算法与深度神经网络的结合,实现端到端的特征学习框架。核心目标是利用无标注数据训练高效的视觉特征提取器,为后续任务(如图像分类、检测、分割)提供通用特征表示。
Introduction
-
深度学习的发展使得很多领域都取得了惊人的进步,特别是在图像分类领域,准确率已经达到超过人类的水平,然而现在通过改变网络的结构对分类准确率的影响已经越来越小,因此人们把关注点放在扩充数据集上,现有的常见数据集规模相对现在深度学习发展水平来说也是有些不够的,然而扩充数据集不是一件简单的事,许多时候需要进行人工的标注,既然有人为的参与就一定会有错误的出现,这些错误的标注也会成为影响训练效果的因素。因此使用无监督的方法生成更大的数据集也成为了现在研究的需求。
-
本文提出了“Deep Cluster”方法,来捕获通用视觉特征(相当于代替预训练模型作用)。Deep Cluster结合 卷积神经网络 + 标准的聚类方法(K-Means),迭代训练从而使卷积网络获取视觉特征。利用卷积网络提取特征进行聚类,再利用聚类结果对数据集赋予“伪标签”继续训练卷积网。
-
预训练的卷积神经网络(convnets)已经成为大多数计算机视觉应用的构建模块。它们产生优秀的通用特征,可用于提高在有限数据量上学习到的模型的泛化能力。大型全监督数据集ImageNet 的存在推动了convnets预训练的进步。然而,Stock和Cisse 最近提出的经验证据表明,ImageNet上最先进的分类器的性能在很大程度上被低估了,几乎没有未解决的错误。这在一定程度上解释了为什么尽管近年来提出了许多新颖的架构,但性能仍然饱和。事实上,以今天的标准来看,ImageNet相对较小;它只“包含一百万幅图像,涵盖了物体分类的特定领域。一种自然的前进方式是建立一个更大、更多样化的数据集,可能由数十亿张图像组成。反过来,这将需要大量的手动注释,尽管社区多年来积累了众包方面的专业知识。用原始元数据代替标签会导致视觉表现中的偏差,并带来不可预测的后果。这需要可以在没有监督的情况下在互联网规模的数据集上训练的方法。
-
无监督学习已经在机器学习社区中得到广泛研究,并且用于聚类、维度减少或密度估计的算法经常用于计算机视觉应用中。例如,“特征包”模型使用手工制作的局部描述符的聚类来产生良好的图像级特征。它们成功的一个关键原因是,它们可以应用于任何特定的领域或数据集,如卫星或医学图像,或者用新的模式捕获的图像,如深度,其中注释并不总是大量可用。
-
几项工作表明,有可能将基于密度估计或维度缩减的无监督方法应用于深度模型,从而产生有希望的通用视觉特征。尽管聚类方法在图像分类中取得了最初的成功,但很少有作品被提出来使它们适应convnets的端到端训练,并且从未规模化。一个问题是,聚类方法主要是为固定特征之上的线性模型设计的,如果必须同时学习这些特征,它们几乎不起作用。例如,用k-means学习一个convnet将导致一个平凡的解决方案,其中特征被置零,并且聚类被折叠成单个实体。
-
在这项工作中,我们提出了一种新的聚类方法,用于大规模的端到端训练。我们表明,有可能获得有用的通用视觉特征与聚类框架。我们的方法,总结在图1中,包括交替进行图像描述符的聚类和通过预测聚类分配来更新convnet的权重。为简单起见,我们将研究重点放在k均值上,但也可以使用其他聚类方法,如幂迭代聚类(PIC) 。整个管道足够接近一个convnet的标准监督训练,以重用许多常见的技巧。与自我监督方法不同,聚类的优势在于需要很少的领域知识,并且没有来自输入的特定信号。尽管简单,我们的方法在ImageNet分类和传输任务上取得了比以前发表的无监督方法显著更高的性能。
-

-
图1:所提出方法的说明:我们迭代地对深度特征进行聚类,并使用聚类分配作为伪标签来学习convnet的参数。
-
-
最后,我们通过修改实验协议,特别是训练集和convnet架构,来探讨我们的框架的健壮性。由此产生的一组实验扩展了Doersch等人发起的关于这些选择对无监督方法的性能的影响的讨论。我们证明了我们的方法对于体系结构的改变是健壮的。用VGG 替换AlexNet显著提高了特性的质量及其后续的传输性能。更重要的是,我们讨论了使用 ImageNet 作为无监督模型的训练集。虽然它有助于理解标签对网络性能的影响,但 ImageNet 有一种特殊的图像分布,这种分布继承自它对细粒度图像分类挑战的使用:它由平衡良好的类组成,例如包含各种各样的狗品种。作为替代,我们考虑 Thomee 等人的YFCC100M数据集的随机Flickr图像。我们表明,我们的方法在这种未固化的数据分布上进行训练时,保持了最先进的性能。最后,当前的基准侧重于无监督的convnets捕获类级信息的能力。我们还建议在图像检索基准上对它们进行评估,以衡量它们捕获实例级信息的能力。
-
在本文中,我们做出了以下贡献:(I)一种新的无监督的方法,用于convnets的端到端学习,它可以与任何标准的聚类算法(如k-means)一起工作,并且需要最少的附加步骤;(ii)在无监督学习中使用的许多标准迁移任务上的最新性能;(iii)当在未固化的图像分布上训练时,性能高于现有技术水平;(iv)关于无监督特征学习中的当前评估协议的讨论。
-
传统无监督学习方法(如自监督学习)依赖手工设计的 pretext tasks(如预测图像块位置、颜色化),需领域知识且泛化性有限。聚类作为经典无监督方法,虽在浅层模型中有效,但直接应用于深度神经网络时存在两大挑战:
- 平凡解问题:若直接用 k-means 等聚类算法优化深度特征,网络可能退化为输出零向量,导致所有样本聚为一类
- 端到端训练缺失:现有聚类方法多基于固定特征,难以与神经网络参数学习联合优化,尤其在大规模数据集上缺乏有效方案
-
提出迭代聚类 - 训练范式,交替进行两步操作。聚类阶段用当前网络提取特征,通过 k-means 等算法生成伪标签(簇分配)。训练阶段将伪标签作为监督信号,更新网络参数以预测簇分配,形成闭环优化。
- 伪标签生成采用 k-means 聚类特征向量,最小化样本与簇中心的欧式距离,得到每个样本的簇分配 y n y_n yn。
- 避免平凡解:空簇处理时聚类中若出现空簇,随机选择非空簇中心并添加扰动,重新分配样本。不平衡簇加权处理时按簇大小的倒数加权损失函数,避免少数大簇主导训练。
-
通过聚类生成伪标签,替代人工标注,本质是利用数据内在结构(如相似样本聚为一类)构建监督信号。特征学习与聚类分配相互促进 —— 高质量特征提升聚类准确性,准确的伪标签指导网络学习更具判别力的特征。k-means 的欧式距离约束迫使同类样本特征接近,不同类样本特征远离,形成可分的特征空间
Related Work
-
特征的无监督学习。与我们的工作相关的几种方法在没有监督的情况下学习深度模型。Coates和Ng 也使用k-means来预训练convnets,但以自下而上的方式顺序学习每一层,而我们以端到端的方式进行。其他聚类损失已被考虑用于联合学习convnet特性和图像聚类,但它们从未经过大规模测试,因此无法对现代convnet架构进行全面研究。特别令人感兴趣的是,Yang等人用递归框架迭代地学习convnet特征和聚类。他们的模型在小数据集上提供了有前途的性能,但可能难以扩展到convnets具有竞争力所需的图像数量。与我们的工作更接近的是,Bojanowski和Joulin 在一个大数据集上学习视觉特征,并试图保留流经网络的信息。他们的方法以类似于SVM 的方式区分图像,而我们只是简单地对它们进行聚类。
-
自我监督学习。一种流行的无监督学习形式,称为自我监督学习,使用代理任务,用直接从原始输入数据计算的伪标签来代替人工标注的标签。例如,Doersch等人使用图像中补丁相对位置的预测作为代理任务,而Noroozi和法瓦罗 训练网络在空间上重新排列打乱的补丁。空间线索的另一个用途是Pathak等人的工作,其中丢失的像素是基于它们的环境来猜测的。Paulin等人使用图像检索设置来学习补丁级卷积核网络。其他人通过预测连续帧之间的摄像机变换,利用跟踪的补丁的时间一致性或基于运动分割视频来利用视频中可用的时间信号。从空间和时间相干性来看,已经探索了许多其他信号:图像彩色化,跨通道预测,声音 或 实例计数。最近,已经提出了几种组合多个线索的策略。与我们的工作相反,这些方法依赖于领域,需要专业知识来仔细设计一个可能导致可转移特征的代理任务。
-
生成模型。最近,无监督学习在图像生成方面取得了很大进展。通常,利用自动编码器、生成对抗网络(GAN) 或者更直接地利用重建损失,在预定义的随机噪声和图像之间学习参数化映射。特别令人感兴趣的是,GAN的鉴别器可以产生视觉特征,但它们的性能相对令人失望。Donahue等人和Dumoulin等人已经证明,在gan中添加编码器可以产生更具竞争力的视觉特性。
Method
- 在简单介绍了convnets的监督学习之后,我们描述了我们的无监督方法以及它的优化特性。
Preliminaries
-
基于统计学习的现代计算机视觉方法需要良好的图像特征。在这种情况下,convnets 是将原始图像映射到固定维数的向量空间的常用选择。当对足够多的数据进行训练时,它们在标准分类基准上不断取得最佳性能。我们用 fθ 表示convnet映射,其中 θ 是相应的参数集。我们将通过将这种映射应用于图像而获得的向量称为特征或表示。给定一个训练集 X = { x 1 , x 2 , . . . , x N } X =\{ x_1,x_2,...,x_N \} X={x1,x2,...,xN} ;在N幅图像中,我们希望找到一个参数 θ*,使得映射 fθ* 产生良好的通用特征。
-
这些参数传统上是在监督下学习的,即每个图像 xn 都与 { 0 , 1 } k \{0,1\}^k {0,1}k 中的标签 yn 相关联。这个标签表示图像属于k个可能的预定义类别之一。参数化分类器 gW 预测特征 fθ(xn) 顶部的正确标签。分类器的参数W和映射的参数 θ 然后通过优化以下问题而被联合学习:
-
min θ , W 1 N ∑ n = 1 N l ( g W ( f θ ( x n ) ) , y n ) \min_{\theta,W}\frac1N\sum^N_{n=1}l(g_W(f_\theta(x_n)),y_n) θ,WminN1n=1∑Nl(gW(fθ(xn)),yn)
-
其中 l 是多项式逻辑损失,也称为负对数softmax函数。使用小批量随机梯度下降 和 反向传播来计算梯度,从而最小化该成本函数。
-
Unsupervised learning by clustering
-
当 θ 从高斯分布中采样时,如果不进行任何学习,fθ 不会产生良好的特征。然而,这种随机特征在标准传输任务上的性能远远高于机会水平。例如,在随机 AlexNet 的最后一个卷积层之上的多层感知器分类器在 ImageNet 上的准确率为12%,而概率为0.1%。随机卷积神经网络的良好性能与其卷积结构密切相关,卷积结构在输入信号上具有很强的先验性。这项工作的想法是利用这种弱信号来引导convnet的判别能力。我们对convnet的输出进行聚类,并将后续的聚类分配用作“伪标签”来优化方程(1)。这种深度聚类(DeepCluster)方法迭代地学习特征并对其进行分组。
-
聚类已被广泛研究,并为各种情况开发了许多方法。在没有比较点的情况下,我们专注于标准的聚类算法k-means。其他聚类算法的初步结果表明,这种选择并不重要。k-means以一组向量作为输入,在我们的例子中是convnet产生的特征 fθ(xn),并根据几何标准将它们聚类成k个不同的组。更确切地说,它通过解决以下问题联合学习 d×k 质心矩阵 C 和每个图像 n 的聚类分配 yn:
-
min C ∈ R d × k 1 N ∑ n = 1 N min y n ∈ { 0 , 1 } k ∥ f θ ( x n ) − C y n ∥ 2 2 s u c h t h a t y n ⊤ 1 k = 1. (2) \operatorname* {m i n}_{C \in\mathbb{R}^{d \times k}} \frac{1} {N} \sum_{n=1}^{N} \operatorname* {m i n}_{y_{n} \in\{0, 1 \}^{k}} \| f_{\theta} ( x_{n} )-C y_{n} \|_{2}^{2} \quad\mathrm{s u c h ~ t h a t} \quad y_{n}^{\top} 1_{k}=1. \tag{2} C∈Rd×kminN1n=1∑Nyn∈{0,1}kmin∥fθ(xn)−Cyn∥22such thatyn⊤1k=1.(2)
-
-
解决这个问题提供了一组最优分配 ( y n ∗ ) n ≤ n (y^*_n)_n≤n (yn∗)n≤n 和一个质心矩阵C*。然后,这些分配被用作伪标签;我们不使用质心矩阵。总体而言,DeepCluster在使用方程(2)对特征进行聚类以产生伪标签和使用方程(1)预测这些伪标签来更新convnet的参数之间交替。这种交替程序容易产生 trivial solutions;我们将在下一节中描述如何避免这种退化解。
Avoiding trivial solutions
-
trivial solutions 的存在并不特定于神经网络的无监督训练,而是任何联合学习判别分类器和标签的方法。即使应用于线性模型,判别聚类也会受到这个问题的困扰。解决方案通常基于约束或惩罚每个聚类簇的最小点数。这些项是在整个数据集上计算的,这不适用于大规模数据集上的convnet训练。在本节中,我们简要描述了这些琐碎解决方案的原因,并给出了简单且可扩展的解决方法。
-
空聚类簇。判别模型学习类之间的决策边界。最优决策边界是将所有输入分配给单个聚类簇。这个问题是由于缺乏防止空聚类簇的机制造成的,在线性模型和卷积神经网络中都会出现。特征量化中使用的一个常见技巧是在k-means优化过程中自动重新分配空簇。更确切地说,当一个簇变空时,我们随机选择一个非空簇,并使用其质心和一个小的随机扰动作为空簇的新质心。然后,我们将属于非空簇的点重新分配给两个结果簇。
-
Trivial parametrization. 如果将绝大多数图像分配给几个聚类簇,参数θ将专门区分它们。在除一个聚类簇外的所有聚类簇都是单例的最戏剧性的场景中,最小化方程(1)会导致一个微不足道的参数化,其中convnet将预测相同的输出,而不管输入如何。当每个类别的图像数量高度不平衡时,在监督分类中也会出现这个问题。例如,元数据和标签一样,呈现出Zipf分布,少数标签主导着整个分布。规避此问题的一种策略是基于类上的均匀分布或伪标签对图像进行采样。这相当于通过其指定簇的大小的倒数来加权输入对方程(1)中损失函数的贡献。
Implementation details
-
Convnet架构。为了与之前的工作进行比较,我们使用了标准的 AlexNet 架构。它由五个卷积层组成,带有96、256、384、384和256个滤波器;以及三个完全连接的层。我们删除了局部响应归一化层,并使用批归一化。我们还考虑了具有批处理规范化的VGG-16架构。无监督的方法通常不能直接对颜色起作用,不同的策略被认为是替代方案。我们应用基于Sobel滤波器的固定线性变换来去除颜色并增加局部对比度。
-
训练数据。除非另有说明,否则我们在ImageNet上训练DeepCluster。它包含均匀分布的1.3M图像;1000个类。
-
优化。我们对中心裁剪图像特征进行聚类,并在训练网络时执行数据增强(随机水平翻转和随机大小和纵横比的裁剪)。这增强了数据增强的不变性,这对特征学习很有用。该网络使用dropout、恒定步长、权重θ 的 l2 惩罚和 0.9 的动量进行训练。每个小批量包含256个图像。对于聚类,特征被PCA缩减到256维,白化 和 “l2-归一化”。我们使用Johnson等人的k-means实现。请注意,运行k-means 需要三分之一的时间,因为需要对整个数据集进行前向传递。人们可以每 n 个 epoch 重新分配聚类簇,但我们发现我们在ImageNet上的设置(每个epoch更新聚类簇)几乎是最优的。在Flickr上,epoch 的概念消失了:在参数更新和聚类簇重新分配之间进行权衡变得更加微妙。因此,我们几乎保持了与ImageNet中相同的设置。我们在AlexNet的Pascal P100 GPU上训练了500个迭代周期的模型,这需要12天的时间。
-
超参数选择。我们在下游任务上选择超参数,即在Pascal VOC的验证集上进行对象分类,而不进行微调。我们使用公开可用的 GitHub - philkr/voc-classification: Train and evaluate VOC 2007 / 2012 image classification models. We used this code to evaluate several feature learning algorithms. 代码。
Experiments
- 在一组初步的实验中,我们研究了DeepCluster在训练过程中的行为。然后,在将我们的方法与标准基准上的先前最先进的模型进行比较之前,我们对DeepCluster学习的过滤器进行了定性评估。
Preliminary study
-
我们通过归一化互信息(NMI)来衡量同一数据的两个不同任务A和B之间共享的信息,定义为:
-
N M I ( A ; B ) = I ( A ; B ) H ( A ) H ( B ) NMI(A; B) =\frac {I(A; B)}{\sqrt {H(A)H(B)}} NMI(A;B)=H(A)H(B)I(A;B)
-
其中 I 表示互信息,H 表示熵。此度量可以应用于来自聚类簇或真实标签的任何分配。如果两个赋值 A 和 B 是独立的,则 NMI 等于 0。如果其中一个可以从另一个确定地预测,则NMI等于1。
-
聚类簇和标签之间的关系。图2(a)显示了训练期间聚类簇分配和ImageNet标签之间NMI的演变。它衡量模型预测类级信息的能力。请注意,我们仅将此度量用于此分析,而不用于任何模型选择过程。聚类簇和标签之间的依赖性随着时间的推移而增加,表明我们的特征逐渐捕获与对象类相关的信息。
-

-
图2:初步研究。(a):聚类质量随训练周期的演变;(b):在每个分组步骤中,分组重新分配的演变;(c):验证不同k选择的mAP分类性能。
-
-
epoch 之间的重新分配次数。在每个时期,我们将图像重新分配给一组新的聚类,但不保证稳定性。在时间 t1 和 t 测量簇之间的NMI 可以洞察我们模型的实际稳定性。图2(b)显示了该措施在训练过程中的演变。NMI正在增加,这意味着重新分配的次数越来越少,聚类簇随着时间的推移趋于稳定。然而,NMI在0.8以下饱和,这意味着很大一部分图像在纪元之间定期重新分配。在实践中,这对训练没有影响,模型也没有分歧。
-
选择聚类簇的数量。我们测量了k-means中使用的聚类数量k对模型质量的影响。我们报告了与超参数选择过程中相同的下游任务,即Pascal VOC 2007分类验证集上的mAP。我们在对数尺度上改变k,并在图2(c)中报告300个 epoch 后的结果。每个k在相同迭代次数后的性能可能无法直接比较,但它反映了这项工作中使用的超参数选择过程。当k=10000 时,性能最佳.假设我们在ImageNet上训练我们的模型,人们会期望k=1000会产生最佳结果,但显然一些过度分割是有益的。
Visualizations
-
第一层过滤器。图3显示了在原始RGB图像和用Sobel滤波预处理的图像上用DeepCluster训练的AlexNet第一层的滤波器。之前已经注意到在原始图像上学习卷积神经的困难。如图3的左侧面板所示,大多数过滤器只捕获颜色信息,这些信息通常对对象分类起着很小的作用。通过Sobel预处理获得的滤波器类似于边缘检测器。
-

-
图3:在原始RGB输入(左)或 Sobel 滤波(右)后,在无监督 ImageNet 上训练的AlexNet的第一层过滤器。
-
-
探索更深层次。我们通过学习最大化其激活的输入图像来评估目标滤波器的质量。我们遵循Yosinki等人描述的过程,在目标滤波器和同一层的其他滤波器之间使用交叉熵函数。图4显示了这些合成图像以及YFCC100M中100万张图像子集中的9张顶部激活图像。正如预期的那样,网络中的深层似乎捕捉到了更大的纹理结构。
-

-
图4:在ImageNet上用DeepCluster训练的AlexNet的conv1、conv3和conv5层中,YFCC100M的100万张图像子集的过滤器可视化和前9张激活图像。通过学习使对目标滤波器的响应最大化的输入图像来获得滤波器可视化。
-
-
然而,如图5的第二行所示,最后一个卷积层中的一些滤波器似乎只是简单地复制了之前层中已经捕获的纹理。这一结果证实了张等人的观察,即conv3或conv4的特征比conv5的特征更具鉴别性。最后,图5显示了一些conv5过滤器的前9个激活图像,这些图像在语义上似乎是连贯的。最上面一行的过滤器包含有关与对象类高度腐蚀的结构的信息。最下面一行的过滤器似乎会触发风格,比如绘画或抽象形状。
-

-
图5:YFCC100M中1000万张随机子集的前9张激活图像,用于最后一个卷积层中的目标滤波器。顶行对应于对包含对象的图像的激活敏感的过滤器。最下面一行展示了对风格效果更敏感的过滤器。例如,滤波器119和182似乎分别受到背景模糊和景深效果的激发。
-
Linear classification on activations
-
根据Zhang等人的研究,我们在不同的冻结卷积层上训练了一个线性分类器。这种与监督特征的逐层比较显示了convnet开始特定于任务的地方,即专门用于对象分类。我们在表1中报告了ImageNet和Places数据集上的实验结果。我们通过对训练集进行交叉验证来选择超参数。在ImageNet上,DeepCluster 的性能比conv3到conv5层的最新技术高出3-5%。在conv4层中观察到最大的改进,而conv1层的性能较差,可能是因为Sobel滤波丢弃了颜色。与第4.2节的过滤器可视化一致,conv3比conv5效果更好。
-

-
表1:使用AlexNet卷积层的激活作为特征的ImageNet和Places的线性分类。我们报告了中心作物的分类准确性。其他方法的数字来自Zhang等人。
-
-
最后,DeepCluster和有监督AlexNet之间的性能差异在更高层上显著增长:在conv2-conv3层,差异仅为6%左右,但在conv5层,这一差异上升到 14.4%,这标志着AlexNet可能存储了大部分类级信息。在补充材料中,我们还报告了在最后一层训练MLP的准确性;DeepCluster的表现比最新技术高出8%。
-
在Places数据集上的相同实验提供了一些有趣的见解:像DeepCluster一样,在ImageNet上训练的监督模型在更高层(conv4与conv5)的性能下降。此外,DeepCluster产生的conv3-4特征与用ImageNet标签训练的特征相当。这表明,当目标任务离ImageNet覆盖的域足够远时,标签就不那么重要了。
Pascal VOC 2007
-
最后,我们在 Pascal VOC 上对 DeepCluster 在图像分类、对象检测和语义分割方面进行了定量评估。Pascal VOC上训练集的相对较小的大小(2500张图像)使这种设置更接近于“现实世界”的应用程序,其中用大量计算资源训练的模型适用于具有少量实例的任务或数据集。使用 faster rcnn 【GitHub - rbgirshick/py-faster-rcnn: Faster R-CNN (Python implementation) – see https://github.com/ShaoqingRen/faster_rcnn for the official MATLAB version】 获得检测结果;使用 Shelhamer 等人的代码 【GitHub - shelhamer/fcn.berkeleyvision.org: Fully Convolutional Networks for Semantic Segmentation by Jonathan Long*, Evan Shelhamer*, and Trevor Darrell. CVPR 2015 and PAMI 2016.】 获得分割结果.为了进行分类和检测,我们报告了Pascal VOC 2007测试集的性能,并在验证集上选择了我们的超参数。对于语义分割,在相关工作之后,我们报告了Pascal VOC 2012验证集的性能。
-
表2 总结了 DeepCluster 与其他特征学习方法在三个任务上的比较。对于之前的实验,我们在所有三个任务中的表现都优于之前的无监督方法。对现有技术进行微调的改进在语义分割方面最大(7.5%)。在检测方面,DeepCluster的性能仅略优于之前发布的方法。有趣的是,微调随机网络的性能与许多无监督方法相比,但如果只学习 fc6-8,性能会很差。因此,我们还报告了使用 fc6-8 进行DeepCluster 和一些基线的检测和分割。这些任务更接近于无法进行微调的实际应用程序。正是在这种背景下,我们的方法与最新技术之间的差距更大(分类高达9%)。
-

-
表2:Pascal VOC上分类、检测和分割的最新无监督特征学习方法的比较。*表示使用 [Data-dependent initializations of convolutional neural networks] 的数据相关初始化。我们生成的其他方法的数字用 ✝ 标记。
-
Discussion
- 目前评估无监督方法的标准涉及使用在ImageNet上训练并在类级任务上测试的AlexNet架构。为了理解和衡量这个管道在DeepCluster上引入的各种偏差,我们考虑了不同的训练集、不同的架构和实例级识别任务。
ImageNet versus YFCC100M
-
ImageNet是一个为细粒度对象分类挑战而设计的数据集。它是面向对象的,手动注释并组织成平衡良好的对象类别。根据设计,DeepCluster 倾向于平衡聚类簇,如上所述,我们的聚类簇 k 的数量与ImageNet中的标签数量大致相当。当在ImageNet上训练时,这可能会给 DeepCluster 带来不公平的优势,使其优于其他无监督方法。为了衡量这种效应的影响,我们考虑从YFCC100M数据集中随机选择 1M 图像的子集进行预训练。YFCC100M中使用的标签统计数据表明,底层 object类 严重不平衡,导致数据分布对DeepCluster不利。
-
表3显示了与ImageNet相比,YFCC100M上预训练的DeepCluster在Pascal VOC上的性能差异。正如Doersch等人所指出的那样,该数据集不是面向对象的,因此性能预计会下降几个百分点。然而,即使在未修复的Flickr图像上进行训练,DeepCluster在大多数任务上的表现也远远优于当前的技术水平(分类高达+4:3%,语义分割高达+4:5%)。我们在补充材料中报告了其他结果,得出了类似的结论。该实验验证了DeepCluster对图像分布的变化具有鲁棒性,即使这种分布不利于其设计,也能产生最先进的通用视觉特征。
-

-
表3:训练集对DeepCluster性能的影响,如第4.4节所述,是在 Pascal VOC 转移任务上测量的。我们将 ImageNet 与 YFCC100M 中的1M图像子集进行了比较。无论训练集如何,DeepCluster 在大多数任务上都优于最佳发布的数字。我们生成的其他方法的数字用 ✝ 标记
-
AlexNet versus VGG
-
在监督环境中,像 VGG 或 ResNet 这样的深层架构在ImageNet上的精度比 AlexNet 高得多。如果这些架构与无监督方法一起使用,我们应该期待同样的改进。表4 比较了VGG-16和在ImageNet上用DeepCluster训练的AlexNet,并在Pascal VOC 2007对象检测任务上进行了微调测试。我们还报告了用其他无监督方法获得的数字。
-

-
表4:AlexNet和VGG16的Pascal VOC 2007对象检测。
-
-
无论采用哪种方法,更深入的架构都会显著提高目标任务的性能。使用 DeepCluster 训练VGG-16的性能高于最先进的水平,使我们仅比监督的上限低1.4%。请注意,对于两种架构,无监督和有监督方法之间的差异仍然在同一个范围内(即。1.4%).最后,对于较大的架构,与随机基线的差距越来越大,这证明了在监督数据很少的情况下,无监督预训练对复杂架构的相关性。
Evaluation on instance retrieval
- 之前的基准测试衡量了无监督网络捕获类级信息的能力。他们不会评估它是否可以在实例级别区分图像。为此,我们建议将图像检索作为下游任务。我们在两个数据集上遵循Tolias等人的实验方案,即 Oxford Buildings 和 Paris 。表5报告了使用Sobel滤波获得的不同方法训练的VGG-16的性能,Doersch等人和Wang等人除外。这种预处理将牛津数据集上监督VGG-16的mAP提高了5:5分,但在巴黎没有。这可能会为DeepCluster带来类似的优势,但这并不能解释19分的平均差异。有趣的是,与预先训练的模型相比,随机卷积神经网络在这项任务上的表现尤其糟糕。这表明,图像检索是一项预训练至关重要的任务,将其作为下游任务进行研究可以进一步了解无监督方法产生的特征的质量。
-

-
表5:VGG-16在牛津和巴黎数据集上的实例级图像检索的mAP。我们应用分辨率为1024像素和3个网格级别的R-MAC。
-
Conclusion
- 本文提出了一种可扩展的聚类方法,用于convnets的无监督学习。它迭代使用k-means对convnet产生的特征进行聚类,并通过在判别损失中将聚类分配预测为伪标签来更新其权重。如果在ImageNet或YFCC100M等大型数据集上进行训练,它在每个标准传输任务上的性能都明显优于之前最先进的技术。我们的方法对输入几乎不做假设,也不需要太多特定于领域的知识,这使得它成为学习特定于注释稀缺领域的深度表示的好候选者。
Additional results
Classification on ImageNet
- Noroozi 和 Favaro 建议通过冻结卷积层来评估以无监督方式训练的网络,并在ImageNet上使用标签和验证集的报告准确性重新训练完全连接的层。该实验遵循Yosinki等人的观察,即通用特征出现在AlexNet的卷积层中。我们在表1中报告了DeepCluster与其他无监督训练的AlexNet网络以及随机和监督基线的比较。DeepCluster的性能明显优于最先进的无监督方法,其准确率比之前表现最佳的方法高出8%。这意味着DeepCluster将与在监督环境中训练的网络的差距减半。
-

-
表1:DeepCluster和AlexNet在不同数据集上进行监督和非监督预训练的特征比较。一个完整的多层感知器在冻结的预训练特征之上进行再训练。
-
Stopping criterion
- 我们监控使用DeepCluster学习的特征如何在下游任务的训练周期中演变:在Pascal VOC的验证集上进行对象分类,而无需进行微调。我们使用此度量来选择模型的超参数,并检查特征何时停止改进。在图1中,我们展示了此任务的分类准确性和整个训练过程中聚类质量(聚类分配和真实标签之间的NMI)的度量的演变。不出所料,我们注意到聚类和特征质量遵循相同的动态。经过400个训练周期后,表现达到饱和。
-

-
图1:红色:验证mAP Pascal VOC分类性能。蓝色:聚类质量的演变。
-
Further discussion
- 在本节中,我们将更具体地讨论 DeepCluster 的一些技术选择和变体。
Alternative clustering algorithm
-
图聚类。我们认为幂迭代聚类(PIC)是一种替代聚类方法。它已被证明在大规模收集中具有良好的性能。
-
由于PIC是一种图聚类方法,我们通过将所有图像连接到图像描述符的欧几里德空间中的5个邻居来生成最近邻图。我们用fθ(x)表示网络的输出,参数θ应用于图像x。我们使用稀疏图矩阵G=Rn×n。我们将G的对角线设置为0,非零条目定义为
-
w i j = e − ∥ f θ ( x i ) − f θ ( x j ) ∥ 2 σ 2 w_{i j}=e^{-\frac{\| f_{\theta} ( x_{i} )-f_{\theta} ( x_{j} ) \|^{2}} {\sigma^{2}}} wij=e−σ2∥fθ(xi)−fθ(xj)∥2
-
σ是带宽参数。在这项工作中,我们使用PIC 的一个变体,它可以:
-
初始化 v ← [ 1 / n , . . . , 1 / n ] T ∈ R n v\leftarrow[1/n,...,1/n]^T\in \R^ n v←[1/n,...,1/n]T∈Rn;
-
迭代 : v ← N 1 ( α ( G + G T ) v + ( 1 − α ) v ) v\leftarrow N_1(α(G + G ^T)v + (1 − α)v) v←N1(α(G+GT)v+(1−α)v),其中 α = 1 0 − 3 α=10^{-3} α=10−3 是正则化参数, N 1 : v → v / ∣ ∣ v ∣ ∣ 1 N_1:v\rightarrow v/||v||_1 N1:v→v/∣∣v∣∣1 ——L1归一化函数;
-
设 G’ 是 G 的有向未加权子图,其中我们保持边 i → j i \rightarrow j i→j 的G使得 j = a r g m a x j w i j ( v j − v i ) j = argmax_jw_{ij} (v_j − v_i) j=argmaxjwij(vj−vi),如果vi是局部最大值(即 ∀ j ≠ i ; v j ≤ v i \forall j\neq i;v_j≤v_i ∀j=i;vj≤vi ),则没有边从它开始。这些簇由 G‘ 的连通分量给出。每个聚类簇都有一个局部最大值。
-
-
PIC聚类的一个优点是不需要预先设置聚类的数量。然而,参数σ会影响簇的数量:当参数σ较大时,边缘变得更加均匀,簇的数量减少,反之亦然。在下面,我们设置σ=0:2。
-
由于我们的PIC实现依赖于最近邻图,我们在图2中显示了一些查询图像及其特征空间中的3个最近邻,其中网络是用DeepCluster的PIC版本和随机基线训练的。随机初始化的网络在某些情况下表现良好(例如 sunset query),其中图像具有简单的低级结构。图2中的顶行似乎表示随机网络性能相当好的查询,而底部查询太复杂,随机网络无法检索到良好的匹配。此外,我们注意到,在用DeepCluster训练网络后,最近邻匹配得到了很大改善。
-

-
图2:特征空间中Flickr子集中的图像及其3个最近邻居。查询图像显示在左列。以下3列对应一个随机初始化的网络,最后3列对应用PIC DeepCluster训练后的同一个网络。
-
-
与k-means进行比较。首先,我们深入了解了图像在聚类簇中的分布。我们在图3中显示了 DeepCluster 的k-means 和 PIC 版本在训练的最后一个阶段产生的聚类大小(这种分布在各个阶段都是稳定的)。我们观察到k-means比PIC产生更平衡的聚类。事实上,对于PIC来说,几乎三分之一的聚类簇的大小小于10,而最大的聚类簇包含大约3000个示例。在这种非常不平衡的聚类情况下,在我们的方法中,重要的是通过基于聚类上的均匀分布对图像进行采样来训练convnet,以防止最大的聚类主导训练。
-

-
图3:DeepCluster 的 k-means 和 PIC 版本在最后一个训练周期产生的聚类大小。
-
-
我们在表 2 中报告了使用DeepCluster PIC 版本训练的模型进行不同 Pascal VOC 转移任务的结果。对于这组转移任务,用k-means和DeepCluster的PIC版本训练的模型在相当的范围内表现良好。
-

-
表2:Pascal VOC转移任务中PIC与k-means的评估。
-
Variants of DeepCluster
-
在表3中,我们报告了用DeepCluster的不同变体训练的模型的结果:不同的训练集、替代的聚类方法或没有输入预处理。特别是,我们注意到 DeepCluster 在原始RGB图像上的性能显著下降
-

-
表3:我们方法的不同变体对DeepCluster性能的影响。我们报告了使用AlexNet卷积层的激活作为特征的ImageNet和Places上线性分类器的分类准确性。我们将 DeepCluster 的标准版本与不同的设置进行了比较:YFCC100M 作为预训练集;PIC作为聚类方法;原始RGB输入。
-
-
在表4中,我们根据聚类方法和预训练集比较了DeepCluster的性能。我们在三个不同的分类任务上评估了这种性能:对Pascal VOC进行微调,不进行微调,以及在ImageNet上重新训练完整的MLP。我们报告了验证集的分类准确性。总体而言,我们注意到,在ImageNet和未固化的数据集YFCC100M上,DeepCluster的常规版本(带有k-means)比PIC变体产生了更好的结果。
-

-
表4:DeepCluster 在 Pascal VOC 和 ImageNet 上使用不同预训练集和聚类算法进行分类准确度测量的性能。
-
Additional visualisation
Visualise VGG-16 features
- 我们评估VGG-16 convnet与DeepCluster学习的表示的质量。为此,我们学习了一个输入图像,该图像使最后一个卷积层中目标滤波器的平均激活最大化。我们还展示了Flickr上100万张随机子集中的前9张图片,这些图片最大限度地激活了目标过滤器。在图4中,我们展示了一些过滤器,前9个图像在语义或风格上似乎是连贯的。我们观察到,在没有任何监督的情况下学习的过滤器捕获了相当复杂的结构。特别是,在图5中,我们显示了与似乎关注人类特征的过滤器相对应的合成图像。
-

-
图4:滤波器可视化和YFCC100M中100万张图像的子集中的前9张激活图像(紧挨着相应的合成图像),用于用DeepCluster训练的VGG-16的最后一个卷积层中的目标滤波器。
-
AlexNet
-
研究无监督学习方法实际学习的聚类簇是很有趣的。论文中的图2(a)表明,我们的聚类与ImageNet类相关。在图6中,我们使用ImageNet本体查看聚类簇的纯度,以了解学习了哪些概念。更确切地说,我们展示了ImageNet本体中不同深度的不同synset的纯聚类簇图像的比例(纯聚类簇=超过70%的图像来自该synset)。不同类别之间的相关性差异很大,动物和植物的相关性最高。
-

-
图6:ImageNet本体中不同synset属于纯聚类簇的图像比例(纯聚类簇=超过70%的图像来自该synset)。我们在本体中展示了深度为6、9和13的同义词集,并对动物和哺乳动物的同义词进行了缩放。
-
-
在图7中,我们显示了最后一个卷积层中前100个目标滤波器的YFCC100M中1000万张图像的随机子集中的前9张激活图像(我们选择了顶部激活图像不描绘人类的滤波器)。我们观察到,尽管我们的方法是纯无监督的,但一些过滤器会在包含特定类别对象的图像上触发。其他一些滤镜对特定的风格效果或纹理有强烈的反应。
-
在论文的原始版本中,我们报告了在Places和ImageNet数据集上进行线性分类器实验的10 crops 的平均分类准确率。然而,其他方法报告了 central crop 的准确性,所以我们的比较不公平。然而,这并没有改变这些实验的结论,我们的方法仍然优于从conv3到conv5层的最新技术。在表5中,我们展示了 single and 10 crops 的结果。
-

-
表5:使用AlexNet卷积层的激活作为特征的ImageNet和Places的线性分类。
-
-
DeepCluster 的核心特点是结合深度神经网络和聚类的端到端方法,而传统聚类算法是基于固定特征的浅层方法。DeepCluster 的优势应该在于处理高维数据、与特征学习结合、大规模数据处理等方面。传统聚类算法依赖手工特征,而 DeepCluster 可以自动学习特征,适合图像等复杂数据。另外,DeepCluster 通过迭代优化,特征和聚类相互促进,而传统算法的特征是固定的,可能无法适应复杂分布。
更多推荐


所有评论(0)