ODC:在线深度聚类的无监督表示学习

在线深度聚类的无监督表示学习

Online Deep Clustering for Unsupervised Representation Learning



摘要

联合聚类和特征学习方法在无监督表示学习领域表现出卓越的性能。 但是,在特征聚类和网络参数更新之间交替进行的训练策略会导致视觉表示学习的不稳定。 为了克服这一挑战,我们提出了在线深层聚类(Online Deep Clustering, ODC),它可以同时而不是交替执行聚类和网络更新。 我们的主要观点在于,聚类中心应该稳定发展,以保持分类器的稳定更新。 具体来说,我们设计并维护了两个动态的内存模块,即用于存储样本标签和特征的样本内存,以及用于聚类中心演化的聚类中心内存。 我们将adrupt的全局聚类分解为稳定的内存更新和成批的标签重新分配。 该过程已集成到网络更新迭代中。 这样,标签和网络会肩并肩而不是交替发展。大量实验表明,ODC可以稳定训练过程并有效地提高性能。


1.引言

无监督表示学习旨在学习无需手动注释的可迁移图像或视频表示。 其中,基于聚类的表示学习方法成为该领域的一个有前途的方向。 与基于恢复的方法不同,基于聚类的方法在实现令人鼓舞的性能的同时,几乎不需要领域知识。与仅捕获图像内不变性特征的对比表示学习相比,基于聚类的方法可以利用类间的相似性。与通常在固定特征上执行的常规聚类方法不同,这些工作共同优化了聚类和特征学习。
DC的问题
在这里插入图片描述
图1.(a)在线深度聚类(ODC)试图通过将聚类过程集成到网络更新迭代中来减少深度聚类(DC)和监督分类之间的训练机制差异。 ODC训练既是无监督的又不受干扰。 (b)与DC相比,ODC不断更新标签,而不是以脉冲方式更新标签,从而使表示稳步发展。 损失曲线(为清晰起见,仅初始32次迭代)显示了ODC的稳定性。 训练后,ODC的损失减少到大约2.0,而DC的损失减少到2.9。

虽然早期的研究工作主要在小数据集上完成,Caron等人提出的深度聚类(Deep Custering,DC)是扩展基于聚类的表示学习的首次尝试。 DC在深度特征聚类和CNN参数之间交替更新。具体地,在每次迭代的开始,它对整个数据集执行离线聚类算法,以获得伪标签作为对下一次迭代的监督信息。 离线聚类不可避免地会在不同次迭代中对分配的标签进行排列,即,即使某些聚类不发生变化,聚类后它们的索引也会被随机排列。 结果,不能从最后一次迭代中继承分类器中的参数,并且必须在每次迭代之前对它们进行随机初始化。 该机制会导致训练的不稳定,并使表示面临损坏的高风险。 如图1(a)所示,DC的网络更新在每次迭代都会被特征提取和聚类中断。 这与使用固定标签以不间断的方式执行的常规监督分类相反,在常规监督分类中,迭代由网络的向前和向后传播组成。

在这项工作中,我们寻求设计一种具有高度稳定性的联合聚类和特征学习的框架。 为了减少DC和监督学习之间训练机制的差异,我们将聚类过程分解为基于mini-batch的标签更新,并将此更新过程集成到网络更新的迭代中。 基于这种直觉,我们提出了在线深度聚类(ODC)用于联合聚类和特征学习。 具体来说,ODC迭代由正向和反向传播、标签重新分配和中心更新组成。 对于标签更新,ODC在正向传播中重用了特征,从而避免了其他特征的提取。 为了促进在线标签的重新分配和中心更新,我们设计并维护了两个动态内存模块,即用于存储样本标签和特征的样本存储器以及用于中心演化的中心存储器。 这样,可以像监督分类一样以不间断的方式训练ODC,而无需手动注释。 在训练过程中,标签和网络参数会并肩发展,而不是交替发展。 由于标签会在每次迭代中连续且即时地更新,因此CNN中的分类器也将更稳定地发展,从而产生更加稳定的损耗曲线,如图1(b)所示。

