Hamiltonian Neural Networks: Does a Financial System Conserve Anything?
ハミルトニアン ニューラル ネットワークに関して質問できる質問は 2 つありますが、そのうちの 1 つだけが興味深いものです。
退屈な質問は、「HNN は安定していますか?」というものです。答えは「はい」です。これは定理であり、実験ではありません。ハミルトン方程式をアーキテクチャにエンコードし、シンプレクティック スキームと統合すると、後方誤差解析により、指数関数的に長い期間にわたるエネルギー誤差の境界がわかります。金融に関することは何も関係ありません。それを信じるのにバックテストは必要ありません。
興味深い質問は、安定性の結果が密かに前提としている質問です: 金融状態ベクトルはそもそも保存量を認めますか? HNN は が存在するかどうかを発見しません。 が存在すると仮定し、その仮定の下で最適なものを見つけます。選択した座標に対して保存された が市場にない場合でも、ネットワークは引き続き収束し、滑らかなスカラーを生成し、爆発することなく統合されます。そして、全体は非常に安定した何もないモデルになります。
この投稿では機械を構築し、後半をそれを壊すことに費やします。テスト対象の主張は範囲が狭く、反証可能です。つまり、選択された ペア (対数価格と収益の EMA など) は 正準共役 であり、 が実際に一部の に対して成り立つことを意味します。これは経験的な主張であり、草案自身の理論セクションにはそれを信じる理由が示されていません。
ハミルトン力学: ここで実際に何が新しいのか

位相空間、力学システム、軌道、軌道はすでにこのブログの語彙となっています。定義については algotrading のアトラクター] を、Takens 埋め込みによる位相空間の再構成については 複素多様体] を参照してください。以下はそれらを前提としています。
新しい部分はシンプレクティック構造です。古典力学には 2 つの同等の定式化があります。ニュートンは を与えます。ハミルトンは、すべてのダイナミクスが従うスカラー関数 を与えます。
重要な結果は 3 つありますが、そのどれも一般的な力学モデルでは利用できません。
- は軌道に沿って保存されます。 この系は、一定エネルギー面、つまり位相空間内の低次元多様体に限定されます。これは国家がどこへ向かうのかについての厳しい制約であり、傾向ではありません。
- シンプレクティック 2 形式 は保存されます。 位相空間体積は正確に保存されます (Liouville の定理)。 Trajectories cannot converge onto an attractor;流れは非圧縮性です。
- ダイナミクスは時間可逆的です。 フローを逆方向に実行すると、初期状態が正確に回復されます。
ポイント 2 は、このブログの他のすべての項目と最も鋭い緊張関係であるため、一時停止する価値があります。リウヴィルの定理によれば、ハミルトニアン システムには アトラクターがない。体積を維持するフローは何にも収縮できません。市場には魅力的な構造があると信じている場合、そしてアトラクターの記事では、それがそうだと主張していますが、あなたはすでに市場が厳密な意味でハミルトニアンではないことにコミットしていることになります。これは専門的な問題ではなく、実際の矛盾であり、以下の消散的な拡張が後付けではない理由です。
インテグレーターが重要な理由
単純な積分器 (オイラー、RK4) を使用してハミルトニアン システムをシミュレートすると、計算された軌道は一定エネルギー曲面からゆっくりとドリフトします。ローカル切り捨て誤差は小さいです。 幾何学的エラーは体系的です。長期にわたってシミュレーションは定性的に間違ったものになり、閉じるはずの軌道が螺旋を描き始めます。
標準的なニューラル ネットワークには、より深い理由で同じ欠陥があります。 MLP の状態を導関数にマッピングするには、何も保存するメカニズムがありません。局所的なダイナミクスを適切に学習し、エラーが蓄積され、それがさらに悪化します。
保存の主張を簡単に言うと

