Adversarial training with PGD attacks (Madry et al., 2018). Use random start and multi-step training. Input gradient regularization also helps.