Why Machine Learning is vulnerable to adversarial attacks and how to fix it