论文阅读笔记(12):Deep Clustering for Unsupervised Learning of Visual Features, 基于深度聚类的视觉特征无监督学习


facebook AI实验室19年的论文,deep cluster的基础

摘要

聚类是一类无监督学习方法,在计算机视觉中得到了广泛的应用和研究。为了使其适应大规模数据集上视觉特征的端到端训练,几乎没有做过什么工作。在这项工作中,我们提出了Deep Cluster,一种联合学习神经网络参数和结果特征的聚类分配的聚类方法。Deep Cluster使用标准聚类算法k-means对特征进行分组,并使用后续分割作为监督来更新网络权重。我们将Deep Cluster应用于卷积神经网络在大型数据集上的无监督训练。由此产生的模型在所有标准基准上都比目前的技术水平有显著的优势。

介绍

预训练的卷积神经网络(ConvNet)已成为大多数计算机视觉应用中的构建模块。它们产生了优秀的通用功能,可用于改进在有限数据量上学习的模型的泛化。ImageNet是一个大型全监督数据集,它的存在推动了ConvNet预训练的发展。然而,最近提供了经验证据表明,ImageNet上最先进的分类机的性能在很大程度上被低估,很少有错误没被解决。这在一定程度上解释了为什么尽管近年来提出了许多新颖的体系结构,但性能一直处于饱和状态。事实上,按照今天的标准,ImageNet相对较小;它“仅”包含100万张图像,涵盖对象分类的特定领域。向前发展的一个自然方式是构建一个更大、更多样化的数据集,可能包含数十亿张图像。这反过来又需要大量的手动注释和众多方面的专家知识。用原始元数据(metadata)替换标签会导致视觉表征中的偏差,并产生不可预测的后果。这就需要能够在无监督的情况下在互联网规模的数据集上进行训练的方法。

无监督学习已在机器学习领域得到广泛研究,聚类、降维或密度估计算法也经常用于计算机视觉应用。例如,“bag of features”模型在手工制作的本地脚本上使用聚类来生成良好的图片级功能。其成功的一个关键原因是,它们可以应用于任何特定领域或数据集,如卫星或医学图像,或使用新模式(如深度)捕获的图像,其中的标注标签并不总是大量可用。几项研究表明,有可能将基于密度估计或降维的无监督方法应用于深度模型,从而产生有前景的多用途视觉特征。尽管聚类方法在图像分类方面取得了初步的成功,但很少有人提出将其应用于ConvNet的端到端训练,而且从未大规模应用。一个问题是,聚类方法主要是为固定特征之上的线性模型设计的,如果必须同时学习特征,它们几乎不起作用。例如,使用k-means学习ConvNet将导致一个平凡解,其中特征归零,聚类压缩成一个实体。

在这项工作中,我们提出了一种新的大规模端到端训练网络的聚类方法。我们表明,使用聚类框架可以获得有用的通用视觉特征。我们的方法,如图1所示,包括在图像描述符的聚类和通过预测聚类分配更新ConvNet的权重之间进行交替。为简单起见,我们将研究重点放在k-means上,但也可以使用其他聚类方法,如幂迭代聚类(PIC)。整个pipeline接近ConvNet的有监督培训,以重用许多常见技巧。与自监督方法不同,聚类的优点是只需要很少的领域知识,并且不需要来自输入的特定信号。尽管简单,但我们的方法在ImageNet分类和传输任务方面的性能明显高于此前的无监督方法。

在这里插入图片描述
最后,我们通过修改训练集和ConvNet体系结构,探讨了框架的健壮性。由此产生的一组实验扩展了Doersch等人[25]关于这些选择对无监督方法性能的影响的讨论。我们证明了我们的方法对于体系结构的变化是健壮的。用VGG替换AlexNet可显著提高功能的质量及其后续传输性能。更重要的是,我们讨论了使用ImageNet作为无监督模型的训练集。虽然它有助于理解标签对网络性能的影响,但ImageNet有一个特殊的图像分布,它继承了用于细粒度图像分类的挑战:它由平衡良好的类组成,例如,包含各种各样的狗品种。作为替代,我们考虑来自THOMEE等人的YFCCF100M数据集的随机图像。我们表明,在对这种未经处理的数据分布进行训练时,我们的方法保持了最先进的性能。最后,当前的基准关注于无监督ConvNet捕获类别级信息的能力。我们还建议在图像检索基准上对它们进行评估,以衡量它们捕获实例级信息的能力。

