El pase forward: la entrada fluye a través de la red, cada capa aplica su transformación, y la capa final produce una predicción. La función de pérdida calcula qué tan equivocada está la predicción. El pase backward: partiendo de la pérdida, la retropropagación calcula ∂loss/∂weight para cada peso de la red usando la regla de la cadena: ∂loss/∂w = ∂loss/∂output · ∂output/∂hidden · ∂hidden/∂w. Cada capa recibe el gradiente de la capa superior y pasa su propio gradiente a la capa inferior.
Calcular ingenuamente el gradiente para cada peso de forma independiente requeriría un pase forward separado por peso — imposiblemente caro para miles de millones de parámetros. La retropropagación reutiliza resultados intermedios: el gradiente en cada capa se calcula una vez y se comparte con todos los pesos de esa capa. El pase backward cuesta aproximadamente 2x el pase forward en cómputo, lo que significa que el costo total de un paso de entrenamiento (forward + backward + actualización) es aproximadamente 3x un solo pase forward.
Los frameworks modernos de deep learning (PyTorch, JAX) implementan la retropropagación a través de diferenciación automática (autograd). Defines el cálculo forward y el framework construye automáticamente el grafo de cálculo backward y calcula los gradientes. Esto significa que nunca derivas gradientes manualmente — defines la arquitectura del modelo y la pérdida, llamas a loss.backward(), y el framework se encarga del resto. Esta automatización es lo que hace práctica la experimentación rápida de arquitecturas.