← Volver a los artículos
August 8, 2026
5 min de lectura

Hamiltonian Neural Networks: Does a Financial System Conserve Anything?

Hamiltonian Neural Networks: Does a Financial System Conserve Anything?
#deep-learning
#Hamiltonian
#physics-informed
#dynamics
#conservation

Hay dos preguntas que puedes hacer sobre las redes neuronales hamiltonianas, y sólo una de ellas es interesante.

La pregunta aburrida es "¿son estables los HNN?" La respuesta es sí y es un teorema, no un experimento. Codifique las ecuaciones de Hamilton en la arquitectura, intégrelas con un esquema simpléctico y el análisis de errores hacia atrás le entregará un error de energía limitado en horizontes exponencialmente largos. No hay nada relacionado con las finanzas. No necesitas un backtest para creerlo.

La pregunta interesante es la que el resultado de estabilidad presupone silenciosamente: ¿un vector de estado financiero admite alguna cantidad conservada? Un HNN no descubre si HH existe. Se supone HH existe y encuentra el mejor bajo ese supuesto. Si los mercados no se han conservado HH para las coordenadas elegidas, la red seguirá convergendo, seguirá produciendo un escalar suave, seguirá integrándose sin explotar, y todo será un modelo muy estable de la nada.

Esta publicación construye la maquinaria y luego dedica la mitad trasera a intentar romperla. La afirmación bajo prueba es estrecha y falsificable: que un elegido (q,p)(q, p) par (digamos precio logarítmico y EMA de rendimientos) es canónicamente conjugado, lo que significa dq/dt=H/pdq/dt = \partial H/\partial p en realidad es válido para algunos HH. Se trata de una afirmación empírica, y la propia sección teórica del borrador no da ninguna razón para creerla.


Mecánica hamiltoniana: lo que realmente es nuevo aquí

Órbita espacio-fase de Hamilton

El espacio de fases, los sistemas dinámicos, las trayectorias y las órbitas ya son vocabulario en este blog; consulte atractores en algotrading para las definiciones y colectores complejos para la reconstrucción del espacio de fases mediante la incrustación de Takens. Lo que sigue los asume.

La parte nueva es la estructura simpléctica. La mecánica clásica tiene dos formulaciones equivalentes. Newton da F=maF = ma. Hamilton da una función escalar. H(q,p)H(q, p) de donde se sigue toda la dinámica:

dqdt=Hp,dpdt=Hq\frac{dq}{dt} = \frac{\partial H}{\partial p}, \qquad \frac{dp}{dt} = -\frac{\partial H}{\partial q}

Tres consecuencias importan y ninguna de ellas está disponible para un modelo dinámico genérico:

  1. HH se conserva a lo largo de las trayectorias. El sistema está confinado a una superficie de energía constante: una variedad de dimensiones inferiores dentro del espacio de fase. Se trata de una fuerte limitación sobre hacia dónde puede llegar el Estado, no de una tendencia.
  2. La forma 2 simpléctica ω=dqdp\omega = dq \wedge dp se conserva. El volumen del espacio de fase se conserva exactamente (teorema de Liouville). Las trayectorias no pueden converger hacia un atractor; el flujo es incompresible.
  3. La dinámica es reversible en el tiempo. Ejecute el flujo hacia atrás y recuperará exactamente el estado inicial.

Vale la pena detenerse en el punto 2, porque es la tensión más aguda con todo lo demás en este blog. El teorema de Liouville dice que un sistema hamiltoniano no tiene atractores. Los flujos que preservan el volumen no pueden contraerse sobre nada. Si usted cree que los mercados tienen una estructura de atracción (y el artículo sobre atractores sostiene que así es) entonces ya está comprometido a que los mercados no sean hamiltonianos en sentido estricto. Se trata de un conflicto real, no de un tecnicismo, y es la razón por la que las extensiones disipativas que aparecen a continuación no son una ocurrencia tardía.

Por qué es importante el integrador

