Gradient Descent Explained: Batch, Mini-Batch, and Stochastic (Simple)