Inicio · Parte 17 — Frontera matemática para IA e investigación
dz/dt = f(z, t, θ)
salida: z(T) = z(0) + ∫₀ᵀ f dt
gradientes por una EDO adjunta hacia atrás
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.
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.
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
ODEsolucion_analiticaz(T)_exactoconvergencia_de_EulerperdidadL/dθ_por_metodo_adjuntodL/dθ_analiticocoinciden_aproximadamentememoria_del_adjuntoprofundidadreferencia{
"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
}
Series temporales irregulares, flujos continuos normalizadores, modelado físico, dinámica de sistemas y modelos de difusión en tiempo continuo.
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.
10.48550/arxiv.1806.07366 verificado en DataCite (2026-08-19).10.48550/arxiv.2202.02435 verificado en DataCite (2026-08-19).