perturbation learning