Clustering: The DeepCluster Algorithm

Learn about self-supervised clustering using a widely used clustering algorithm: DeepCluster.

Contrastive learning vs. clustering

Clustering-based self-supervision objectives aim to cluster the feature space so that similar images lie within the same cluster and dissimilar images lie within different clusters. This is a direct way of getting what contrastive learning aims to achieve.

As shown in the figure below, contrastive learning aims to bring together positive image pairs while pushing apart negative pairs, thus indirectly creating groups within the feature space. Clustering, on the other hand, naturally creates such groups in the feature space.

The DeepCluster algorithm

DeepCluster is a clustering algorithm that jointly learns the parameters of a neural network, where f=ghf = g \circ h ( h(.)h(.) is the feature extractor and g(.)g(.) is the classifier. It does this by alternating between clustering images {Xi}i=1N\{ X_i \}_{i=1}^N ...