https://medium.com/getaway-group-tech-blog/inside-ai-4-how-neural-networks-learn-backpropagation-and-gradient-descent-explained-67301b4c5578