Simule un sistema hamiltoniano con un integrador ingenuo (Euler, RK4) y la trayectoria calculada se aleja lentamente de la superficie de energía constante. El error de truncamiento local es pequeño; el error geométrico es sistemático. En horizontes largos, la simulación se vuelve cualitativamente errónea: las órbitas que deberían cerrarse comienzan a girar en espiral.

Las redes neuronales estándar tienen el mismo defecto por una razón más profunda. Un estado de mapeo de MLP a derivados no tiene ningún mecanismo para preservar nada. Aprende adecuadamente la dinámica local y acumula errores que se agravan.


El reclamo de conservación, brevemente

Energía conservada en un sistema dinámico

Este blog ya ha argumentado que los mercados obedecen a principios similares a los de la conservación: Navier-Stokes para algotrading, parte 2 expone los argumentos en detalle, desde la liquidez como masa hasta la gestión de riesgos hidrodinámicos, y proporciona el marco econofísico adecuado. La optimización de la varianza media también es un sistema lagrangiano en este blog: consulte Teoría de la cartera de Markowitz para la forma cuadrática restringida y Ejecución óptima de Almgren-Chriss para el presupuesto de riesgo/λ\lambda identificación, donde λ\lambda juega exactamente el papel de un momento conjugado.

Nada de eso se vuelve a derivar aquí, porque el movimiento interesante es diferente. Esos artículos utilizan la conservación como una metáfora que motiva un modelo. Una HNN convierte la conservación en una restricción arquitectónica que el modelo no puede violar incluso si los datos así lo piden. Esa diferencia (analogía suave versus estructura dura) es el contenido completo de lo que sigue, y es transversal en ambos sentidos: una restricción que los datos no satisfacen no es un a priori, es un error.


Arquitectura HNN: Conservación estructural versus penalizada

Arquitectura neuronal hamiltoniana consciente de la estructura

El mecanismo general basado en la física (tomar derivadas autograduadas de la salida de la red con respecto a sus entradas, formar un residuo de física, minimizarlo) ya está demostrado en el PINN de Navier-Stokes, cuyo physics_loss construye u_t, u_x, u_xx a través de autograd.grad y eleva al cuadrado el residual. La HNN utiliza el mismo mecanismo con un cambio, y el cambio es el objetivo.

Un PINN penaliza las violaciones de una ley física. El residual es un término de pérdida con un peso; el optimizador lo compensa con el ajuste de datos. Baje el peso o entregue datos contradictorios y la red violará felizmente la ley. La conservación es una preferencia.

Una HNN hace que la conservación sea estructural. No aprende el campo vectorial. (q˙,p˙)=fθ(q,p)(\dot{q}, \dot{p}) = f_\theta(q, p), que no tiene restricciones y no conserva nada. Aprende un escalar Hθ(q,p)H_\theta(q, p) y deriva ambos componentes del campo vectorial a partir de un único gradiente:

q˙=Hθp,p˙=Hθq\dot{q} = \frac{\partial H_\theta}{\partial p}, \qquad \dot{p} = -\frac{\partial H_\theta}{\partial q}

Debido a que ambas derivadas provienen de un potencial escalar, el campo resultante es de gradiente simpléctico por construcción. dHθ/dt=qHq˙+pHp˙=qHpHpHqH=0dH_\theta/dt = \partial_q H \cdot \dot{q} + \partial_p H \cdot \dot{p} = \partial_q H \cdot \partial_p H - \partial_p H \cdot \partial_q H = 0, de manera idéntica, para cada configuración de parámetros θ\theta - incluida una red inicializada aleatoriamente y completamente desentrenada. No hay peso que bajar. La conservación es una identidad algebraica de la parametrización, no un término del objetivo.

Esta es una garantía mucho más sólida que la que ofrece un PINN y viene con un modo de falla mucho más agudo. La pérdida compara las derivadas derivadas con los datos observados:

