General adversarial network