computer vision algorithms as gradient descent