Mutual information maximization is achieved by using noise contrastive estimation [1]} and learning an embedding such that we closely associate a "query" and its "positive" while disassociating the "query" from other points in the dataset referred to as "negatives".
The query, positive and N negatives are mapped to K-dimensional vectors \(\upsilon ,\upsilon ^+\in \mathbb {R}^K\)  and \(\upsilon ^-\in \mathbb {R}^{N\times K}\)  (\(\upsilon _n^-\in \mathbb {R}^K\)  represents the n-th negative), respectively. Thereafter the vectors are normalized onto a unit sphere which prevents the space from collapsing or expanding. Afterwards an (N+1)-way classification problem is set up. The distances between the query and other examples (the positive and negatives) are scaled by a temperature \(\tau =0.07\)  and passed as logits. The loss function is then calculated, which is represented as cross-entropy loss in the original CUT model [2]}.
\(\ell (\upsilon ,\upsilon ^+, \upsilon ^-) = \\ -\log \Bigg [\frac{\exp (\upsilon \cdot \upsilon ^+/\tau )}{\exp (\upsilon \cdot \upsilon ^+/\tau ) + \sum _{n=1}^N\exp (\upsilon \cdot \upsilon _{n}^-/\tau )}\Bigg ].\) 
