Hamiltonian Neural Networks: Does a Financial System Conserve Anything?
Hamiltonian Neural Networks에 대해 질문할 수 있는 두 가지 질문이 있으며 그 중 하나만 흥미롭습니다.
지루한 질문은 "HNN이 안정적인가?"입니다. 대답은 '예'입니다. 이는 실험이 아니라 정리입니다. 해밀턴의 방정식을 아키텍처로 인코딩하고 대칭 체계와 통합하며 역방향 오류 분석을 통해 기하급수적으로 긴 범위에 걸쳐 제한된 에너지 오류를 제공합니다. 금융에 관한 어떤 것도 관련되지 않습니다. 그것을 믿기 위해 백테스트가 필요하지 않습니다.
흥미로운 질문은 안정성 결과가 조용히 전제하는 질문입니다. 금융 상태 벡터가 보존된 수량을 전혀 허용합니까? HNN은 가 존재하는지 여부를 발견하지 못합니다. 가 존재한다고 가정하고 해당 가정 하에서 가장 적합한 것을 찾습니다. 시장에 선택한 좌표에 대해 보존된 가 없는 경우 네트워크는 여전히 수렴하고 부드러운 스칼라를 생성하며 폭발 없이 통합되며 모든 것이 매우 안정적인 무(無) 모델이 됩니다.
이 포스트는 기계를 만든 다음, 그것을 부수기 위해 후반부를 소비합니다. 테스트 중인 주장은 좁고 위조 가능합니다. 선택한 쌍(예: 로그 가격 및 수익률 EMA)이 정규적으로 공액이라는 것입니다. 즉, 가 실제로 일부 에 대해 유지된다는 의미입니다. 이는 경험적 주장이며 초안 자체의 이론 섹션에서는 이를 믿을 이유가 없습니다.
해밀턴 역학: 실제로 새로운 점

위상 공간, 동적 시스템, 궤적 및 궤도는 이미 이 블로그의 어휘입니다. 정의는 algotrading의 어트랙터를 참조하고 Takens 임베딩을 통한 위상 공간 재구성은 복소 매니폴드를 참조하세요. 다음은 이를 가정합니다.
새로운 부분은 상징적 구조이다. 고전 역학에는 두 가지 동등한 공식이 있습니다. 뉴턴은 를 제공합니다. Hamilton은 모든 역학이 따르는 스칼라 함수 를 제공합니다.
세 가지 결과가 중요하며 그 중 어느 것도 일반적인 동적 모델에 사용할 수 없습니다.
- 는 궤적을 따라 보존됩니다. 시스템은 위상 공간 내부의 저차원 다양체인 상수 에너지 표면으로 제한됩니다. 이는 국가가 어디로 갈 수 있는지에 대한 엄격한 제약이지 경향이 아닙니다.
- 교향적 2형 가 보존됩니다. 위상공간 부피가 정확하게 보존됩니다(Liouville의 정리). 궤적은 어트랙터로 수렴할 수 없습니다. 흐름은 비압축적입니다.
- 역학은 시간에 따라 가역적입니다. 흐름을 거꾸로 실행하면 초기 상태를 정확하게 복구할 수 있습니다.
포인트 2는 이 블로그의 다른 모든 내용과 관련하여 가장 날카로운 긴장감이기 때문에 잠시 멈출 가치가 있습니다. Liouville의 정리에 따르면 해밀턴 시스템에는 어트랙터가 없습니다. 부피를 보존하는 흐름은 어떤 것에도 수축될 수 없습니다. 시장이 매력적인 구조를 가지고 있다고 믿고(유인자 기사에서는 그렇다고 주장함), 엄밀한 의미에서 해밀턴이 아닌 시장에 이미 전념하고 있는 것입니다. 이는 기술적인 문제가 아니라 실제적인 충돌이며, 이것이 바로 아래의 소산적인 확장이 나중에 고려되지 않는 이유입니다.
적분기가 중요한 이유
순진한 적분기(Euler, RK4)를 사용하여 해밀턴 시스템을 시뮬레이션하면 계산된 궤도가 일정한 에너지 표면에서 천천히 표류합니다. 로컬 잘림 오류는 작습니다. 기하학적 오류는 체계적입니다. 긴 지평선에 걸쳐 시뮬레이션은 질적으로 잘못되었습니다. 닫혀야 할 궤도가 나선형으로 시작됩니다.
표준 신경망에는 더 깊은 이유로 동일한 결함이 있습니다. 파생 상품에 대한 MLP 매핑 상태에는 아무것도 보존할 수 있는 메커니즘이 없습니다. 로컬 역학을 적절하게 학습하고 복합적인 오류를 축적합니다.
보존 주장에 대해 간략히 설명합니다.

