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