🧮 Computational Mathematics

Inicio · Parte 08 — Cálculo multivariable, matricial y autodiferenciación

167 — Regla de la cadena multivariable

universitario-avanzado clase 7 de 20 4 horas demostración multivariable_chain_rule

La regla de la cadena multivariable suma las contribuciones de todos los caminos.

Fórmulas

dh/dt = (∂f/∂x)(dx/dt) + (∂f/∂y)(dy/dt)
en general: producto punto entre gradiente y velocidad

Desarrollo

Cuando una función depende de variables que a su vez dependen de un parámetro, la tasa de cambio total suma las contribuciones de cada camino. Esa es la regla de la cadena multivariable, y su forma compacta es un producto punto: gradiente por vector velocidad.

La lectura de «suma sobre caminos» es la que se generaliza al grafo de cómputo. En una red neuronal, un parámetro puede influir en la pérdida por varias rutas —pesos compartidos, conexiones residuales, capas que se reutilizan— y su gradiente total es la suma de las contribuciones de todas ellas.

Ese detalle es la causa del error más común al implementar autodiferenciación a mano: si un nodo se usa dos veces, hay que acumular su gradiente en lugar de sobrescribirlo. El motor del programa usa += precisamente por eso, y la clase 306 lo hace explícito. En PyTorch, olvidar zero_grad() es el mismo problema al revés: acumular cuando no se debe.

La verificación numérica es directa: componer las funciones, derivar la composición por diferencias finitas y comparar con la suma de productos. El laboratorio lo hace sobre una trayectoria circular, donde x = cos t e y = sin t.

Ejemplo trabajado

Derivar f(x(t), y(t)) sobre una circunferencia.

f(x,y) = x²y + 3xy² + 2
x(t) = cos t,  y(t) = sin t,   t = 1.5

∇f en (cos 1.5, sin 1.5) = (2.9787, 0.2318)
velocidad (dx/dt, dy/dt) = (−sin 1.5, cos 1.5) = (−0.9975, 0.0707)

Regla de la cadena:
  2.9787·(−0.9975) + 0.2318·0.0707 = −2.9548

Derivada numérica de h(t):  −2.9548           ✓

Estructura: producto punto entre gradiente y velocidad

Qué calcula el laboratorio

Regla de la cadena con variables intermedias.

python classes/part-08-calculo-multivariable-matricial-y-autodiferenciacion/167-regla-de-la-cadena-multivariable/lab.py
compmath run 167

Salidas del laboratorio (6)

Muestra de la ejecución real

{
  "composicion": "f(x(t), y(t)) con x=cos t, y=sin t",
  "t": 1.5,
  "∂f/∂x·dx/dt + ∂f/∂y·dy/dt": -3.087977,
  "dh/dt_numerica": -3.087977,
  "coinciden": true,
  "estructura": "producto punto entre gradiente y velocidad"
}

Errores comunes

Dónde se usa

Backpropagation con pesos compartidos, redes recurrentes, conexiones residuales y propagación de incertidumbre a través de varias etapas.

Idea rectora de la parte

El Jacobiano generaliza la derivada a funciones vectoriales.

Error a evitar

Confundir la convención de layout (numerador vs denominador) en cálculo matricial.

Conexión con IA

Autograd de PyTorch y JAX es exactamente el modo reverso del grafo de cómputo que se construye en esta parte a mano.

Bibliografía de la clase

Archivos de la clase