方法

准备工作

基于统计学习的现代计算机视觉方法需要良好的图像特征化。在这种情况下,convnet是将原始图像映射到固定维度向量空间的常用选择。在接受足够数据的训练后,他们在标准分类基准上不断取得最佳表现。我们用 f θ f_θ fθ表示convnet映射,其中 θ θ θ是相应参数集合。我们将通过将此映射应用于图像而获得的向量称为特征或表征。在给定有N个图像的训练集 X = { x 1 , x 2 , ⋯   , x N } X=\{x_1,x_2,\cdots,x_N\} X={x1,x2,,xN}中,我们想要找到一个参数 θ ∗ θ^∗ θ 这样映射 f ( θ ∗ ) f(θ^∗) f(θ) 能够生成良好的通用特征。

这些参数传统上是通过监督进行学习的,即每个图像 x n x_n xn { 0 , 1 } k \{0,1\}^k {0,1}k中的标签 y n y_n yn相关联。此标签表示图像属于k个确定的类别之一。参数化分类器 g W g_W gW预测特征 f θ ( x n ) f_θ(x_n) fθ(xn)输出的正确标签。然后,通过优化以下问题,共同学习分类器的参数 W W W和映射的参数 θ θ θ

在这里插入图片描述
其中 ℓ \ell 是多项式逻辑斯蒂损失,也称为负对数softmax函数。使用小批量随机梯度下降和反向传播来计算梯度使该成本函数最小化。

无监督聚类

θ θ θ从高斯分布中采样时,如果没有任何学习, f θ f_θ fθ不会产生良好的特征。然而,这些随机特征在标准转移任务中的表现远远高于概率水平。例如,在随机AlexNet的最后一个卷积层上的多层感知器分类器在ImageNet上的精度达到12%,而概率仅为0.1%。随机神经网络的良好性能与其卷积结构密切相关,卷积结构对输入信号具有很强的优先级。这项工作的想法是利用这个微弱的信号来引导convnet的辨别能力。我们对convnet的输出进行聚类,并使用后续聚类分配结果作为“伪标签”来优化等式(1)。这种深度聚类(Deep Cluster)方法迭代地学习特征并将其不断分组。

聚类已被广泛研究,并针对各种情况开发了许多方法。我们将重点放在标准的聚类算法:k-means上,其他聚类算法的初步结果表明,这种选择并不重要。k-means接收一组向量作为输入,在我们的例子中,输入是convnet生成的特征 f θ ( x n ) f_θ(x_n) fθ(xn),并根据几何准则将它们聚类成k个不同的组。更准确地说,它通过解决以下问题,共同学习 d × k d×k d×k的质心(也就是聚类中心)矩阵 C C C和每个图像 n n n的聚类分配 y n y_n yn

在这里插入图片描述
解决此问题提供了一组最佳分配 ( y n ∗ ) n ≤ N (y^∗_n)_{n≤N} (yn)nN和一个质心矩阵 C ∗ C^∗ C. 然后将这些分配 y n y_n yn用作伪标签。

总的来说,Deep Cluster在使用公式(2)对特征进行聚类以生成伪标签和使用公式(1)预测这些伪标签来更新convnet的参数之间进行交替。这种类型的交替过程容易产生平凡解;我们将在下一节描述如何避免此类退化解。

避免退化解

