https://medium.com/@monocosmo77/understanding-invariant-risk-minimization-part3-machine-learning-960869fc5c27