https://medium.com/@monocosmo77/how-stochastic-optimization-works-part2-machine-learning-5e09bedc0c01