Gradient Descent with Line Search