L=Hθpq˙data2+Hθq+p˙data2\mathcal{L} = \left\| \frac{\partial H_\theta}{\partial p} - \dot{q}_{\text{data}} \right\|^2 + \left\| \frac{\partial H_\theta}{\partial q} + \dot{p}_{\text{data}} \right\|^2

Si lo observado (q˙,p˙)(\dot{q}, \dot{p}) El campo no es un gradiente simpléctico de nada; si tiene rizo, la parametrización no puede representarlo, la pérdida simplemente no puede llegar a cero. El suelo residual no es un fallo de optimización. Es una medida de qué tan lejos están los datos de admitir un hamiltoniano. Ese número es el resultado más útil de toda esta arquitectura, y es el número en torno al cual se organiza el resto de esta publicación.

La red en sí no tiene nada de especial: un MLP de (q,p)R2n(q, p) \in \mathbb{R}^{2n} a través de dos capas tanh de ancho 200 a una salida escalar.

Coordenadas

Para aplicaciones financieras, qq es una posición generalizada (precios logarítmicos, ponderaciones de cartera, exposición a factores) y pp un impulso generalizado (tasas de cambio, indicadores de impulso, variables de flujo). Hθ(q,p)H_\theta(q, p) es entonces cualquier invariante que la red pueda encontrar: posiblemente la capitalización total del mercado, posiblemente una medida de riesgo, posiblemente una cantidad abstracta sin lectura económica, posiblemente nada.

La elección del maridaje no es inocente, y este es el hueco en la presentación estándar. Nada sobre "qq = precio del tronco, pp = EMA de rendimientos" establece que estos son conjugados. La conjugación es una relación estructural específica - pp debe ser el impulso canónicamente emparejado con qq, tal que dq/dt=H/pdq/dt = \partial H/\partial p se mantiene para algunos HH. Afirmarlo y probarlo son actividades diferentes, y la literatura que adapta las HNN a las finanzas hace principalmente lo primero.

qq (posiciones) pp (momentos)
Precios de troncos EMA de rentabilidad
Ponderaciones de cartera Tasas de cambio de peso

Integradores simplécticos

Pasos geométricos de un integrador simpléctico

Aprendizaje HθH_\theta es la mitad del problema. Generar trayectorias requiere integrar las ecuaciones de Hamilton, y el integrador puede destruir lo que garantiza la arquitectura.

Integradores simplécticos preservar ω=dqdp\omega = dq \wedge dp exactamente. El volumen del espacio de fase se conserva, HH oscila alrededor de su valor real con un error acotado en lugar de derivar secularmente, y las órbitas permanecen cualitativamente correctas. RK4 le ofrece un error por paso más pequeño y ninguna de estas propiedades.

El esquema simpléctico más simple es Stormer-Verlet (salto):

pn+1/2=pnΔt2Hq(qn,pn+1/2)p_{n+1/2} = p_n - \frac{\Delta t}{2} \frac{\partial H}{\partial q}(q_n, p_{n+1/2}) qn+1=qn+ΔtHp(qn+1,pn+1/2)q_{n+1} = q_n + \Delta t \frac{\partial H}{\partial p}(q_{n+1}, p_{n+1/2}) pn+1=pn+1/2Δt2Hq(qn+1,pn+1/2)p_{n+1} = p_{n+1/2} - \frac{\Delta t}{2} \frac{\partial H}{\partial q}(q_{n+1}, p_{n+1/2})

para separables H(q,p)=T(p)+V(q)H(q, p) = T(p) + V(q) Estas son actualizaciones explícitas. Los hamiltonianos financieros generalmente no son separables (la dinámica del impulso depende de los precios y viceversa), por lo que el caso general necesita pasos implícitos, métodos de orden superior (Yoshida, Forest-Ruth) o la ruta SympNets a continuación.

Tong et al. (2020) demostró que la composición de pasos de salto como capas de red produce arquitecturas que son simplécticas por construcción: cada capa es un paso de integración, la profundidad es igual al número de pasos y el mapa aprendido (qn,pn)(qn+1,pn+1)(q_n, p_n) \mapsto (q_{n+1}, p_{n+1}) conserva la estructura simpléctica exactamente.


