https://onlinebme.com/adversarial-training/