MarginGAN: Adversarial Training in Semi-Supervised Learning