このブログでは、市場は保全のような原則に従うとすでに主張しています。アルゴリズム取引に関するナビエ・ストークス、パート 2 では、質量としての流動性から流体力学的なリスク管理に至るまで詳細に主張し、経済物理学の枠組みを適切にソースしています。平均分散最適化も同様に、すでにこのブログでラグランジュ システムになっています。制約付き二次形式については マルコウィッツ ポートフォリオ理論] を、リスク予算/ 同定については アルムグレン-クリスの最適実行] を参照してください。ここで、 はまさに共役モメンタムの役割を果たします。
興味深い動きは異なるため、ここでは再導出されません。これらの記事では、保全をモデルの動機付けとなる 比喩 として使用しています。 HNN は、保存を * アーキテクチャ上の制約 * に変え、データが要求したとしてもモデルが違反することはできません。その違い (ソフトな類似性とハードな構造) が以下の内容全体であり、両方の点で異なります。データが満たさない制約は事前確率ではなく、バグです。
HNN アーキテクチャ: 構造的保存と罰則付き保存

一般的な物理情報に基づいたメカニズム (入力に関してネットワーク出力の autograd 導関数を取得し、物理残差を形成し、それを最小化する) は、すでに Navier-Stokes PINN で実証されており、その physics_loss は autograd.grad を介して u_t、u_x、u_xx を構築し、残差を 2 乗します。 HNN は同じメカニズムを 1 つの変更を加えて使用しており、その変更が重要です。
PINN は物理法則の違反を 罰します。残差は重みを伴う損失項です。オプティマイザーはデータの適合性とトレードオフします。重みを下げるか、矛盾するデータを渡すと、ネットワークは喜んで法律を違反します。保存は優先事項です。
HNN は保全を 構造的 にします。ベクトル場 は学習しません。これは制約がなく、何も保存されません。 スカラー を学習し、単一の勾配からベクトル場の両方の成分を導出します。
両方の導関数は 1 つのスカラー ポテンシャルから得られるため、結果として得られる場は構築上、シンプレクティック勾配になります。 、同様に すべての パラメータ設定 — ランダムに初期化された、完全にトレーニングされていないネットワークを含みます。調整する重さはありません。保存はパラメータ化の代数的同一性であり、目的の項ではありません。
これは PINN が提供するものよりもはるかに強力な保証であり、より鋭い障害モードが付属しています。損失は、導出された導関数を観測データと比較します。
観測された フィールドが何のシンプレクティック勾配でもない場合、パラメーター化で表現できないカールがある場合、損失は単にゼロに達することができません。残りのフロアは最適化の失敗ではありません。 これは、データがハミルトニアンを認めることからどの程度離れているかを示す測定値です。 この数値は、このアーキテクチャ全体の最も有用な出力であり、この投稿の残りの部分はこの数値を中心に構成されています。
ネットワーク自体は目立ったものではありません。 から幅 200 の 2 つの Tanh 層を経由してスカラー出力までの MLP です。
座標
金融アプリケーションの場合、 は一般化されたポジション (対数価格、ポートフォリオ ウェイト、ファクター エクスポージャー) であり、 は一般化されたモメンタム (変化率、モメンタム指標、フロー変数) です。 は、ネットワークが見つけることができるあらゆる不変量です。おそらく、総時価総額、おそらくはリスク尺度、おそらくは経済指標のない抽象的な量、おそらくは何もありません。
組み合わせの選択に罪はなく、これが標準的なプレゼンテーションのギャップです。 「 = 対価格、 = 収益のEMA」については、これらが共役であることを証明するものは何もありません。共役は特定の構造的関係です。 は と正規にペアになっている運動量でなければなりません。たとえば、 が一部の に対して成り立つようになります。それを主張することとそれをテストすることは別の活動であり、HNN を金融に適応させる文献はほとんどが前者を行っています。
| (ポジション) | (勢い) |
|---|---|
| 原木価格 | リターンのEMA |
| ポートフォリオの重み | 体重変化率 |
シンプレクティック インテグレータ

