Given an input batch of images \(\mathcal {X}_b\subset \mathcal {X}\) , the goal is to partition these images into \(K\)  clusters. We get \(p\)  views (by different image augmentations) of these images and define a loss such that cluster assignment of any of the \(p\)  views match the targets estimated from any other view. Without loss of generality we define a loss for \(p = 2\)  views. The two views \(\mathcal {X}_b^1, \mathcal {X}_b^2\)  are generated using two randomly chosen image augmentations.
We learn a representation space \(\mathcal {Z}_0\)  at the end of every training iteration and get \(M\)  variations of \(\mathcal {Z}_0\)  as \(\lbrace  \mathcal {Z}_1, \mathcal {Z}_2, ... , \mathcal {Z}_M\rbrace \)  (e.g. random projections, etc). The goal is to build an efficient loss by the principle of consensus among \(\mathcal {Z}_0\)  and it's \(M\)  variations \(\lbrace  \mathcal {Z}_1, \mathcal {Z}_2, ... , \mathcal {Z}_M\rbrace \)  such that we learn the latent space \(\mathcal {Z}^*\)  at the end of training (i.e. the learned features lie in the latent space described above). For a given batch of images \(\mathcal {X}_b\)  and representation space \(\mathcal {Z}_m, \forall m \in [0,1,...,M]\) , we denote the cluster assignment probability for image \(i\)  and cluster \(j\)  for view 1 as \(\mathbf {p}_{i,j}^{1}(\mathcal {Z}_m)\)  and for view 2 as \(\mathbf {p}_{i,j}^{2}(\mathcal {Z}_m)\) . Here we define the loss that incorporates “population consistency" and “consensus consistency". We assume that oracle has given us target cluster assignment probabilities for the representation \(\mathcal {Z}_0\)  (like in DeepCluster[1]}) and denote it as \(\mathbf {q}_{i,j}^{1}\)  for view 1 and \(\mathbf {q}_{i,j}^{2}\)  for view 2.
