I already have half this program churned out. There is one huge bug, the loss appears to oscillate up and down. Let's say |a| - |b| distance is 5, and gradient descent turns it down to 2, it will then slowly bump back up to 9. I am not sure why this is.