이 블로그는 이미 시장이 보존과 같은 원칙을 따른다고 주장했습니다. 알고트레이딩을 위한 Navier-Stokes, 파트 2는 질량으로서의 유동성부터 유체역학적 위험 관리까지 자세히 설명하고 경제물리학 프레임을 적절하게 제공합니다. 평균 분산 최적화도 마찬가지로 이 블로그의 라그랑주 시스템입니다. 제한된 2차 형식에 대한 Markowitz 포트폴리오 이론 및 위험 예산/ 식별에 대한 Almgren-Chriss 최적 실행를 참조하세요. 여기서 는 공액 모멘텀의 역할을 정확하게 수행합니다.
흥미로운 움직임이 다르기 때문에 여기서는 그 중 어느 것도 다시 파생되지 않습니다. 해당 기사에서는 보존을 모델에 동기를 부여하는 은유로 사용합니다. HNN은 보존을 데이터가 요구하더라도 모델이 위반할 수 없는 구조적 제약으로 전환합니다. 그 차이점(소프트 유추와 하드 구조)은 뒤따르는 내용의 전체 내용이며 양방향으로 잘립니다. 즉, 데이터가 충족하지 못하는 제약 조건은 사전이 아니라 버그입니다.
HNN 아키텍처: 구조적 보존과 페널티 기반 보존

일반적인 물리학 기반 메커니즘(입력에 대한 네트워크 출력의 자동 그라데이션 파생물을 취하고, 물리학 잔차를 형성하고, 최소화함)은 이미 physics_loss가 autograd.grad를 통해 u_t, u_x, u_xx를 구축하고 잔차를 제곱하는 Navier-Stokes PINN에서 입증되었습니다. HNN은 한 번의 변경으로 동일한 메커니즘을 사용하며 변경이 전체 요점입니다.
PINN은 물리적 법칙을 위반하는 경우 벌칙을 적용합니다. 잔차는 가중치가 있는 손실 항입니다. 옵티마이저는 이를 데이터 적합성과 교환합니다. 무게를 낮추거나 상충되는 데이터를 전달하면 네트워크는 기꺼이 법을 위반하게 됩니다. 보존은 기본입니다.
HNN은 보전을 구조적으로 만듭니다. 제약이 없고 아무것도 보존하지 않는 벡터장 를 학습하지 않습니다. 스칼라 를 학습하고 단일 그래디언트에서 벡터장의 두 구성요소를 모두 파생합니다.
두 도함수 모두 하나의 스칼라 전위에서 나오므로 결과 필드는 구성에 따라 대칭 기울기입니다. 는 모든 매개변수 설정 에 대해 동일하게 — 무작위로 초기화되고 완전히 훈련되지 않은 네트워크를 포함합니다. 조정할 무게가 없습니다. 보존은 목적의 용어가 아니라 매개변수화의 대수적 동일성입니다.
이는 PINN이 제공하는 것보다 훨씬 더 강력한 보증이며 훨씬 더 날카로운 실패 모드가 제공됩니다. 손실은 파생된 파생 상품을 관찰된 데이터와 비교합니다.
관찰된 필드가 어떤 것의 대칭적 기울기도 아닌 경우(컬이 있는 경우 매개변수화가 표시할 수 없음) 손실은 단순히 0에 도달할 수 없습니다. 잔여 층은 최적화 실패가 아닙니다. 데이터가 해밀턴을 인정하는 것과 얼마나 멀리 떨어져 있는지를 측정한 것입니다. 이 숫자는 이 전체 아키텍처의 가장 유용한 출력이며, 이 게시물의 나머지 부분을 중심으로 구성되는 숫자입니다.
네트워크 자체는 눈에 띄지 않습니다. 에서 너비 200의 두 tanh 레이어를 거쳐 스칼라 출력까지의 MLP입니다.
좌표
금융 애플리케이션의 경우 는 일반화된 포지션(로그 가격, 포트폴리오 가중치, 팩터 노출)이고 는 일반화된 모멘텀(변화율, 모멘텀 지표, 흐름 변수)입니다. 그러면 는 네트워크가 찾을 수 있는 모든 불변성입니다. 총 시가 총액, 위험 측정, 경제적 판독이 없는 추상 수량, 아무것도 아닐 수도 있습니다.
페어링의 선택은 무죄가 아니며 이것이 표준 프레젠테이션의 공백입니다. " = 로그 가격, = 수익의 EMA"에 관한 어떤 내용도 이것이 결합임을 입증하지 않습니다. 공액은 특정 구조적 관계입니다. 는 가 일부 에 대해 유지되는 것과 같이 와 정식으로 쌍을 이루는 추진력이어야 합니다. 이를 주장하는 것과 테스트하는 것은 서로 다른 활동이며, HNN을 금융에 적용하는 문헌은 대부분 전자를 수행합니다.
| (위치) | (모멘타) |
|---|---|
| 원목가격 | 반품 EMA |
| 포트폴리오 가중치 | 체중변화율 |
심플렉틱 적분기

