$ cd ../
Neural ODEs -- flujo continuo vs ResNet desde cero — bash

user@devops:~$ cat README.md

Neural ODEs -- flujo continuo vs ResNet desde cero

# Descripción

Neural Ordinary Differential Equations (Chen et al. 2018) implementadas desde cero en PyTorch, sin torchdiffeq. Un bloque residual h_{t+1} = h_t + f(h_t, θ) es un paso de Euler de la EDO dh/dt = f(h(t), t, θ). Parte 1: dos espirales entrelazadas, 1.600 puntos (train 1.200 / test 400), seed 42. Parte 2: ResNet discreto = Euler de 8 pasos, MLP time-aware 2-32-32-2 con ultima capa a cero (init identidad), 1.256 params, acc test 0.7825. Parte 3: la misma f integrada con Euler-8 (acc 0.6325, early-stop) y RK4 (4 pasos NFE 16 acc 0.6600; 8 pasos NFE 32 acc 1.0000, CE 0.070). Parte 4: trayectorias -- el ResNet da saltos discretos, RK4 un flujo continuo que desenrolla las espirales hasta que un clasificador lineal las separa. Parte 5: serie irregular, 28 observaciones ruidosas de dz/dt = A z (A = [[-0.18, 2.15], [-2.15, -0.18]]); NODE autonoma interpola la orbita (MSE obs 0.0109, MSE densa 0.0256). Parte 6: adjunta discreta de un Euler-1 vs backprop-through-solver: coseno dL/dh0 = 1 y dL/dθ = 1, error relativo 0. Hallazgo: un ResNet de paso fijo ES el Euler de una Neural ODE; con 8 NFE el flujo no desenrolla las espirales, RK4 con 32 NFE si; la adjunta reproduce BPTS y ahorra memoria O(1) en T. CPU ~12 s. 7 visualizaciones.

# Características principales

$ Campo f desde cero: MLP 2-32-32-2 tanh, concat de t, ultima capa a cero (init identidad)

$ ResNet = Euler-8 de la misma EDO: 1.256 params, acc test 0.7825

$ RK4-8 (NFE 32) separa las espirales al 100% (CE 0.070); Euler-8 se queda en 0.63-0.78

$ Trayectorias: saltos discretos del ResNet vs flujo continuo que desenrolla el plano

$ Serie irregular: 28 obs. de una espiral A z; interpolacion densa MSE 0.026

$ Adjunta discreta vs BPTS: coseno 1.000000 en dh0 y dθ, error relativo 0

$ Checkpoint determinista (seed 42): re-run regenera metricas y figuras sin reentrenar

$ 7 visualizaciones: datos, curvas, trayectorias, campo, fronteras, NFE, serie

# Galería

Terminal del proyecto
Neural ODEs -- flujo continuo vs ResNet desde cero - Terminal del proyecto
Espirales de entrenamiento
Neural ODEs -- flujo continuo vs ResNet desde cero - Espirales de entrenamiento
Curvas CE y accuracy
Neural ODEs -- flujo continuo vs ResNet desde cero - Curvas CE y accuracy
Saltos discretos vs flujo
Neural ODEs -- flujo continuo vs ResNet desde cero - Saltos discretos vs flujo
Campo vectorial f(h,t)
Neural ODEs -- flujo continuo vs ResNet desde cero - Campo vectorial f(h,t)
Fronteras ResNet / Euler / RK4
Neural ODEs -- flujo continuo vs ResNet desde cero - Fronteras ResNet / Euler / RK4
NFE vs accuracy
Neural ODEs -- flujo continuo vs ResNet desde cero - NFE vs accuracy
Interpolacion de la espiral
Neural ODEs -- flujo continuo vs ResNet desde cero - Interpolacion de la espiral

# Tecnologías utilizadas

Python PyTorch NumPy Pandas scikit-learn Matplotlib