Garantías de estabilidad: reales y fuera de lugar

Órbita estable junto al movimiento turbulento del mercado

Las propiedades de estabilidad se derivan de teoremas, y precisamente por eso no prueban nada sobre los mercados.

Análisis de errores hacia atrás. Un integrador simpléctico aplicado a HH resuelve exactamente un hamiltoniano cercano H~=H+O(Δtk)\tilde{H} = H + O(\Delta t^k). La trayectoria calculada es la trayectoria exacta de un sistema ligeramente perturbado, y la teoría KAM limita el error de energía en tiempos exponencialmente largos.

Estabilidad de Lyapunov. Si HθH_\theta tiene un mínimo en equilibrio, HθH_\theta es en sí misma una función de Lyapunov que demuestra que el equilibrio es estable. No se requiere análisis por separado.

Ambos resultados están condicionados a HθH_\theta siendo el objeto correcto. Te dicen que la simulación del sistema aprendido es fiel; no dicen nada sobre si el sistema aprendido es el mercado. Un perfectamente conservado HθH_\theta instalado en un piso residual de 0,9 es una simulación estable de un artefacto.

Propiedad Estándar NN + RK4 HNN + simpléctica
Deriva de energía en 1000 pasos secular, acumula acotado, oscilatorio
Reversibilidad temporal no si
Volumen del espacio de fases no conservado exactamente conservado
Atractores representables si no (Liouville)
Invariante interpretable ninguno HθH_\theta

Implementación

Flujo de implementación del modelo Hamiltoniano

Módulo central HNN

import torch
import torch.nn as nn

class HamiltonianNN(nn.Module):
    """Learns a scalar H(q, p); derives dynamics via Hamilton's equations."""
    def __init__(self, input_dim: int, hidden_dim: int = 200):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(input_dim, hidden_dim), nn.Tanh(),
            nn.Linear(hidden_dim, hidden_dim), nn.Tanh(),
            nn.Linear(hidden_dim, 1),
        )

    def hamiltonian(self, q: torch.Tensor, p: torch.Tensor) -> torch.Tensor:
        return self.net(torch.cat([q, p], dim=-1))

    def time_derivative(self, q: torch.Tensor, p: torch.Tensor):
        q = q.requires_grad_(True)
        p = p.requires_grad_(True)
        H = self.hamiltonian(q, p)
        dH_dq, dH_dp = torch.autograd.grad(H.sum(), [q, p], create_graph=True)
        return dH_dp, -dH_dq          # dq/dt, dp/dt

Integrador simpléctico de Leapfrog

class LeapfrogIntegrator:
    """Stormer-Verlet integrator. Preserves the symplectic structure."""
    def __init__(self, hnn: HamiltonianNN, dt: float = 0.01):
        self.hnn, self.dt = hnn, dt

    def step(self, q: torch.Tensor, p: torch.Tensor):
        _, dp_dt = self.hnn.time_derivative(q, p)
        p_half = p + 0.5 * self.dt * dp_dt

        dq_dt, _ = self.hnn.time_derivative(q, p_half)
        q_new = q + self.dt * dq_dt

        _, dp_dt = self.hnn.time_derivative(q_new, p_half)
        return q_new, p_half + 0.5 * self.dt * dp_dt

    def integrate(self, q0, p0, n_steps: int):
        traj_q, traj_p, q, p = [q0], [p0], q0, p0
        for _ in range(n_steps):
            q, p = self.step(q, p)
            traj_q.append(q); traj_p.append(p)
        return torch.stack(traj_q), torch.stack(traj_p)

Coordenadas fase-espacio

Los precios logarítmicos, los rendimientos diferenciados, el impulso de la EMA y la volatilidad móvil son construcciones estándar en este blog: el canal de modelo de difusión y colectores complejos ambos lo envían. Las únicas dos líneas que importan aquí son las que definen el par conjugado:

