Home › Glossary › Fundamentals › Backpropagation

Intermediate · Fundamentals

Backpropagation

Visual diagram · Math · Worked example · 3 difficulty levels.

TL;DR. Backpropagation is how neural networks learn from mistakes. It calculates how much each connection contributed to an error and adjusts accordingly.

Intuitive Explanation

Imagine a relay race where the team loses. The coach reviews the performance backward — starting with the last runner, then the second-to-last, all the way back. Each runner learns exactly how much their performance affected the final time. That's backpropagation: tracing the error backward through the network to assign 'blame' to each weight.

Technical Definition

Backpropagation is an efficient algorithm for computing the gradient of a scalar loss function with respect to all parameters in a computational graph, using dynamic programming via the chain rule of calculus. It has O(n) time complexity where n is the number of operations, matching the cost of the forward pass.

How it works

Backpropagation is the cornerstone algorithm of deep learning, making neural network training computationally feasible. **The Problem:** Given a loss L and millions of weights, we need ∂L/∂wᵢ for every weight wᵢ. Computing each gradient independently would be impossibly expensive. **The Solution:** The chain rule allows us to decompose complex derivatives into products of simple local derivatives, computed efficiently by reusing intermediate results. **Step-by-Step Process:** 1. **Forward Pass:** Compute the output of each layer, storing intermediate activations 2. **Compute Loss:** Calculate the scalar error between prediction and target 3. **Backward Pass:** Starting from the loss, compute gradients layer by layer: - Output layer: ∂L/∂z_output (depends on loss function) - Each hidden layer: ∂L/∂z_l = (W_{l+1}ᵀ · ∂L/∂z_{l+1}) ⊙ f'(z_l) - Weight gradients: ∂L/∂W_l = ∂L/∂z_l · a_{l-1}ᵀ 4. **Update Weights:** w ← w - η · ∂L/∂w **Key Insight:** Each layer only needs the gradient from the layer above it and its own local derivatives. This makes the computation O(n) — the same cost as a forward pass. **Challenges:** - **Vanishing Gradients:** In deep networks, gradients can shrink exponentially, making early layers learn very slowly. Solved by ReLU activations and residual connections. - **Exploding Gradients:** Gradients can grow uncontrollably. Solved by gradient clipping. - **Computational Graphs:** Modern frameworks (PyTorch, JAX) build dynamic computational graphs and automate backpropagation via autograd.

Mathematical Notation

∂L/∂wᵢⱼ = ∂L/∂aⱼ · ∂aⱼ/∂zⱼ · ∂zⱼ/∂wᵢⱼ

The chain rule decomposes the gradient into: how the loss changes with the activation (∂L/∂aⱼ), how the activation changes with the pre-activation (∂aⱼ/∂zⱼ), and how the pre-activation changes with the weight (∂zⱼ/∂wᵢⱼ).

Visual Explanation (flowchart)

Forward Pass: x → z = Wx + b → a = f(z) → L(a, y) | Backward Pass: ∂L/∂a → ∂L/∂z → ∂L/∂W, ∂L/∂b

Real-World Use Cases

  • Every AI Lab: Backpropagation is used in virtually every neural network training pipeline worldwide
  • PyTorch / TensorFlow: Autograd systems automatically implement backpropagation for arbitrary computational graphs
  • NVIDIA: GPU architectures are optimized for the matrix operations in forward and backward passes

Related Concepts

  • Neural Network — A computing system inspired by biological neural networks that learns patterns from data through interconnected layers of nodes.
  • Gradient Descent — An optimization algorithm that iteratively adjusts model parameters by moving in the direction of steepest decrease of the loss function.
  • Activation Function — A non-linear function applied to a neuron's output, enabling the network to learn complex, non-linear relationships.