Search⌘ K
AI Features

Clustering: The DeepCluster Algorithm

Explore the DeepCluster algorithm to cluster image features by combining neural networks with K-means clustering. Understand how the method creates pseudo labels through clustering and updates the network weights to improve feature grouping in self-supervised tasks. This lesson helps you implement and visualize clustering of neural network features for unlabelled image data.

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 ...