Gradient descent is a standard tool for optimizing complex functions iteratively within a computer program. Its goal is: given some arbitrary function, find a minima.
For some small subset of functions - those that are convex - there's just a single minima which also happens to be global. For most realistic functions, there may be many minima, so most minima are local.
Making sure the optimization finds the "best" minima and doesn't get stuck in sub-optimial minima is out of the scope of this article.
Here we'll just be dealing with the core gradient descent algorithm for finding some minima from a given starting point.