를 배우는 것이 문제의 절반입니다. 궤적을 생성하려면 해밀턴 방정식을 통합해야 하며 적분기는 아키텍처가 보장하는 것을 파괴할 수 있습니다.
Symplectic Integrator는 를 정확하게 보존합니다. 위상 공간 볼륨이 보존되고, 는 세속적으로 표류하는 대신 제한된 오류로 실제 값을 중심으로 진동하며, 궤도는 질적으로 정확하게 유지됩니다. RK4는 더 작은 단계당 오류를 제공하며 이러한 속성은 전혀 제공하지 않습니다.
가장 간단한 Symplectic 계획은 Stormer-Verlet(leapfrog)입니다.
분리 가능한 의 경우 이는 명시적 업데이트입니다. 재정적 해밀턴인은 일반적으로 분리 불가능합니다. 모멘텀 역학은 가격에 따라 달라지고 그 반대도 마찬가지입니다. 따라서 일반적인 경우에는 암시적 단계, 고차 방법(Yoshida, Forest-Ruth) 또는 아래의 SympNets 경로가 필요합니다.
통 외. (2020)는 도약 단계를 네트워크 레이어로 구성하면 구성에 따라 대칭적인 아키텍처가 생성된다는 것을 보여주었습니다. 각 레이어는 통합 단계이고 깊이는 단계 수와 동일하며 학습된 맵 는 대칭 구조를 정확하게 보존합니다.
안정성 보장: 현실적이고 논점을 벗어났습니다.

안정성 속성은 정리를 따르며, 이것이 바로 시장에 대해 아무 것도 증명하지 못하는 이유입니다.
역방향 오류 분석. 에 적용된 대칭적 적분기는 인근 해밀턴 를 정확하게 해결합니다. 계산된 궤적은 약간 교란된 시스템의 정확한 궤적이며 KAM 이론은 기하급수적으로 오랜 시간에 걸쳐 에너지 오류를 제한합니다.
Lyapunov 안정성. 가 평형 상태에서 최소값을 갖는 경우 는 그 자체로 평형 상태가 안정적임을 증명하는 Lyapunov 함수입니다. 별도의 분석이 필요하지 않습니다.
두 결과 모두 가 올바른 개체라는 조건부입니다. 그들은 학습된 시스템의 시뮬레이션이 충실하다고 말합니다. 그들은 학습된 시스템이 시장인지 여부에 대해 아무 말도 하지 않습니다. 0.9의 잔차 바닥에 맞춰진 완벽하게 보존된 는 아티팩트의 안정적인 시뮬레이션입니다.
| 부동산 | 표준 NN + RK4 | HNN + 증상 |
|---|---|---|
| 1000걸음 이상의 에너지 드리프트 | 세속적, 축적 | 경계, 진동 |
| 시간 가역성 | 아니 | 예 |
| 위상 공간 볼륨 | 보존되지 않음 | 정확하게 보존됨 |
| 대표 가능한 어트랙션 | 예 | 아니 (리우빌) |
| 해석 가능한 불변 | 없음 |
구현

