https://medium.com/@monocosmo77/using-spherical-manifold-in-machine-learning-problems-part1-05aa6390dfbe