Forward pass: इनपुट नेटवर्क से प्रवाहित होता है, प्रत्येक layer अपना transformation लागू करती है, और अंतिम layer एक prediction उत्पन्न करती है। Loss function गणना करता है कि prediction कितनी गलत है। Backward pass: loss से शुरू करते हुए, backpropagation chain rule का उपयोग करके नेटवर्क में हर weight के लिए ∂loss/∂weight की गणना करता है: ∂loss/∂w = ∂loss/∂output · ∂output/∂hidden · ∂hidden/∂w। प्रत्येक layer ऊपर की layer से gradient प्राप्त करती है और अपना gradient नीचे की layer को पास करती है।
प्रत्येक weight के लिए स्वतंत्र रूप से gradient की गणना करने के लिए प्रति weight एक अलग forward pass की आवश्यकता होगी — अरबों parameters के लिए असंभव रूप से महंगा। Backpropagation मध्यवर्ती परिणामों का पुन: उपयोग करता है: प्रत्येक layer पर gradient एक बार गणना किया जाता है और उस layer के सभी weights के साथ साझा किया जाता है। Backward pass compute में forward pass का लगभग 2x खर्च करता है, जिसका अर्थ है कि एक training step (forward + backward + update) की कुल लागत एक single forward pass का लगभग 3x है।
आधुनिक deep learning frameworks (PyTorch, JAX) automatic differentiation (autograd) के माध्यम से backpropagation लागू करते हैं। आप forward computation को परिभाषित करते हैं, और framework स्वचालित रूप से backward computation graph बनाता है और gradients की गणना करता है। इसका मतलब है कि आप कभी मैन्युअल रूप से gradients derive नहीं करते — आप model architecture और loss को परिभाषित करते हैं, loss.backward() कॉल करते हैं, और framework बाकी संभालता है। यह automation वह है जो तेज़ architecture प्रयोग को व्यावहारिक बनाता है।