https://medium.com/@monocosmo77/working-with-nonconvex-minimax-problems-part2-machine-learning-optimization-99d88fdc047c