Hamiltonian Neural Networks: Does a Financial System Conserve Anything?
Есть два вопроса, которые вы можете задать о гамильтоновых нейронных сетях, и только один из них интересен.
Скучный вопрос: "Стабильны ли HNN?" Ответ — да, и это теорема, а не эксперимент. Закодируйте уравнения Гамильтона в архитектуру, интегрируйте их с помощью симплектической схемы, и обратный анализ ошибок даст вам ограниченную энергетическую ошибку на экспоненциально длинных горизонтах. Ничто о финансах не задействовано. Чтобы поверить в это, вам не нужен бэктест.
Интересный вопрос заключается в том, что результат стабильности незаметно предполагает: допускает ли вектор финансового состояния вообще сохраняющуюся величину? HNN не обнаруживает, существует ли существует. Он предполагает существует и находит лучший вариант при этом предположении. Если рынки не имеют сохраненных для выбранных вами координат сеть по-прежнему будет сходиться, по-прежнему будет генерировать гладкую скалярную величину, по-прежнему интегрироваться без разрушения — и все это будет очень стабильной моделью ничего.
Этот пост строит механизм, а затем тратит вторую половину, пытаясь его сломать. Тестируемое утверждение является узким и фальсифицируемым: выбранное пара — скажем, лог-цена и EMA доходности — канонически сопряжена, что означает на самом деле имеет место для некоторых . Это эмпирическое утверждение, и теоретический раздел проекта не дает оснований верить ему.
Гамильтонова механика: что здесь нового

Фазовое пространство, динамические системы, траектории и орбиты уже являются словарем в этом блоге — см. аттракторы в алгоритмической торговле для определений и комплексных многообразий для реконструкции фазового пространства посредством вложения Такенса. Дальнейшее предполагает их.
Новым является симплектическая структура. Классическая механика имеет две эквивалентные формулировки. Ньютон дает . Гамильтон дает скалярную функцию из чего следуют все динамики:
Важны три следствия, и ни одно из них недоступно для общей динамической модели:
- сохраняется вдоль траекторий. Система ограничена поверхностью постоянной энергии — многообразием меньшей размерности внутри фазового пространства. Это жесткое ограничение того, куда может двигаться государство, а не тенденция.
- Симплектическая 2-форма. сохраняется. Объем фазового пространства точно сохраняется (теорема Лиувилля). Траектории не могут сходиться на аттракторе; поток несжимаем.
- Динамика обратима во времени. Запустите поток в обратном направлении, и вы точно восстановите исходное состояние.
На пункте 2 стоит остановиться, потому что это самое острое противоречие со всем остальным в этом блоге. Теорема Лиувилля гласит, что гамильтонова система не имеет аттракторов. Потоки, сохраняющие объем, не могут сжиматься ни на что. Если вы верите, что рынки обладают притягивающей структурой (а в статье об аттракторах утверждается, что она есть), то вы уже убеждены в том, что рынки не являются гамильтоновыми в строгом смысле этого слова. Это настоящий конфликт, а не формальность, и именно по этой причине приведенные ниже диссипативные расширения не являются второстепенной мыслью.
Почему важен интегратор
Симулируйте гамильтонову систему с помощью наивного интегратора (Эйлер, RK4), и вычисленная траектория медленно ускользает от поверхности постоянной энергии. Локальная ошибка усечения невелика; геометрическая ошибка носит систематический характер. В долгосрочной перспективе моделирование становится качественно неверным: орбиты, которые должны были сомкнуться, начинают вращаться по спирали.
Стандартные нейронные сети имеют тот же недостаток по более глубокой причине. Сопоставление состояния MLP с производными не имеет механизма сохранения чего-либо. Он адекватно изучает локальную динамику и накапливает ошибки, которые усугубляются.
Заявление о сохранении, кратко

В этом блоге уже утверждалось, что рынки подчиняются принципам сохранения — Навье-Стоукс об алгоритмическом трейдинге, часть 2 подробно излагает аргументы, от ликвидности как массы до управления гидродинамическими рисками, и дает правильное обоснование эконофизики. Оптимизация средней дисперсии также уже является лагранжевой системой в этом блоге: см. Теория портфеля Марковица для квадратичной формы с ограничениями и оптимального исполнения Альмгрена-Крисса для риск-бюджета/ идентификация, где играет именно роль сопряженного импульса.
Ничего из этого здесь не воспроизводится заново, потому что интересный ход другой. В этих статьях консервация используется как метафора, мотивирующая модель. HNN превращает сохранение в архитектурное ограничение, которое модель не может нарушить, даже если этого требуют данные. Это различие — мягкая аналогия и жесткая структура — составляет все содержание того, что следует далее, и оно касается обоих: ограничение, которому данные не удовлетворяют, не является априорным, это ошибка.
Архитектура HNN: структурная и штрафная консервация