平凡解的存在并不特定于神经网络的无监督训练,而是特定于联合学习判别分类器和标签的任何方法。即使在应用于线性模型时,区分聚类也能解决这个问题。解决方案通常基于限制或惩罚每个类的最小点数。这些项是在整个数据集上计算的,这不适用于在大规模数据集上训练。在本节中,我们简要描述了这些平凡解的原因,并给出了简单且可扩展的解决方法。

空聚类

判别模型学习类之间的决策边界。最佳决策边界是将所有输入分配给一个类。这个问题是由于缺乏防止空聚类的机制而引起的。特征量化中使用的一个常见技巧包括在k-means优化过程中自动重新分配空聚类。更准确地说,当一个类变为空时,我们随机选择一个非空类,并使用它的质心和一个小的随机扰动作为空类的新质心。然后,我们将属于非空类的点重新分配给这两个类。

简单参数化

数据不平衡。如果将绝大多数图像分配给几个类,则参数 θ θ θ将专门用于区分它们。在最戏剧性的场景中,除了一个类之外,所有其它类都只有一个点的,最小化(1)会导致一个简单的参数化,不管输入是什么convnet都将预测相同的输出。当每个类别的图像数量高度不平衡时,监督分类也会出现此问题。规避此问题的策略是基于类或伪标签上的均匀分布对图像进行采样。这相当于将输入对等式(1)中损失函数的加权为其所对应类大小的倒数。

实现细节

Convnet架构
我们使用了标准的AlexNet体系结构。它由五个卷积层组成,包括96、256、384、384和256个filter(作为特征提取);和三个全连接层(作为分类器)。我们删除了本地响应规范化层,并使用批处理规范化。我们还考虑了VGG-16体系结构的批标准化。无监督的方法通常不会直接对颜色起作用,不同的策略被视为备选方案。我们采用基于Sobel滤波器的固定线性变换来去除颜色并增加局部对比度。

优化
在训练网络时,我们对中心裁剪图像特征进行聚类,并执行数据增强。这增强了对transformation的不变性,这对特征学习非常有用。该网络采用dropout、恒定步长、权重 θ θ θ ℓ 2 \ell_2 2惩罚和0.9冲量的SGD进行训练。每个batch size包含256个图像。对于聚类,将特征PCA降到256维,进行白化和 ℓ 2 \ell_2 2规范化。请注意,运行k-means需要三分之一的时间,因为需要对整个数据集进行正向传播。我们可以每n个epoch重新分配一次聚类,但我们发现我们在ImageNet数据集上的设置(每个epoch都更新一次聚类)几乎是最优的。在Flickr数据集上,epoch的概念消失了:在参数更新和聚类重分配之间选择权衡更为微妙。因此,我们保持了与ImageNet中几乎相同的设置。

实验

定性评估

我们通过归一化互信息(NMI)测量相同数据的两个不同分配A和B之间共享的信息,定义为:

在这里插入图片描述
其中 I I I表示互信息, H H H表示熵。此度量可以应用于来自聚类伪标签或真实标签的任何分配。如果两个分配A和B是独立的,则NMI等于0。如果其中一个分配可从另一个分配确定预测,则NMI等于1。

聚类和标签之间的关系

图2(a)显示了训练期间聚类分配和ImageNet标签之间NMI的变化。它度量模型预测类级别信息的能力。聚类和标签之间的依赖性随着时间的推移而增加,这表明我们的features逐渐捕获与对象类相关的信息。

在这里插入图片描述

epoch中的重分配的次数

在每个epoch,我们都会将图像重新聚类分配,而不去保证稳定性。在t-1和t个epoch中测量聚类之间的NMI反映模型的实际稳定性。图2(b)显示NMI正在增加,这意味着重新分配的数据越来越少,聚类随着时间的推移趋于稳定。然而,NMI饱和值低于0.8,这意味着相当一部分图像在不同epoch中一直被重新分配。

选择聚类的类数目

