In the second step, we train \(F_z\)  to capture all the information in \(x\)  which is independent of \(a\) . First, we enforce that \(F_z\)  does not capture information about \(a\) . To do so, we use a domain confusion loss [1]} that ensures that the distribution of encoding \(F_z(X_{a=0})\)  equals \(F_z(X_{a=1})\) , where \(X_{a=0}\)  (resp. \(X_{a=1}\) ) denotes the data points whose sensitive value is 0 (resp. 1).
The loss used is:

Ladv = 1m0 x0 Xa=0  BCE(d(Fz(x0)),1)