Общий физический механизм — взять автоградные производные выходных данных сети по отношению к ее входным данным, сформировать физическую невязку, минимизировать ее — уже продемонстрирован в ПИНН Навье-Стокса, чей physics_loss строит u_t, u_x, u_xx с помощью autograd.grad и возводит остаток в квадрат. HNN использует тот же механизм с одним изменением, и в этом изменении вся суть.
PINN наказывает за нарушение физического закона. Остаток представляет собой член потерь с весом; оптимизатор компенсирует это соответствием данных. Уменьшите вес или передайте ему противоречивые данные, и сеть с радостью нарушит закон. Сохранение является предпочтением.
HNN делает сохранение структурным. Он не изучает векторное поле , который является неограниченным и ничего не сохраняет. Он изучает скаляр и выводит оба компонента векторного поля из одного градиента:
Поскольку обе производные происходят от одного скалярного потенциала, результирующее поле по построению является симплектически-градиентным. идентично для каждой настройки параметра — включая случайно инициализированную, совершенно необученную сеть. Нет никакого веса, который можно было бы снизить. Сохранение — это алгебраическое тождество параметризации, а не термин в цели.
Это гораздо более надежная гарантия, чем PINN, и она имеет гораздо более острый режим отказа. Убыток сравнивает производные деривативы с наблюдаемыми данными:
Если наблюдаемое поле не является симплектическим градиентом чего-либо — если оно имеет ротор, который параметризация не может представить — потери просто не могут достичь нуля. Остаточный нижний предел не является ошибкой оптимизации. Это измерение того, насколько данные далеки от допуска гамильтониана. Это число является наиболее полезным результатом всей этой архитектуры, и именно вокруг этого числа организована остальная часть этого поста.
Сама сеть ничем не примечательна: МЛП от через два слоя Тана шириной 200 к скалярному выходу.
Координаты
Для финансовых приложений - это обобщенная позиция (логарифм цен, веса портфеля, подверженность факторам) и обобщенный импульс (скорости изменений, индикаторы импульса, переменные потока). тогда это любой инвариант, который может найти сеть — возможно, общая рыночная капитализация, возможно, мера риска, возможно, абстрактная величина без экономического значения, возможно, ничего.
Выбор пары не безобиден, и здесь скрыта проблема стандартного изложения. Ничто в утверждении " = лог-цена, = EMA доходности" не доказывает, что эти координаты сопряжены. Сопряженность — это конкретная структурная связь: должен быть импульсом, канонически сопряженным с , так чтобы выполнялось для некоторого . Утверждение и проверка этого факта — разные задачи, а литература об адаптации HNN к финансам в основном занимается первой.
| (позиции) | (импульс) |
|---|---|
| Вход-цены | EMA доходности |
| Вес портфеля | Скорость изменения веса |
Симплектические интеграторы

Обучение это половина проблемы. Генерация траекторий требует интеграции уравнений Гамильтона, и интегратор может разрушить то, что гарантирует архитектура.
Симплектические интеграторы сохранять точно. Объем фазового пространства сохраняется, колеблется вокруг своего истинного значения с ограниченной ошибкой, а не дрейфует вековым образом, и орбиты остаются качественно правильными. RK4 дает меньшую ошибку на шаг и ни одно из этих свойств.
Простейшая симплектическая схема — Штормера-Верле (чехарда):
Для отделяемых это явные обновления. Финансовые гамильтонианы, как правило, неразделимы — динамика импульса зависит от цен и наоборот — поэтому в общем случае требуются неявные шаги, методы более высокого порядка (Йошида, Форест-Рут) или маршрут SympNets, описанный ниже.
Тонг и др. (2020) показал, что составление скачкообразных шагов в виде сетевых уровней создает архитектуры, которые являются симплектическими по построению: каждый уровень представляет собой шаг интегрирования, глубина равна количеству шагов, а изученная карта точно сохраняет симплектическую структуру.
Гарантии стабильности: реальные и несущественные

Свойства устойчивости следуют из теорем, и именно поэтому они ничего не доказывают о рынках.
Обратный анализ ошибок. Симплектический интегратор, примененный к точно решает ближайший гамильтониан . Вычисленная траектория является точной траекторией слегка возмущенной системы, а теория КАМ ограничивает энергетическую ошибку за экспоненциально большие времена.
Устойчивость по Ляпунову. Если имеет минимум в равновесии, сама по себе является функцией Ляпунова, доказывающей устойчивость равновесия. Никакого отдельного анализа не требуется.
Оба результата обусловлены быть правильным объектом. Они говорят вам, что симуляция изученной системы верна; они ничего не говорят о том, является ли изучаемая система рынком. Прекрасно сохранившийся подгонка к остаточному полу 0,9 представляет собой стабильную симуляцию артефакта.
| Недвижимость | Стандарт НН + РК4 | 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
Все, что ниже по потоку — конечная разность , , выравнивание длины, цикл обучения, сопоставляющий производные с наблюдаемыми с помощью Адама, — механический.
Проверка сохранности
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 доходности), (лог-цена, необработанные доходности), (веса портфеля, скорости изменения весов) — и ранжируйте их по стабильности вне выборки. В качестве контрольного суррогата перемешайте доходности: разрушьте временную структуру, сохранив маргинальное распределение, и переобучите модель. Если суррогат дает сопоставимую стабильность , "сохраняющаяся величина" является свойством параметризации, а не рынка.
Мой приор заявил перед фактом, чтобы можно было сверить его с результатом: это не удалось. Аргументация приведена в приведенном выше букваре: теорема Лиувилля запрещает аттракторы, рынки, по-видимому, имеют притягивающую структуру, и оба приведенных ниже аварийных люка являются признанием того, что строгое гамильтоновое предположение не выполняется. Если остаточный пол высокий и выходит за пределы выборки нестабильна в каждой паре, это чистый измеренный негатив по отношению к априорным данным, основанным на физике, и этот блог публиковал их раньше (честный негатив, выкачал Шарпа). Измеренный негатив элегантной теории стоит больше, чем непроверенный учебник.
Если сохранение не удалось: диссипативные расширения