を学習すれば、問題の半分は解決できます。軌道を生成するにはハミルトン方程式を積分する必要があり、積分器はアーキテクチャが保証しているものを破壊する可能性があります。
シンプレクティック積分器はを正確に保存します。位相空間体積は保存され、 は経年的にドリフトするのではなく、誤差を抑えて真の値の周囲で振動し、軌道は定性的に正しい状態を保ちます。 RK4 ではステップごとの誤差が小さくなり、これらの特性はまったくありません。
最も単純なシンプレクティック スキームは Stormer-Verlet (リープフロッグ) です。
分離可能な の場合、これらは明示的な更新です。金融ハミルトニアンは一般に分離不可能であり、運動量のダイナミクスは価格に依存し、その逆も同様です。そのため、一般的な場合には、暗黙的なステップ、高次の手法 (吉田、フォレスト-ルース)、または以下の SympNets ルートが必要です。
トンら。 (2020) は、リープフロッグ ステップをネットワーク層として構成すると、構築によってシンプレクティックなアーキテクチャが生成されることを示しました。各層は統合ステップであり、深さはステップ数に等しく、学習されたマップ はシンプレクティック構造を正確に保存します。
安定性の保証: 本物、そして的を外したもの

安定性の特性は定理から導かれますが、それがまさに、定理が市場について何も証明しない理由です。
後方誤差解析。 に適用されるシンプレクティック積分器は、近くの ハミルトニアン を正確に解きます。計算された軌道は、わずかに摂動されたシステムの正確な軌道であり、KAM 理論は、指数関数的に長い時間にわたってエネルギー誤差を制限します。
リアプノフの安定性。 が平衡状態で最小値を持つ場合、 自体は、その平衡状態が安定していることを証明するリアプノフ関数です。個別の分析は必要ありません。
どちらの結果も、 が正しいオブジェクトであることが条件となります。彼らは、学習されたシステムのシミュレーションが忠実であると言っています。彼らは、学習されたシステムが市場であるかどうかについては何も言いません。残差フロア 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 モメンタム、およびローリング ボラティリティは、このブログの標準的な構成です。拡散モデル パイプライン と 複雑な多様体 の両方がそれを提供します。ここで重要なのは、共役ペアを定義する 2 行だけです。
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]),
}
この関数が何をテストしないのかに注意してください。これは、インテグレータが を保存するかどうかを測定します。つまり、定理により、 に意味があるかどうかがわかります。学習されたハミルトニアンのサンプル内保存は証拠ではありません。重要なテストは異なります。
反証テスト

正直な実験は 3 つの部分からなり、否定的な結果が恥ずかしいというよりも有益になるように設計されています。
1.残差フロア。 実際のデータに を当てはめ、保存ではなく収束した損失を報告します。シンプレクティック勾配パラメータ化では、curl を使用してベクトル場を表すことはできません。フロアは、観察されたダイナミクスの非ハミルトン成分を測定します。制約のない MLP を参照として同一のデータに当てはめます。これには構造的な制限がないため、2 つのフロア間のギャップは、問題の損失単位で表されるハミルトニアン仮定のコスト * です*。
2.サンプル外保存。 1 つのウィンドウにフィットし、観察された サンプル外軌跡 (統合されたものではなく、実際の価格経路) に沿って を評価します。 が本当に正規である場合、 は見たことのないデータに沿ってほぼ一定のままです。 がサンプル外に逸脱した場合、保存された量はサンプル内のアーチファクトであり、アーキテクチャの保証は機能しません。
3.座標アブレーション。 これは理論セクションが要求する部分であり、金融 HNN のプレゼンテーションは実行されないようです。対数価格とリターンのEMAが共役であることを証明するものは何もありません。それは主張されています。したがって、ペアリングを相互にテストし、(対数価格、EMA リターン)、(対数価格、生リターン)、(ポートフォリオ ウェイト、ウェイト変化率) をテストし、サンプル外の の安定性によってランク付けします。コントロールとしてシャッフルされたリターンのサロゲートに対して: 時間構造を破壊し、限界分布を維持し、再調整します。サロゲートが同等の 安定性をもたらす場合、「保存量」は市場の特性ではなくパラメータ化の特性です。
私の事前の、結果と照らし合わせてチェックできるように事実の前に記載されています。これは失敗します。その理由は上記の入門書にあります。リウヴィルの定理はアトラクターを禁止し、市場には引き付ける構造があるように見えます。また、以下の両方の脱出ハッチは厳密なハミルトンの仮定が成り立たないことを認めています。残留下限が高く、サンプル外の がすべてのペアで不安定な場合、それは物理学に基づいた事前に測定されたクリーンなネガティブであり、このブログでも以前にそれらを公開しています (正直なネガティブ 、収縮した Sharpe])。洗練された理論に対する評価された否定的な意見は、テストされていないチュートリアルよりも価値があります。
保存が失敗した場合: 散逸性拡張