핵심 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
심플렉틱 리프프로그 적분기
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)
위상공간 좌표
로그 가격, 차등 수익률, EMA 모멘텀 및 롤링 변동성은 이 블로그의 표준 구성입니다. 확산 모델 파이프라인 및 복잡한 매니폴드 모두 이를 제공합니다. 여기서 중요한 두 줄은 공액 쌍을 정의하는 줄입니다.
q = np.log(prices)[w:-1] # generalised position
p = ewma(np.diff(np.log(prices), axis=0), w)[w-1:-1] # generalised momentum
유한 차분 , , 길이 정렬, Adam을 사용하여 관찰된 파생 파생 상품에 대해 파생 파생 상품을 일치시키는 훈련 루프와 같은 모든 다운스트림은 기계적입니다.
보존 확인
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]),
}
이 함수가 테스트하지 않는 점을 참고하세요. 적분기가 를 유지하는지 여부를 측정합니다. 즉, 정리에 따라 가 어떤 의미인지 여부를 결정합니다. 배운 해밀턴의 표본 내 보존은 증거가 아닙니다. 중요한 시험은 다릅니다.
반증 테스트

정직한 실험은 세 부분으로 구성되며, 부정적인 결과가 당황스럽기보다는 유익하도록 설계되었습니다.
1. 잔여 층. 실제 데이터에 를 맞추고 보존이 아닌 수렴된 손실을 보고합니다. 대칭 그라데이션 매개변수화는 컬을 사용하여 벡터장을 나타낼 수 없습니다. 바닥은 관찰된 역학의 비-해밀턴 구성요소를 측정합니다. 참조와 동일한 데이터에 제한되지 않은 MLP를 맞춥니다. 구조적 제한이 없으므로 두 층 사이의 간격은 문제의 손실 단위에 명시된 해밀턴 가정의 비용 입니다.
2. 샘플 외부 보존. 하나의 창에 맞춘 다음 관찰된 샘플 외부 궤적(통합 경로가 아닌 실제 가격 경로)을 따라 를 평가합니다. 가 실제로 표준인 경우 는 본 적이 없는 데이터와 함께 거의 일정하게 유지됩니다. 가 샘플에서 벗어나면 보존된 수량은 샘플 내 아티팩트였으며 아키텍처의 보장은 아무 작업도 수행하지 않는 것입니다.
3. 조정 절제. 이는 이론 섹션에서 요구하는 부분이며 금융 HNN에 대한 프레젠테이션은 실행되지 않는 것 같습니다. 로그 가격과 수익률 EMA가 공액이라는 것을 입증하는 것은 없습니다. 주장된다. 따라서 (로그 가격, EMA 수익률), (로그 가격, 원시 수익률), (포트폴리오 가중치, 가중치 변화율) 등 서로 쌍을 테스트하고 샘플 외 안정성을 기준으로 순위를 매깁니다. 섞인 수익 대용을 제어하는 경우: 시간적 구조를 파괴하고 한계 분포를 유지하고 재조정합니다. 대리가 비슷한 안정성을 산출하는 경우 "보존량"은 시장이 아닌 매개변수화의 속성입니다.
내 사전은 결과와 비교하여 확인할 수 있도록 사실 앞에 명시되어 있습니다. 이는 실패합니다. 그 추론은 위의 입문서에 있습니다. Liouville의 정리는 유인자를 금지하고, 시장은 유인 구조를 갖고 있는 것으로 보이며, 아래의 두 탈출구는 모두 엄격한 해밀턴 가정이 유지되지 않는다는 사실을 인정하는 것입니다. 잔여 층이 높고 샘플 외부 가 모든 페어링에서 불안정한 경우 이는 물리학 정보를 바탕으로 한 사전 측정에서 깨끗하게 측정된 부정이며 이 블로그는 이전에 해당 내용을 게시했습니다(정직한 부정 , 수축 Sharpe). 우아한 이론에 대한 측정된 부정적인 내용은 검증되지 않은 튜토리얼보다 더 가치가 있습니다.
보존이 실패할 경우: 소산적 확장

