Adversarial and Random Transformations for Robust Domain Adaptation and Generalization