https://medium.com/@monocosmo77/working-with-empirical-risk-minimization-part3-machine-learning-128b65980389