Update to compare gradient descent and other variations on optimisation