https://medium.com/@monocosmo77/dealing-with-local-minimas-in-machine-learning-problems-part1-9a4f9fd44a28