尽管ODC可以在各种基准数据集上实现出色的无监督表示学习性能,但它自然可以用于微调已使用其他无监督学习方法训练的模型。大量的实验表明,ODC的稳定性有助于它作为无监督的微调工具优于DC。 我们得出以下结论:1)我们提出了ODC,该ODC以无监督的方式学习图像表示,并且具有很高的稳定性。 2)ODC还可以作为统一的无监督微调方案,进一步改进以前的自监督表示学习方法。 3)在不同的基准上观察到有希望的表现,表明联合聚类和特征学习的巨大潜力。

2.相关工作

2.1 无监督表示学习

许多无监督的表示学习算法都基于生成模型,该模型通常使用潜在表示瓶颈来重构输入图像。 现有的基于生成的模型包括自动编码器,受限玻尔兹曼机,变分自动编码器和生成对抗网络,其中一些方法具有强大图片或视频的生成能力。通过学习生成样本,这些模型可以学习可用于下游任务的有意义的潜在表示。
自我监督学习是无监督表示学习的另一种流行形式,其中,借口任务旨在从原始数据中获取代理标签。 通过鼓励CNN从数据中预测代理标签来学习表示形式。 已经探索了各种借口任务,例如,预测图像内的相对切片的位置,解决拼图游戏,为灰度图像着色,修补缺失像素,跨通道预测, 计数视觉图元,和预测图像旋转。 对于视频,自派生的监控信号来自时间连续性或运动一致性。

2.2 自监督学习的改进算法

一些工作旨在从不同角度改进以前的自监督学习方法。 例如,Larsson等首次将着色作为借口任务进行了深入分析,并提供了一些有关提高其有效性的见解。 Mundhenk等探索一套方法避免一些脆弱解,例如基于上下文的自监督学习中的色差。 Noroozi等使用基于聚类的知识转移方法提高了自监督模型的性能,该方法允许在预训练期间使用更深的网络。 Wang等和Doersch等利用包含在不同借口任务中的多个线索来改进自我监督模型。最近,一些工作在现有的自监督方法上广泛研究了体系结构和扩展能力。 作为这些工作的补充,ODC可以作为一种灵活且统一的无监督微调方案,以增强通用的自监督学习方法,尽管它可以单独使用以从头开始执行无监督表示学习。

3.方法

在以下小节中,我们首先在3.1节讨论了提出的ODC与DC之间的区别。 然后,我们提出一些有用的策略,以在3.2中使用ODC时保持稳定的聚类大小。 最后,我们解释了如何使用ODC进行无监督的微调(第3.3节)以及ODC的实现细节(第3.4节)。

3.1 ODC

我们首先讨论DC的基本概念,然后详细介绍所提出的ODC。 为了学习表示,DC在离线特征聚类和带有伪标签的网络反向传播之间交替。 离线聚类过程需要在整个训练集上进行深度特征提取,然后是全局聚类算法,例如K-Means聚类。 全局聚类整体排列伪标签,要求网络在随后的迭代中迅速适应新标签。

  • 框架概述

与DC不同,ODC不需要额外的特征提取过程。 此外,标签随着网络参数的更新而顺畅地发展。 新引入的样本和中心存储器使这成为可能。 如图2所示,样本存储器存储了整个数据集的特征和伪标签。 而中心存储器则存储类中心的特征,即类中所有样本的均值特征。 这里的“类”代表了在训练过程中不断发展的临时聚类。 标签和网络参数在ODC的不间断迭代中同时更新。 为了避免ODC陷入脆弱解中,引入了包括损失重新加权处理小型聚类在内的特定技术。
在这里插入图片描述
图2.每个ODC迭代主要包含四个步骤:1.前向传播获得一个紧凑的特征向量; 2.从样本存储器中读取标签并进行反向传播以更新CNN; 3.通过更新特征和分配新标签来更新样本存储器; 4。通过重新计算所包含的中心来更新中心内存。

  • ODC迭代

