Disentangling factors of variation in deep representations using adversarial training