q = np.log(prices)[w:-1]                          # generalised position
p = ewma(np.diff(np.log(prices), axis=0), w)[w-1:-1]   # generalised momentum

Todo aguas abajo: diferencia finita q˙\dot{q}, p˙\dot{p}, la alineación de longitud, el bucle de entrenamiento que compara los derivados derivados con los observados con Adam, es mecánico.

Control de conservación

def measure_conservation(hnn, integrator, q0, p0, n_steps=1000):
    """Energy drift along an integrated trajectory."""
    with torch.no_grad():
        traj_q, traj_p = integrator.integrate(q0, p0, n_steps)
        energies = torch.stack([
            hnn.hamiltonian(traj_q[i], traj_p[i]) for i in range(n_steps + 1)
        ]).squeeze().numpy()

    return {
        "H_initial": energies[0],
        "H_final": energies[-1],
        "drift": energies[-1] - energies[0],
        "oscillation": energies.std(),
        "relative_error": abs(energies[-1] - energies[0]) / abs(energies[0]),
    }

Tenga en cuenta lo que esta función no prueba. Mide si el integrador preserva HθH_\theta - que será, por teorema, si o no HθH_\theta significa cualquier cosa. La conservación en muestra de un hamiltoniano aprendido no es una prueba. La prueba que importa es diferente.


La prueba de falsificación

Trayectoria pasando una prueba de falsificación

El experimento honesto consta de tres partes y está diseñado de manera que un resultado negativo sea informativo y no embarazoso.

1. Suelo residual. Apto HθH_\theta sobre datos reales e informar la pérdida convergente, no la conservación. Una parametrización de gradiente simpléctico no puede representar un campo vectorial con curl; el piso mide el componente no hamiltoniano de la dinámica observada. Ajuste un MLP sin restricciones sobre los mismos datos que la referencia; no tiene restricción estructural, por lo que la brecha entre los dos pisos es el costo del supuesto hamiltoniano, expresado en las unidades de pérdida del problema.

2. Conservación fuera de muestra. Ajustar en una ventana, luego evaluar HθH_\theta a lo largo de la trayectoria observada fuera de la muestra: la trayectoria del precio real, no una trayectoria integrada. Si (q,p)(q, p) es genuinamente canónico, HθH_\theta permanece más o menos constante a lo largo de los datos que nunca vio. Si HθH_\theta se sale de la muestra, la cantidad conservada era un artefacto de la muestra y la garantía de la arquitectura no funciona.

3. Ablación coordinada. Esta es la parte que exige la sección teórica y ninguna presentación de HNN financieros parece funcionar. Nada establece que el precio logarítmico y la EMA de rendimiento sean conjugados; se afirma. Por lo tanto, pruebe los emparejamientos entre sí (precio logarítmico, rendimientos de EMA), (precio logarítmico, rendimientos brutos), (ponderaciones de cartera, tasas de cambio de ponderación) y clasifíquelos por fuera de muestra. HH estabilidad. Contra un sustituto de rendimientos mezclados como control: destruir la estructura temporal, mantener la distribución marginal, reinstalar. Si la madre sustituta produce resultados comparables HH estabilidad, la "cantidad conservada" es una propiedad de la parametrización más que del mercado.

Mi anterior, declarado antes del hecho para que pueda compararse con el resultado: esto falla. El razonamiento se encuentra en el manual anterior: el teorema de Liouville prohíbe los atractores, los mercados parecen tener una estructura atractiva y las dos trampillas de escape que aparecen a continuación son admisiones de que el estricto supuesto hamiltoniano no se cumple. Si el piso residual es alto y está fuera de muestra HH es inestable en cada emparejamiento, es decir, un negativo medido limpio en un previo informado por la física, y este blog los ha publicado antes (el negativo honesto, Sharpe deflactado). Una negativa mesurada sobre una teoría elegante vale más que un tutorial no probado.


Si la conservación falla: extensiones disipativas