假设给定一个随机初始化的网络 f θ ( ∗ ) f_{\theta}(*) fθ()和一个线性分类器 g w ( ∗ ) g_{w}(*) gw(),目标是训练网络参数 θ \theta θ以产生高判别性的表示。 为了准备ODC,样本和中心存储器通过全局聚类过程(例如K-Means)进行初始化。接下来,可以迭代执行不间断的ODC。

ODC迭代包含四个步骤。 首先,给定一批输入图像 { x } \{x\} {x},网络将图像映射为紧凑的特征向量 F = f θ ( x ) F=f_{\theta}(x) F=fθ(x)。 其次,我们从样本存储器中读取该批样本的伪标签。 使用伪标签,我们使用随机梯度下降来更新网络以解决以下问题:
min ⁡ θ , w 1 B ∑ n = 1 B l ( g w ( f θ ( x n ) ) , y n ) (1) \min _{\theta, w} \frac{1}{B} \sum_{n=1}^{B} l\left(g_{w}\left(f_{\theta}\left(x_{n}\right)\right), y_{n}\right)\tag{1} θ,wminB1n=1Bl(gw(fθ(xn)),yn)(1)
其中 y n y_n yn是样本存储器中当前的伪标签,B表示每个mini-batch的大小。 第三,L2归一化后的 f θ ( x ) f_{\theta}(x) fθ(x)被重用于更新样本存储器:
F m ( x ) ← m f θ ( x ) ∥ f θ ( x ) ∥ 2 + ( 1 − m ) F m ( x ) (2) F_{m}(x) \leftarrow m \frac{f_{\theta}(x)}{\left\|f_{\theta}(x)\right\|_{2}}+(1-m) F_{m}(x)\tag{2} Fm(x)mfθ(x)2fθ(x)+(1m)Fm(x)(2)
其中 F m ( x ) F_ {m}(x) Fm(x)是样本存储器中 x x x的特征, m ∈ ( 0 , 1 ] m\in(0,1] m(0,1]是动量系数,同时,通过查找以下最近的中心,为每个包含的样本分配新的标签:
min ⁡ y ∈ { 1 , … , C } ∥ F m ( x ) − C y ∥ 2 2 (3) \min _{y \in\{1, \ldots, C\}}\left\|F_{m}(x)-C_{y}\right\|_{2}^{2}\tag{3} y{1,,C}minFm(x)Cy22(3)
其中 C y C_y Cy表示类别 y y y的中心特征。 最后,记录所包含的中心,包括新加入的中心和离开的中心。 通过平均属于其对应中心的所有样本的特征,每第 k k k次迭代更新一次。

3.2 解决ODC的聚类分布

  • 损失重新加权

为了避免训练分解成几个巨大的聚类,DC在每次迭代之前采用均匀采样。 但是,对于ODC,聚类中的样本数在每次迭代中都会改变。 使用均匀采样需要在每次迭代中对整个数据集重新采样,这一过程被认为是多余且昂贵的。 我们提出了一种替代方法,即根据每个类别中的样本数量对损失进行加权。 为了验证它们的等效性,我们使用损失重新加权实现了DC模型,并根据经验发现,当权重遵循 w c ∝ 1 N c w_{c} \propto \frac{1}{\sqrt{N_{c}}} wcNc 1时,其中 N c N_c Nc表示 c c c类中的样本数,性能保持不变。 因此,我们对ODC采用相同的损失重新加权公式。 通过损失重加权,较小聚类中的样本对反向传播的贡献更大,从而将决策边界推得更远,以接受更多潜在样本。

  • 处理小型聚类

