La regla de la cadena, el motor de la retropropagación
Índice de contenidos
- Puntos clave
- Qué es la regla de la cadena
- Composición de funciones
- Por qué es la clave de la retropropagación
- Ejemplo paso a paso
- La regla de la cadena multivariable
- Preguntas frecuentes
- ¿Por qué se multiplican las derivadas y no se suman?
- ¿La retropropagación es lo mismo que la regla de la cadena?
- Conclusión
- Fuentes
La regla de la cadena calcula la derivada de una función compuesta multiplicando las derivadas de sus eslabones: si y depende de u y u depende de x, entonces dy/dx es dy/du por du/dx. Esa multiplicación de derivadas capa por capa es exactamente lo que hace la retropropagación para entrenar una red neuronal.
La regla de la cadena es la herramienta del cálculo que permite derivar funciones compuestas, y sin ella no existiría la retropropagación. Cuando una cantidad depende de otra que a su vez depende de una tercera, la regla de la cadena encadena esas dependencias multiplicando derivadas. Una red neuronal es justamente eso: una función compuesta con decenas o cientos de eslabones. Por eso este resultado, que se aprende en el primer curso de cálculo, es el motor que ajusta millones de pesos. La misma explicación está disponible en inglés.
Puntos clave
- La regla de la cadena deriva una función compuesta multiplicando las derivadas de cada eslabón: $\frac{dy}{dx} = \frac{dy}{du}\cdot\frac{du}{dx}$.
- Una red neuronal es una composición de funciones, así que su gradiente solo puede calcularse aplicando la regla de la cadena.
- La retropropagación es la regla de la cadena aplicada hacia atrás, de la pérdida hasta cada peso, en una sola pasada.
- Reutilizar los resultados intermedios evita repetir cálculos: en una red de 5 capas eso ahorra un trabajo que crecería de forma exponencial.
- Con esta regla, entrenar una red de 175.000 millones de parámetros como GPT-3 sigue siendo un cálculo mecánico, no una hazaña imposible.
Qué es la regla de la cadena
La regla de la cadena responde a una pregunta sencilla: si $y$ cambia cuando cambia $u$, y $u$ cambia cuando cambia $x$, ¿cuánto cambia $y$ cuando cambia $x$? La respuesta es multiplicar las dos tasas de cambio. En notación de Leibniz se escribe $\frac{dy}{dx} = \frac{dy}{du}\cdot\frac{du}{dx}$, y esa fórmula compacta encierra toda la idea.
Conviene tener claras las derivadas como tasa de cambio antes de seguir, porque cada factor de la regla es exactamente una derivada. La intuición es la de dos engranajes acoplados: si el primero gira 3 veces más rápido que el segundo, y el segundo gira 2 veces más rápido que el tercero, el primero gira 6 veces más rápido que el tercero. Las tasas de cambio se multiplican, no se suman.
Composición de funciones
Componer funciones significa aplicar una después de otra. Si f y g son funciones, la composición y = f(g(x)) primero calcula u = g(x) y luego y = f(u). El valor de salida pasa por dos etapas encadenadas, y cada etapa tiene su propia sensibilidad al cambio.
Un ejemplo numérico lo aclara. Sea $g(x) = 2x$ y $f(u) = u^2$, de modo que $y = (2x)^2 = 4x^2$. Podemos derivar directamente: $\frac{dy}{dx} = 8x$. O podemos usar la regla de la cadena: $\frac{dy}{du} = 2u = 4x$ y $\frac{du}{dx} = 2$, así que $\frac{dy}{dx} = 4x \cdot 2 = 8x$. Los dos caminos coinciden, pero el segundo escala a funciones donde derivar de golpe es imposible.
Por qué es la clave de la retropropagación
Una red neuronal encadena muchas funciones. En cada capa se calcula $z = Wx + b$, luego una activación $a = f(z)$, y esa salida entra en la capa siguiente. Al final se compara la predicción con la respuesta correcta mediante una pérdida $L$. Toda la red, de la entrada a la pérdida, es una única función compuesta con tantos eslabones como operaciones.
Para entrenar necesitamos el gradiente $\nabla$: cómo cambia la pérdida $L$ ante un pequeño cambio en cada peso $W^{(l)}$ de cada capa. Ese gradiente atraviesa todas las capas intermedias, y la única manera de calcularlo es multiplicar las derivadas capa por capa, es decir, aplicar la regla de la cadena hacia atrás. Eso es la retropropagación. El algoritmo se popularizó en 1986 con el artículo de Rumelhart, Hinton y Williams en Nature, «Learning representations by back-propagating errors»[1], que mostró cómo obtener el gradiente de todos los pesos en una sola pasada hacia atrás. Como resume Michael Nielsen en su libro abierto, «la retropropagación no es solo un algoritmo rápido para aprender: nos da una visión detallada de cómo cambiar los pesos altera el comportamiento de la red».
Ejemplo paso a paso
Tomemos una neurona mínima con un peso $w$, entrada $x = 2$ y activación cuadrática. Definimos $z = w \cdot x$, $a = z^2$ y una pérdida $L = a$. Queremos $\frac{dL}{dw}$, la señal que el descenso de gradiente usa para ajustar $w$. Aplicamos la regla de la cadena en tres eslabones:
- $\frac{dL}{da} = 1$, porque la pérdida es la propia activación.
- $\frac{da}{dz} = 2z$, la derivada de la función cuadrática.
- $\frac{dz}{dw} = x = 2$, ya que $z = w \cdot x$.
Ver la derivación
Encadenamos los tres factores locales: $\frac{dL}{dw} = \frac{dL}{da}\cdot\frac{da}{dz}\cdot\frac{dz}{dw} = 1 \cdot 2z \cdot 2 = 4z$. Con $w = 3$ tenemos $z = w\cdot x = 6$, así que $\frac{dL}{dw} = 4 \cdot 6 = 24$. El paso de descenso de gradiente es $w \leftarrow w-\eta\,\frac{dL}{dw} = 3-0{,}1 \cdot 24 = 0{,}6$.
Multiplicando: $\frac{dL}{dw} = 1 \cdot 2z \cdot 2 = 4z$. Si el peso actual es $w = 3$, entonces $z = 6$ y $\frac{dL}{dw} = 24$. Con una tasa de aprendizaje $\eta = 0{,}1$, el nuevo peso es $w = 3-0{,}1 \cdot 24 = 0{,}6$. La regla de la cadena ha convertido tres derivadas locales sencillas en la instrucción exacta para reducir el error.
Cada factor de la cadena es una derivada local: solo mira su propio eslabón. La retropropagación calcula estas derivadas locales una vez y las reutiliza, de ahí que su coste crezca de forma lineal con el número de capas y no exponencial.
La regla de la cadena multivariable
En una red real cada valor influye en muchos otros, no solo en uno. Cuando $L$ depende de varias variables intermedias, la regla de la cadena se generaliza sumando las contribuciones de todos los caminos: si $u$ afecta a $L$ a través de $p$ y de $q$, entonces $\frac{\partial L}{\partial u} = \frac{\partial L}{\partial p}\cdot\frac{\partial p}{\partial u} + \frac{\partial L}{\partial q}\cdot\frac{\partial q}{\partial u}$. Esta versión, con sumas de productos, es la que aparece en el gradiente de una capa con muchas neuronas.
El texto de referencia Deep Learning[2] formaliza esta idea con matrices jacobianas: el gradiente de toda la red es un producto de jacobianos, uno por capa. La retropropagación simplemente organiza ese producto de derecha a izquierda para no repetir cuentas, lo que reduce el coste de exponencial a lineal en el número de capas.
Preguntas frecuentes
¿Por qué se multiplican las derivadas y no se suman?
Porque miden tasas de cambio encadenadas, no cantidades acumuladas. Si $y$ cambia el doble de rápido que $u$ y $u$ cambia el triple de rápido que $x$, entonces $y$ cambia seis veces más rápido que $x$. Ese factor combinado es un producto, $2 \cdot 3 = 6$, tal como indica la regla de la cadena.
¿La retropropagación es lo mismo que la regla de la cadena?
Son inseparables pero no idénticas. La regla de la cadena es el resultado matemático que dice cómo derivar una composición. La retropropagación es el algoritmo que aplica esa regla de forma ordenada y eficiente, reutilizando los resultados intermedios para calcular todos los gradientes en una única pasada hacia atrás.
Conclusión
La regla de la cadena parece un tecnicismo del primer curso de cálculo, pero es el mecanismo exacto que hace posible entrenar redes neuronales. Deriva funciones compuestas multiplicando eslabones, y una red no es más que una función compuesta muy larga. Si dominas esta regla, la retropropagación deja de ser magia y se vuelve aritmética. El siguiente paso natural es ver cómo encaja en el mapa de las matemáticas de las redes neuronales junto al descenso de gradiente.