실제 시장이 누출됩니다. 거래 비용, 미끄러짐 및 정보 붕괴는 시스템에서 에너지를 제거하며 엄격하게 보존된 는 이를 나타낼 수 없습니다. 두 가지 원칙적인 완화가 존재하며, 둘 다 가정이 너무 강하다는 양보로 읽어야 하며 개선으로 읽어서는 안 됩니다.
- 등각 해밀턴: 학습된 소산율 를 사용하는 모델 . 장착된 의 규모는 그 자체로 시스템이 보수적인 것과 얼마나 멀리 떨어져 있는지를 측정하는 것입니다.
- Port-Hamiltonian: , 대칭 행렬 , 소산 행렬 및 외부 강제력(뉴스, 흐름)이 있는 . 여기서 에 상대적인 는 이탈을 직접 수량화합니다.
둘 다 아키텍처에 동기를 부여한 제한된 오류 보장을 희생하면서 어트랙터를 나타내는 기능을 복원합니다. 명백히 말하면 이것이 거래입니다. Liouville을 가질 수도 있고 소산을 가질 수도 있으며 시장은 두 번째를 원하는 것처럼 보입니다.
관련 미해결 문제: 금융 해밀턴은 분리 불가능하며(암시적 또는 고차 기호 단계가 필요하거나 SympNets 기호 맵을 직접 학습해야 함) 시장은 단일 가 포착할 수 없는 여러 시간 척도에서 작동합니다. 빠르고 느린 역학을 위한 계층적 해밀턴 또는 빠른 규모의 매개변수로서 느린 변수의 단열 처리 .
결론

기계가 작동합니다. 스칼라 를 배우고, 기울기에서 벡터장을 파생시키고, 상징적으로 적분하면 대수적 항등식으로 보존, 수천 단계에 걸친 제한 오류, 정확한 시간 가역성 및 Lyapunov 함수를 무료로 얻을 수 있습니다. 이러한 주장은 모두 정리이며 검증이 필요하지 않습니다.
검증이 필요한 것은 전제입니다. HNN은 보존된 양이 존재하는지 여부를 테스트하지 않습니다. 이를 가정하고 가정에 따라 최적화하여 원활하고 안정적이며 잘 작동하는 모델로 수렴합니다. 잔여 바닥과 표본 외 안정성은 "시장이 무언가를 보존한다"와 "매개변수화가 항상 무언가를 생산한다"를 구별하는 유일한 두 가지 숫자입니다.
따라서 이 게시물이 끝나는 질문은 HNN이 안정적인지 여부가 아닙니다. 그것은 그 우아함이 BTCUSDT와의 접촉에서 살아남는지 여부입니다. 그리고 그 숫자가 페이지에 나타날 때까지 이것을 포함하여 금융 기계 학습의 모든 보존 주장에 대한 올바른 자세는 테스트되지 않았다는 것입니다.
참고자료
- Greydanus, S., Dzamba, M., & Sprague, J. (2019). 해밀턴 신경망. NeurIPS 2019.
- Tong, Y., Xiong, S., He, X., Pan, G., & Zhu, B. (2020). Symlectic Integrators를 기반으로 한 심층 해밀턴 네트워크. arXiv 사전 인쇄.
- Baaquie, B. E. (2000). 금융시장의 해밀턴. arXiv 사전 인쇄.
- Cotler, J. & Rezchikov, S. (2023). 옵션 가격 역학 해결을 위한 효율적인 해밀턴 시뮬레이션. 물리적 검토 연구.
- 고논, P. & 오르테가, J.-P. (2009). 주식시장과 양자역학. arXiv 사전 인쇄.
- 그레이다누스, S. (2019). 해밀턴 신경망 — 블로그 포스트.
- Santos, C. et al. (2022). Symplectic Momentum Neural Networks. PMLR.
Authors
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.