Neural Network Foundations, Explained: Updating Weights with Gradient Descent & Backpropagation