Skip to main content

A Hamiltonian-inspired approach for AI optimization

Project description

Hamiltonian AI

Hamiltonian AI is a Python library that implements Hamiltonian-inspired approaches for optimizing AI models. It provides tools for both multi-hop question answering and credit scoring tasks, leveraging principles from Hamiltonian mechanics to enhance model performance and stability.

The following papers provide further information regarding the theoretical development:

Features

  • Hamiltonian-inspired neural network architecture
  • Advanced Symplectic Optimizer for efficient training
  • Hamiltonian loss function for improved model convergence
  • Data processing utilities for handling imbalanced datasets
  • Evaluation metrics tailored for AI optimization tasks

Installation

You can install Hamiltonian AI using pip:

pip install hamiltonian-ai

Or clone the repository and install it locally:

Copygit clone https://github.com/yourusername/hamiltonian-ai.git
cd hamiltonian-ai
pip install -e

Quick Start Guide

Here's a simple example to get you started with Hamiltonian AI: pythonCopyimport torch from hamiltonian_ai import HamiltonianNN, AdvancedSymplecticOptimizer, hamiltonian_loss, prepare_data, evaluate_model

# Prepare your data
X, y = load_your_data()  # Load your dataset
train_dataset, test_dataset, scaler = prepare_data(X, y)

# Create data loaders
train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=32, shuffle=True)
test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=32)

# Initialize the model
model = HamiltonianNN(input_dim=X.shape[1], hidden_dims=[64, 32])

# Set up the optimizer
optimizer = AdvancedSymplecticOptimizer(model.parameters())

# Training loop
for epoch in range(10):
    for batch_X, batch_y in train_loader:
        optimizer.zero_grad()
        outputs = model(batch_X)
        loss = hamiltonian_loss(outputs, batch_y, model)
        loss.backward()
        optimizer.step()

# Evaluate the model
accuracy, precision, recall, f1, auc = evaluate_model(model, test_loader, device='cpu')
print(f"Accuracy: {accuracy}, F1 Score: {f1}, AUC: {auc}")

Examples

For more detailed examples, please check the examples/ directory in our repository:

  • Credit Scoring (inlcuding notebook)
    Data for this example is available here: https://zenodo.org/records/8401978 (DOI 10.5281/zenodo.8401977)
  • Question Answering (inlcuding notebook and data)

Documentation

For full documentation, including API reference and tutorials, visit our documentation page.

Contributing

We welcome contributions to Hamiltonian AI! Here are some ways you can contribute:

Report bugs and request features by opening issues. Submit pull requests with bug fixes or new features. Improve documentation or add examples. Share your experience using Hamiltonian AI.

Please read our Contribution Guidelines for more details.

Development Setup

To set up the development environment:

git clone https://github.com/yourusername/hamiltonian-ai.git
cd hamiltonian-ai
pip install -e .[dev]

Run tests using

pytest

Citation

If you use Hamiltonian AI in your research, please cite our paper:

@article{marin2024hamiltonian,
  title={Hamiltonian Neural Networks for Robust Out-of-Time Credit Scoring},
  author={Mar{\'\i}n, Javier},
  journal={arXiv preprint arXiv:2410.10182},
  year={2024}
}
@article{marin2024optimizing,
  title={Optimizing AI Reasoning: A Hamiltonian Dynamics Approach to Multi-Hop Question Answering},
  author={Marin, Javier},
  journal={arXiv preprint arXiv:2410.04415},
  year={2024}
}

Contact

For any questions or feedback, please open an issue on our GitHub repository or contact us at javier@jmarin.info

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hamiltonian_ai-0.1.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hamiltonian_ai-0.1.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file hamiltonian_ai-0.1.0.tar.gz.

File metadata

  • Download URL: hamiltonian_ai-0.1.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for hamiltonian_ai-0.1.0.tar.gz
Algorithm Hash digest
SHA256 49be8142e855c8a79dc317429d351b144d83304d8afc85b41a32224b4f752552
MD5 5aea1061505ff65ed095a8d0c739126e
BLAKE2b-256 c16faace39fda381237ca56e4de1ee5690f903b242e20440fb0456a17b794891

See more details on using hashes here.

File details

Details for the file hamiltonian_ai-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: hamiltonian_ai-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for hamiltonian_ai-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 584a713f86c93709c1c64f34312fe21741aabfcd986402067ae758ed47dbd942
MD5 5f5d87dc4f4a969a776f4e89b3f990ea
BLAKE2b-256 2bc2535788f63587ce8fc896310be0560a0f10b44e0692c555dd3567f1063a49

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page