🧮 Computational Mathematics

Inicio · Parte 17 — Frontera matemática para IA e investigación

352 — Neural ODEs

frontera-investigacion clase 12 de 20 4 horas demostración neural_odes

El método adjunto calcula gradientes con memoria constante, sin guardar la trayectoria.

Fórmulas

dz/dt = f(z, t, θ)
salida: z(T) = z(0) + ∫₀ᵀ f dt
gradientes por una EDO adjunta hacia atrás

Desarrollo

Un Neural ODE observa que una red residual —z ← z + f(z)— es un paso de Euler de una ecuación diferencial, y lleva la idea al límite: en vez de un número discreto de capas, una dinámica continua integrada por un solver numérico. La profundidad deja de ser un entero y pasa a ser un intervalo de tiempo.

La ventaja más citada es el método adjunto para calcular gradientes. En vez de guardar todas las activaciones intermedias como hace backpropagation, se resuelve una EDO auxiliar hacia atrás que reconstruye lo necesario sobre la marcha. El coste de memoria pasa a ser constante, independiente de la profundidad efectiva.

La otra ventaja es el cómputo adaptativo: un solver con paso adaptativo dedica más evaluaciones donde la dinámica es complicada y menos donde es suave. El modelo ajusta su esfuerzo al problema en vez de tener un número fijo de capas.

El coste es la velocidad. Los solvers adaptativos requieren muchas evaluaciones de la red y son más lentos que una pila de capas discretas. Su valor práctico está en dominios donde la dinámica continua es natural: series temporales irregularmente muestreadas, física, y los flujos continuos normalizadores. Toda la parte 11 se vuelve directamente relevante: elegir el integrador y su tolerancia es una decisión de modelado.

Ejemplo trabajado

Neural ODE lineal con solución analítica conocida.

ODE: dz/dt = −θz        solución: z₀·e^(−θt)

z(T) exacto = 0,16529889

convergencia de Euler:
  5 pasos:  z(T) = 0,10737418   error 0,0579
 20 pasos:  ...                  error menor
 80 pasos:  ...                  error/4 por duplicación

Orden 1 confirmado, como en la clase 236.           ✓

pérdida: L = (z(T) − 0,2)²
dL/dθ por método adjunto = 0,168375

El adjunto obtiene el gradiente sin haber guardado
ninguna activación intermedia.

Qué calcula el laboratorio

Neural ODE: capas continuas y el método adjunto.

python classes/part-17-frontera-matematica-para-ia-e-investigacion/352-neural-odes/lab.py
compmath run 352

Salidas del laboratorio (11)

Muestra de la ejecución real

{
  "ODE": "dz/dt = -θz",
  "solucion_analitica": "z₀·e^(-θt)",
  "z(T)_exacto": 0.16529889,
  "convergencia_de_Euler": [
    {
      "pasos": 5,
      "z(T)": 0.10737418,
      "error": 0.05792470582158654
    },
    {
      "pasos": 20,
      "z(T)": 0.15164491,
      "error": 0.013653975171410704
    },
    {
      "pasos": 80,
      "z(T)": 0.16193521,
      "error": 0.0033636794832719585
    },
    {
      "pasos": 320,
      "z(T)": 0.16446104,
      "error": 0.0008378464280054121
    }
  ],
  "perdida": "L = (z(T) - 0.2)²",
  "dL/dθ_por_metodo_adjunto": 0.168375
}

Errores comunes

Dónde se usa

Series temporales irregulares, flujos continuos normalizadores, modelado físico, dinámica de sistemas y modelos de difusión en tiempo continuo.

Idea rectora de la parte

HMC usa gradientes para proponer estados lejanos con alta aceptación.

Error a evitar

Interpretar una cota teórica como predicción del error real.

Conexión con IA

Score matching fundamenta los modelos de difusión; el transporte óptimo aparece en flow matching; la teoría estadística del aprendizaje explica el scaling.

Bibliografía de la clase

Archivos de la clase