Gradient descent is part of a larger family of optimization techniques called hill climbing algorithms. Another noteworthy algorithm in this family, which is used extensively in Spark, is called Limited-memory BFGS (LBFGS). These algorithms seek a stationary point of a function where the gradient is zero.