First, SimCLR [1]}, as a representative approach of contrastive learning, consists of three components: a random transformation module \(\mathcal {H}\) , an encoder network \(\mathcal {F}\) , and a projection network \(\mathcal {G}\) . Basically, the transformation module \(\mathcal {H}\)  adopts a sequence of random transformations (e.g. sequentially applying random crop, random horizontal flip, random colour distortion, and random gray-scaling) to generate different views \(\tilde{x}_i^{(j)}\)  for every image \(x_i\)  in a training batch \(\lbrace x_i\rbrace _{i=1 \dots \mathbb {B}}\) , where \(\mathbb {B}\)  is the number of samples in a batch, \(\tilde{x}_i^{(j)}=H^{(j)}(x_i)\) , and the transformation operation \(H^{(j)}\)  is re-sampled from \(\mathcal {H}\)  for each \(x_i\) . Based on such random transformations, we construct a set of views \(\tilde{x}_{i}^{(j)}\)  together with their corresponding image index \(i\) :
\(\mathbf {V}=\bigcup \limits _{i=1}^\mathbb {B}\bigcup \limits _{j=1}^{2}\lbrace (\tilde{x}_{i}^{(j)},i)\mid \tilde{x}_{i}^{(j)}=H^{(j)}(x_i)\rbrace \) 
