https://medium.com/@monocosmo77/understanding-invariant-risk-minimization-part2-machine-learning-a20202c23984