The gradient descent algorithm is used all over the machine learning landscape; from optimizing Linear Regression to training some of the most advanced neural network models. The goal of gradient descent is to minimize any function, and it can take any number of parameters.