我们测量了k-means中使用的聚类数k对模型质量的影响。我们报告了与超参数选择过程相同的下游任务,即Pascal VOC 2007分类验证集上的映射。我们在对数尺度上改变k,并在图2(c)中报告300个epoch后的结果。每k的相同次数后的性能可能无法直接比较,但它反映了本工作中使用的超参数选择过程。最好的性能是在k=10000时获得的。考虑到我们在ImageNet上训练我们的模型,我们期望k=1000时产生最好的结果,但显然一些过分割是有益的。

可视化

第一层滤波器
图3显示了使用Deep Cluster对原始RGB图像和使用Sobel滤波预处理的图像进行训练的AlexNet第一层的滤波器。在原始图像上学习convnet是困难的,如图3的左面板所示,大多数过滤器仅捕获颜色信息,这些颜色信息通常对对象分类起到很小的作用。通过Sobel预处理获得的滤波器的作用类似于边缘检测器。

在这里插入图片描述
图3:来自AlexNet第一层的过滤器,在原始RGB输入(左)或Sobel过滤(右)后训练。

探索更深层
我们通过学习最大化激活的输入图像来评估目标滤波器的质量。我们遵循Yosinki等人描述的过程,在目标过滤器和同一层的其他过滤器之间使用交叉熵函数。图4显示了这些合成图像以及来自YFCC100M的100万张图像子集的9张顶级激活图像。正如所料,网络中更深的层似乎捕捉到更大的纹理结构。然而,如图5第2行所示,最后卷积层中的一些滤波器似乎只是简单地复制了先前层中已捕获的纹理。这一结果证实了Zhang等人的观察结果,即conv3或conv4的特征比conv5的特征更具辨别力。最后,图5显示了一些conv5过滤器的前9个激活图像,这些图像在语义上似乎是一致的。顶行的过滤器包含与对象类高度相关的结构信息。最下面一行的过滤器似乎对风格更敏感,如图画或抽象形状。

在这里插入图片描述
图4:使用ImageNet上的Deep Cluster训练的AlexNet的conv1、conv3和conv5层中的目标滤波器,从YFCC100M的100万张图像子集中过滤可视化和前9张激活图像。过滤器可视化是通过学习输入图像来实现的,输入图像可以最大化对目标过滤器的响应。

在这里插入图片描述
图5:YFCC100M中1000万张随机子集的前9张激活图像,用于最后一个卷积层中的目标滤波器。第一行对应于对包含对象的图像激活敏感的过滤器。最下面一行展示了对风格影响更敏感的过滤器。例如,滤波器119和182似乎分别受到背景模糊和景深效应的激发。

激活的线性分类

我们在不同的冻结卷积层上训练线性分类器。通过与监督特征的逐层比较,可以看出convnet开始成为任务专用,即专门用于对象分类。我们在表1中的ImageNet和Places数据集上报告了该实验的结果。我们通过对训练集的交叉验证来选择超参数。在ImageNet上,从conv3到conv5层,Deep Cluster的性能比最先进的技术高出3%−5%. 在conv4层中观察到最大的改进,而conv1层的性能较差,可能是因为Sobel过滤丢弃了颜色。与之前的可视化一致,conv3比conv5工作得更好。最后,Deep Cluster和受监督的AlexNet之间的性能差异在更高的层上显著增加:在层conv2-conv3,差异仅为6%左右,但在conv5,这种差异上升到14.4%,这标志着AlexNet可能存储了大部分类级信息。在补充材料中,我们还报告了在最后一层训练MLP的准确性;DeepCluster的性能比最先进的高出8%。

在这里插入图片描述

总结

在本文中,我们提出了一种可扩展的聚类方法,用于网络的无监督学习。它使用k-means对convnet生成的特征进行聚类,并通过在判别损失中将聚类预测为伪标签来更新其权重。如果在大型数据集(如ImageNet或YFCC100M)上进行训练,它在每项标准任务上的性能都明显优于以前的最先进水平。我们的方法对输入几乎不做假设,并且不需要太多特定领域的知识,这使得它成为学习特定于注释稀少的领域的深度表示的一个很好的候选方法。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值