https://medium.com/@monocosmo77/how-differentially-private-stochastic-gradient-descent-dp-sgd-works-part2-machine-learning-4a8ef75c50c8