损失重新加权有助于防止大型聚类的形成。 然而,我们仍然面临着一些小聚类崩溃为空集的风险。 为了克服这个问题,我们建议在其崩溃之前,提前处理并消除非常小的聚类。 将正常聚类表示为 C n \mathcal{C}_{n} Cn,其大小大于某个阈值,将小聚类表示为小于阈值的 C s \mathcal{C}_{s} Cs,对于 c ∈ C s c\in\mathcal{C}_{s} cCs,我们首先将 c c c中的样本分配给 C n \mathcal{C}_{n} Cn中最近的质心,以使 c c c为空。 接下来,我们通过K-Means将最大的聚类 c m a x ∈ C n c_{max}\in\mathcal{C}_{n} cmaxCn分为两个子聚类,并随机选择一个子聚类作为新的 c c c。 我们重复此过程,直到所都聚类属于 C n \mathcal{C}_{n} Cn。 尽管这个过程会突然改变一些聚类,但它仅影响此过程中涉及的一小部分样本。

  • 降维

一些骨干网络将图像映射为高维的矢量,例如,AlexNet产生4,096维特征,而ResNet50产生2,048维特征,从而导致后续聚类的高空间和时间复杂性。 DC对整个数据集中的特征执行PCA以降维。 但是,对于ODC,不同样本的特征具有不同的时间戳,导致样本之间的统计信息不兼容。 因此,PCA不再适用。 同时在每次迭代中执行PCA也是昂贵的。因此,我们添加了{fc-bn-relu-dropout-fc-relu}的非线性头,以将高维特征缩减为256维。 它在ODC迭代过程中共同调整。下游任务将移除次非线性头。

3.3 ODC用于无监督微调

与倾向于捕获图像内语义的自监督学习方法相比,基于聚类的方法更多地关注图像间的信息。 因此,DC和ODC自然是对以前的自监督学习方法的补充。 由于DC和ODC不受特定设计目标的限制,例如旋转角度或颜色预测,因此它们很容易用作无监督的微调方案,以提高现有自我监督方法的性能。 在本文中,我们研究了DC和ODC在微调过程的有效性,该过程具有来自不同自监督学习方法的初始化。

3.4 实现细节

  • 数据预处理

我们使用的ImageNet包含128万张没有标签的图像以进行训练。 首先随机裁剪图像,使其具有224x224的分辨率,并进行增强,包括随机翻转和旋转( ± 2 ◦ ±2^◦ ±2)。 DC在图像上采用了Sobel滤波,以避免利用色彩作为捷径。 这样的预处理步骤要求下游任务也包括Sobel层,这可能会限制其应用。 我们发现,强烈的色彩抖动在避免捷径方面显示出与Sobel滤波相同的效果,而它却允许普通的RGB图像作为输入。 具体来说,我们采用PyTorch样式的色彩抖动变换,包括亮度因子(0.6,1.4),对比度因子(0.6,1.4),饱和度因子(0,2)和色相因子(-0.5,0.5)。 此外,我们以0.2的概率将图像随机转换为灰度。 应用于训练样本的随机颜色抖动和灰度会随机化颜色测量的相似性。 这不鼓励网络利用颜色中的脆弱信息。

  • 训练ODC

我们使用ResNet-50作为我们的骨干网络。考虑到大多数早期工作都使用AlexNet,我们还对AlexNet进行了实验以进行比较。 我们使用没有LRN的AlexNet体系结构,并添加了BN层。从零开始训练AlexNet和ResNet-50的ODC模型。 批大小为512,分配给8个GPU。对于400次迭代,AlexNet的学习率恒定为0.01,对于ResNet-50为0.03,而再过80次迭代,学习率则逐渐降低到原来的0.1。 跟随DC的设定,聚类的数量设置为10,000,这是ImageNet类的标注数量的10倍。 动量系数 m m m被设定为0.5。 识别小型聚类的阈值设置为20。只要不超过聚类中样本的平均数量,则更改此阈值不会明显影响结果。 中心存储器每10次迭代更新一次。 中心更新频率构成了学习效果和效率之间的折衷。 在我们的实验中,我们观察到只要将频率限制在合理范围内,ODC的性能就不会对其敏感。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值