https://medium.com/@monocosmo77/how-second-order-cone-programming-socp-works-part10-machine-learning-optimization-b2505c2e25e7