作者:Amit Chaudhary
编译:ronghuaiyang
导读
视觉上的自监督学习方法,结合聚类,将无监督转变为有监督。
许多自监督方法使用[pretext tasks](https://amitness.com/2020/02/illustrated-selfsupervision -learning/)来生成代理标签,并将无监督学习问题转化为有监督学习的问题。一些例子包括旋转预测,图像着色,拼图等。然而,这样的pretext任务是依赖于领域的,需要专业知识来设计它们。
DeepCluster是Facebook AI研究的Caron等人提出的一种自监督方法,带来了一种不同的方法。这种方法不需要特定于领域的知识,可以用于学习缺乏注释数据的场景的深层表示。
DeepCluster
DeepCluster结合了两部分:无监督聚类和深度神经网络。提出了一种端到端联合学习深度神经网络参数及其表示的聚类分配的方法。这些特征被迭代地生成和聚合,最后得到一个训练过的模型和标签作为输出结果。
Deep Cluster Pipeline
现在让我们了解一下深度聚类的pipleline是如何工作的。
简介:
如上图所示,将拍摄未标记的图像并对其应用图像增强。然后,使用AlexNet或vgg16等ConvNet架构作为特征提取器。首先,对ConvNet进行随机权值初始化,并在最终的分类头之前从层中取特征向量。然后使用PCA对特征向量进行降维,同时进行白化和L2归一化。最后,将处理后的特征传递到K-means,对每幅图像进行聚类分配。
这些聚类分配被用作伪标签,并训练ConvNet来预测这些聚类。用交叉熵损失来衡量模型的性能。模型训练了100个epoch,每个epoch进行一次聚类的操作。最后,我们可以将学到的表示用于下游任务。
手把手的例子
让我们通过一个从输入数据到输出标签的整个pipeline的一步步例子来看看DeepCluster是如何实际应用的:
1. 训练数据
我们从ImageNet数据集中提取未标记的图像,该数据集包括130万张图像,均匀分布在1000个类中。这些图像的minibatch为256。