Research-Backed Temporal Stability for Production ML Systems
Built on peer-reviewed research accepted at IEEE DSA 2025: "Hamiltonian Neural Networks for Robust Out-of-Time Credit Scoring: Empirical Validation and Temporal Stability Analysis"
Production ML models degrade over time as data distributions shift. Standard optimizers like Adam and SGD are designed for fixed distributions, not temporal robustness. This leads to:
- Degrading risk discrimination in financial models over 12-18 months
- Frequent retraining cycles costing compute and engineering time
- Poor out-of-time prediction when deployed models face future data
This library implements Hamiltonian mechanics-based optimization that maintains performance stability across temporal distribution shifts. Validated on real-world financial data with statistically significant improvements in out-of-time scenarios.
Results from IEEE DSA 2025 peer-reviewed research on Freddie Mac Single-Family Loan-Level Dataset:
| Metric | XGBoost (Baseline) | Hamiltonian Approach | Improvement |
|---|---|---|---|
| AUC (FM12 - 12 months) | 0.6072 | 0.8027 | +32.2% |
| AUC (FM36 - 36 months) | 0.6221 | 0.7640 | +22.8% |
| AUC (FM60 - 60 months) | 0.6665 | 0.6974 | +4.6% |
| Temporal Stability | Degrades significantly | Maintains consistent | More Stable |
Statistical significance confirmed via paired t-tests (p < 0.001 for FM12 and FM36, p < 0.05 for FM60)
Key Finding: While XGBoost achieves higher conventional accuracy metrics (98%+), our Hamiltonian approach provides superior discriminative power (AUC) critical for ranking-based applications like credit scoring.
pip install hamiltonian-optimizerimport torch
import torch.nn as nn
from hamiltonian_optimizer import HamiltonianOptimizer
# Your credit scoring model
class CreditScoringNN(nn.Module):
def __init__(self, input_dim):
super().__init__()
self.fc1 = nn.Linear(input_dim, 128)
self.fc2 = nn.Linear(128, 64)
self.fc3 = nn.Linear(64, 2)
self.relu = nn.ReLU()
def forward(self, x):
x = self.relu(self.fc1(x))
x = self.relu(self.fc2(x))
return self.fc3(x)
model = CreditScoringNN(input_dim=7)
# Use Hamiltonian optimizer for temporal stability
optimizer = HamiltonianOptimizer(
model.parameters(),
lr=0.01,
beta=0.9, # Momentum coefficient
epsilon=1e-8,
lambda_reg=0.01 # Hamiltonian regularization strength
)
# Standard PyTorch training loop
for epoch in range(epochs):
optimizer.zero_grad()
outputs = model(X_train)
loss = criterion(outputs, y_train)
loss.backward()
optimizer.step()- Models must maintain performance over months/years in production
- Data distributions shift over time (concept drift)
- Out-of-time prediction accuracy matters (e.g., future risk assessment)
- You can afford 15-20% computational overhead for stability
- Working in: financial ML, fraud detection, credit scoring, time-series forecasting
- Quick prototyping or experimentation
- Stable, fixed data distributions
- Compute-constrained environments
- Generic computer vision or NLP tasks (not yet validated)
Overhead: 15-20% longer training time vs standard Adam (based on experimental validation) Memory: Comparable to Adam Worth it for: Production deployments where temporal stability reduces retraining frequency
See docs/computational_tradeoffs.md for detailed analysis.
- Superior AUC in forward-looking risk assessment (0.8027 vs 0.6072 on FM12)
- Maintains performance across economic cycles
- Handles severe class imbalance effectively (230,460:591 ratio with SMOTE)
See: examples/credit_scoring_reproduction.py
- Preliminary results show improved stability (we need more testing)
- Not yet peer-reviewed
- Validate thoroughly before production use
See: examples/time_series_stability.py
This implementation is based on applying Hamiltonian mechanics principles to neural network optimization:
- Energy Conservation: Prevents destabilizing large updates through adaptive step sizing
- Symplectic Integration: Preserves geometric properties of optimization landscape
- Temporal Regularization: Parameter history tracking for stability
The Hamiltonian optimizer uses a Forest-Ruth 4th-order symplectic integrator with adaptive step sizing:
# Core Hamiltonian update (simplified)
momentum = beta * momentum + (1 - beta) * gradient
kinetic_energy = 0.5 * ||momentum||²
potential_energy = 0.5 * ||parameters||²
hamiltonian = kinetic_energy + potential_energy
step_size = learning_rate / (sqrt(hamiltonian) + epsilon)
parameters = parameters - step_size * momentumFor theoretical details, see our paper: [Link to IEEE Xplore when published]
All results from the IEEE DSA 2025 paper are fully reproducible:
# Reproduce credit scoring results on Freddie Mac data
python examples/credit_scoring_reproduction.py
# Run ablation studies
python examples/ablation_study.pyAblation Study Results (FM12 Dataset):
| Model Variant | AUC | % Decrease vs Full Model |
|---|---|---|
| Full Hamiltonian Model | 0.8027 | - |
| Without Hamiltonian Normalization | 0.7645 | -4.76% |
| Without Momentum Updates | 0.7412 | -7.66% |
| Standard Neural Network | 0.7103 | -11.51% |
✓ Validated primarily on financial/tabular data - Not tested on CV/NLP ✓ Higher computational cost than standard optimizers (15-20% overhead) ✓ Limited interpretability - Acknowledged by IEEE reviewers
- Validation on additional financial datasets
- Rolling window testing for concept drift
- Scalability improvements for large models
- Interpretability enhancements for regulatory compliance
This library demonstrates my approach to production ML temporal stability using physics-inspired methods. If your organization needs:
- Custom optimization for temporal robustness in your domain
- Adaptation to regulated industries (finance, healthcare)
- Production deployment with stability guarantees
See CONSULTING.md for how we can work together.
If you use this in research:
@inproceedings{marin2025hamiltonian,
title={Hamiltonian Neural Networks for Robust Out-of-Time Credit Scoring: Empirical Validation and Temporal Stability Analysis},
author={Marin, Javier},
booktitle={IEEE International Conference on Data Science and Advanced Analytics (DSA)},
year={2025},
organization={IEEE}
}MIT License - see LICENSE
Accepted at IEEE DSA 2025 with strong reviews (Rating: 7-9, Accept to Strong Accept).
Reviewers noted: "Novel approach", "Superior OOT performance", "Promising direction for real-world credit risk assessment"
Dataset: Freddie Mac Single-Family Loan-Level Dataset (publicly available)
Ready to improve your model's temporal stability? Start with docs/when_to_use.md to determine if Hamiltonian optimization fits your use case.
