• https://ruder.io/optimizing-gradient-descent/