BUG: Subtract the derivative in gradient descent.