現実の市場が漏れる。トランザクションコスト、スリッページ、情報の減衰によりシステムからエネルギーが奪われ、厳密に保存された はそれを表すことができません。 2 つの原則的な緩和が存在しますが、どちらも改善策としてではなく、前提が強すぎたという譲歩 として読まれる必要があります。
- 等角ハミルトニアン: 学習された散逸率 を備えたモデル 。適合した の大きさ自体が測定値、つまりシステムが保守的なものからどれだけ離れているかを表します。
- ポート ハミルトニアン: 。 はシンプレクティック行列、 は散逸行列、および 外部強制 (ニュース、フロー)。ここで、 に対する は、逸脱を直接定量化します。
どちらも、アーキテクチャの動機となった限界誤差保証を犠牲にして、アトラクターを表現する能力を復元します。はっきり言って、これがトレードだ。リウヴィルを手に入れることもできるし、散逸を手に入れることもできるし、市場は後者を望んでいるように見える。
関連する未解決の問題: 金融ハミルトニアンは分離不可能であり (暗黙的または高次のシンプレクティック ステップ、または SympNets によるシンプレクティック マップの直接学習が必要)]、市場は単一の ではキャプチャできない可能性が高い複数のタイム スケールで動作します。高速および低速ダイナミクスの階層的ハミルトニアン、または高速スケールのパラメーターとしての低速変数の断熱処理です。 。
## 結論

機械は動きます。スカラー を学習し、その勾配からベクトル場を導出し、シンプレクティックに積分すると、代数恒等としての保存、数千ステップにわたる有界誤差、正確な時間可逆性、リアプノフ関数が無料で得られます。これらの主張はどれも定理であり、検証する必要はありません。
検証が必要なのは前提です。 HNN は、保存された量が存在するかどうかをテストしません。保存された量を仮定し、その仮定に基づいて最適化し、関係なく、滑らかで安定した適切に動作するモデルに収束します。残差下限とサンプル外 の安定性は、「市場が何かを保存する」ことと「パラメータ化が常に何かを生み出す」ことを区別する唯一の 2 つの数値です。
したがって、この投稿で終わる問題は、HNN が安定しているかどうかではありません。重要なのは、そのエレガンスが BTCUSDT との接触を経て存続するかどうかです。そして、これらの数値がページに掲載されるまでは、これを含む金融機械学習におけるすべての保存主張に対する正しい姿勢は、テストされていないということです。
参考文献
- Greydanus, S.、Dzamba, M.、および Sprague, J. (2019)。 ハミルトニアン ニューラル ネットワーク。 NeurIPS 2019。
- Tong, Y.、Xiong, S.、He, X.、Pan, G.、Zhu, B. (2020)。 シンプレクティック積分器に基づくディープ ハミルトニアン ネットワーク。 arXiv プレプリント。
- Baaquie、B.E. (2000)。 金融市場のハミルトニアン。 arXiv プレプリント。
- コトラー、J. & レズチコフ、S. (2023)。 オプション価格ダイナミクスを解決するための効率的なハミルトニアン シミュレーション。フィジカルレビューリサーチ。
- ゴノン、P. & オルテガ、J.-P. (2009年)。 株式市場と量子力学。 arXiv プレプリント。
- グレイダナス、S. (2019)。 ハミルトニアン ニューラル ネットワーク — ブログ投稿。
- サントス、C. 他。 (2022年)。 シンプレクティック モメンタム ニューラル ネットワーク。 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.