generative adversarial networks math