Disipando energía alrededor de una órbita estructurada

Los mercados reales se filtran. Los costos de transacción, los desvíos y el deterioro de la información eliminan energía del sistema, y ​​un sistema estrictamente conservado HH No puedo representar eso. Existen dos relajaciones de principios, y ambas deben leerse como concesiones de que el supuesto era demasiado fuerte, no como refinamientos:

  1. Hamiltoniano conforme: modelo H˙=γH\dot{H} = -\gamma H con una tasa de disipación aprendida γ\gamma. La magnitud del ajuste γ\gamma es en sí mismo una medida: qué tan lejos está el sistema de ser conservador.
  2. Port-Hamiltoniano: x˙=(JR)H+Bu\dot{x} = (J - R)\nabla H + Bu, con JJ la matriz simpléctica, R0R \succeq 0 la matriz de disipación, y BuBu Forzamiento externo (noticias, flujos). Aquí R\|R\| relativo a J\|J\| cuantifica la salida directamente.

Ambos restauran la capacidad de representar atractores, a costa de la garantía de error acotado que motivó la arquitectura. Ése es el negocio, dicho claramente: puedes tener Liouville o puedes tener disipación, y los mercados parecen querer lo segundo.

Problemas abiertos relacionados: los hamiltonianos financieros no son separables (requieren pasos simplécticos implícitos o de orden superior, o SympNets aprender mapas simplécticos directamente), y los mercados operan en múltiples escalas de tiempo que un solo HH es poco probable que capture: hamiltonianos jerárquicos para dinámicas rápidas y lentas, o un tratamiento adiabático de variables lentas como parámetros de una escala rápida HH.


Conclusión

Dinámica neuronal y estructura conservada

La maquinaria funciona. aprender un escalar HθH_\theta, derive el campo vectorial a partir de su gradiente, integre simpléticamente y obtendrá la conservación como una identidad algebraica, un error acotado en miles de pasos, una reversibilidad temporal exacta y una función de Lyapunov de forma gratuita. Cada una de esas afirmaciones es un teorema y ninguna requiere validación.

Lo que requiere validación es la premisa. Los HNN no prueban si existe una cantidad conservada; la asumen y la optimizan bajo el supuesto, convergiendo a un modelo fluido, estable y de buen comportamiento independientemente. El piso residual y la falta de muestra HH La estabilidad son los dos únicos números que distinguen "el mercado conserva algo" de "la parametrización siempre produce algo".

Entonces, la pregunta con la que termina esta publicación no es si los HNN son estables. Se trata de si la elegancia sobrevive al contacto con BTCUSDT, y hasta que esos números estén en la página, la postura correcta hacia cada afirmación de conservación en el aprendizaje automático financiero, incluida ésta, es que no ha sido probada.


Referencias

  1. Greydanus, S., Dzamba, M. y Sprague, J. (2019). Redes neuronales hamiltonianas. NeuroIPS 2019.
  2. Tong, Y., Xiong, S., He, X., Pan, G. y Zhu, B. (2020). Redes hamiltonianas profundas basadas en integradores simplécticos. preimpresión de arXiv.
  3. Baaquie, BE (2000). Hamiltoniano en los mercados financieros. preimpresión de arXiv.
  4. Cotler, J. y Rezchikov, S. (2023). Simulación hamiltoniana eficiente para resolver la dinámica de precios de opciones. Investigación de revisión física.
  5. Gonon, P. & Ortega, J.-P. (2009). Mercados de valores y dinámica cuántica. preimpresión de arXiv.
  6. Greydanus, S. (2019). Redes neuronales hamiltonianas - Publicación de blog.
  7. Santos, C. et al. (2022). Redes neuronales de impulso simpléctico. PMLR.
blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Mantente a la vanguardia

Suscríbete a nuestro boletín para recibir información exclusiva sobre trading con IA, análisis de mercado y actualizaciones de la plataforma.

Respetamos tu privacidad. Puedes darte de baja en cualquier momento.