Regarding the min max optimization objective function, it's actually as same as cross-entropy negative loss = sum{y_i*logP(y_i|x_i) + (1- y_i)*log(1-P(y_i|x_i)) for i}, where the posterior P(y_i|x_i) = D(x_i; theta_D) is discriminator. negative loss = sum{logD(x_i; theta_D) for i: y_i = 1} + sum{log(1-D(x_i; theta_D)) for i: y_i = 0} = sum{logD(x_i; theta_D) for i: y_i = 1} + sum{log(1-D(g(z_i; theta_g); theta_D)) for i: y_i = 0} The min max optimization is to 1 maximize negative loss (over D) when g is fixed. In this step, both two parts are involved. 2 minimize negative loss (over g) when D is fixed. In this step, only the part containing g is involved.