Towards Robust Out-of-Distribution Generalization: Data Augmentation and Neural Architecture Search Approaches