Реальные рынки утекают. Транзакционные издержки, проскальзывание и распад информации отнимают энергию из системы, и строго сохраняется не может это представлять. Существуют два принципиальных послабления, и оба следует рассматривать как уступки в том, что предположение было слишком сильным, а не как уточнения:
- Конформный гамильтониан: модель с изученной скоростью диссипации . Величина установленного само по себе является показателем того, насколько далека система от консервативной.
- Порт-Гамильтониан: , с симплектическая матрица, матрица диссипации и внешнее воздействие (новости, потоки). Здесь относительно непосредственно определяет количество отъезда.
Оба восстанавливают способность представлять аттракторы за счет гарантии ограниченной ошибки, которая мотивировала эту архитектуру. Такова сделка, если говорить прямо: вы можете иметь Лиувилля, или вы можете иметь расточительство, и рынки, похоже, хотят второго.
Связанные с этим открытые проблемы: финансовые гамильтонианы неразделимы (требуются неявные симплектические шаги или симплектические шаги более высокого порядка, или SympNets непосредственное изучение симплектических карт), а рынки работают в нескольких временных масштабах, вряд ли уловит — иерархические гамильтонианы для быстрой и медленной динамики или адиабатическая трактовка медленных переменных как параметров быстрой шкалы .
Заключение

Машины работают. Изучите скаляр , выведите векторное поле из его градиента, проинтегрируйте симплектически, и вы получите сохранение в виде алгебраического тождества, ограниченную ошибку на тысячах шагов, точную обратимость во времени и бесплатную функцию Ляпунова. Каждое из этих утверждений является теоремой, и ни одно из них не требует проверки.
Проверять нужно именно эту предпосылку. HNN не выясняет, существует ли сохраняющаяся величина: сеть принимает ее существование как данность и оптимизирует модель, все равно сходясь к гладкой, стабильной и хорошо работающей конструкции. Остаточный уровень ошибки и стабильность вне выборки — единственные два числа, которые отличают "рынок что-то сохраняет" от "параметризация всегда что-то производит".
Таким образом, вопрос, которым заканчивается этот пост, заключается не в том, стабильны ли HNN. Вопрос в том, выживет ли элегантность при контакте с BTCUSDT — и до тех пор, пока эти цифры не появятся на бумаге, правильная позиция в отношении любого заявления о сохранении в финансовом машинном обучении, включая это, заключается в том, что оно не проверялось.
Ссылки
- Грейданус С., Дзамба М. и Спрэг Дж. (2019). Гамильтоновы нейронные сети. НейрИПС 2019.
- Тонг Ю., Сюн С., Хэ Х., Пан Г. и Чжу Б. (2020). Глубокие гамильтоновы сети на основе симплектических интеграторов. Препринт arXiv.
- Бааки, Б.Е. (2000). Гамильтониан на финансовых рынках. Препринт arXiv.
- Котлер Дж. и Резчиков С. (2023). Эффективное гамильтоновое моделирование для решения динамики цен опционов. Физический обзор исследований.
- Гонон П. и Ортега Ж.-П. (2009). Фондовые рынки и квантовая динамика. Препринт arXiv.
- Грейданус, С. (2019). Гамильтоновы нейронные сети — сообщение в блоге.
- Сантос С. и др. (2022). Нейронные сети симплектического импульса. ПМЛР.
Авторы
Инженер торговых систем
Разработка торговых ботов с 2017 года: межбиржевой арбитраж (подключал до 30 бирж), парный арбитраж на коинтеграции между спотом и фьючерсами, скальпинг, фронтраннинг, торговля по новостям, сентиментный анализ, трендовые алгоритмы, а также алгоритмы управления и балансировки портфелей. Делает выставление ордеров до 1 мс, warehouse для big data, бэктестинг-движки, AI-агентов и интерфейсы для ботов (в т.ч. open-source profitmaker.cc). Стек: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, архитектура.