https://medium.com/@monocosmo77/understanding-adversarial-perturbation-part1-artificial-intelligence-79a7194bbb9d