Skip to main content

Manifold-Constrained Hyper-Connections: Stable multi-history skip connections for deep neural networks.

Project description

mHC Logo

mhc: Manifold-Constrained Hyper-Connections

Honey Badger Stability for Deeper, More Stable Neural Networks.

Python 3.9+ PyTorch 2.0+ License: MIT CI

DocumentationExamplesPaperContributing


🎯 What is mHC?

mhc is a next-generation PyTorch library that reimagines residual connections. Instead of simple one-to-one skips, mHC learns to dynamically mix multiple historical network states through geometrically constrained manifolds, bringing Honey Badger toughness to your gradients.

🚀 High Performance 🧠 Smart Memory 🛠️ Drop-in Ease
Reach deeper than ever before with optimized gradient flow. Dynamically mix past states for richer feature representation. Transform any model to mHC with a single line of code.

mHC Architecture

Installation

“We recommend uv for faster and reproducible installs, but standard pip is fully supported.”

# Using pip (standard)
pip install mhc
# Using uv (faster, recommended)
uv pip install mhc

Optional Extras

# Visualization utilities
pip install "mhc[viz]"
uv pip install "mhc[viz]"

# TensorFlow support
pip install "mhc[tf]"
uv pip install "mhc[tf]"

30-Second Example

import torch
from mhc import MHCSequential

# Create a model with mHC skip connections
model = MHCSequential([
    nn.Linear(64, 64),
    nn.ReLU(),
    nn.Linear(64, 64),
    nn.ReLU(),
    nn.Linear(64, 32)
], max_history=4, mode="mhc", constraint="simplex")

# Use it like any PyTorch model
x = torch.randn(8, 64)
output = model(x)

Inject into Existing Models

Transform any model to use mHC with one line:

from mhc import inject_mhc
import torchvision.models as models

model = models.resnet50(pretrained=True)
inject_mhc(model, target_types=nn.Conv2d, max_history=4)

🤔 Why mHC?

The Gradient Bottleneck

Standard residual connections only look one step back: $x_{l+1} = x_l + f(x_l)$. While revolutionary, this narrow window limits the network's ability to leverage long-range dependencies and can lead to diminishing returns in extremely deep architectures.

The mHC Breakthrough

mHC implements a history-aware manifold that mixes a sliding window of $H$ past representations:

$$ x_{l+1} = f(x_l) + \sum_{k=l-H+1}^{l} \alpha_{l,k}, x_k $$

Where:

  • $\alpha_{l,k}$: Learned mixing weights optimized for feature relevance.
  • Constraints: Weights are projected onto stable manifolds (Simplex, Identity-preserving, or Doubly Stochastic) to ensure mathematical convergence.

Key Advantages

Benefit Description
Deep Stability Geometric constraints prevent gradient explosion even at 200+ layers.
Feature Fusion Multi-history mixing allows layers to recover lost spatial or semantic info.
Adaptive Flow The network learns which historical states are most important for the current layer.

📊 Performance Highlights

Experiments with 50-layer networks show:

  • 2x Faster Convergence compared to standard ResNet on deep MLPs.
  • Superior Gradient Stability through geometric manifold constraints.
  • Minimal Overhead (~10% additional compute for 4x history).

[!TIP] Run the benchmark yourself: uv run python experiments/benchmark_stability.py


📊 Visualizing Results

Mixing Weights Gradient Flow
Mixing Weights Gradient Flow
Learned coefficients over time Improved backpropagation signal

🌳 Repository Structure

MHC/
├── mhc/                     # Core package
│   ├── constraints/         # Mathematical projections
│   ├── layers/              # mHC Skip implementations
│   ├── tf/                  # TensorFlow compatibility
│   └── utils/               # Injection & logging tools
├── tests/                   # Robust PyTest suite
├── docs/                    # Documentation sources
└── examples/                # Quick-start notebooks

🛠️ Development Installation

For contributors cloning the repository:

git clone https://github.com/gm24med/MHC.git
cd MHC

# Using uv (recommended for dev)
uv pip install -e ".[dev]"

# Or standard pip
pip install -e ".[dev]"

⭐ Star us on GitHub!

Report BugRequest FeatureDiscussions

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

mhc-0.5.2.tar.gz (32.1 kB view details)

Uploaded Source

Built Distribution

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

mhc-0.5.2-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file mhc-0.5.2.tar.gz.

File metadata

  • Download URL: mhc-0.5.2.tar.gz
  • Upload date:
  • Size: 32.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for mhc-0.5.2.tar.gz
Algorithm Hash digest
SHA256 f6746a4ee5b1b02fe1de56bb42d1d3ce78a418522d7773f1dab436d6c3493b2a
MD5 0c6a1cac9a56ecb0458436c2991ba867
BLAKE2b-256 b5d4a4c7422a8d25414cd05826b6fe354808ecaafd61ccb04568ecef3ad907e1

See more details on using hashes here.

File details

Details for the file mhc-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: mhc-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 31.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for mhc-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bc9a90d3cae38b5732f5e8a7893192be8e8db1794f23601fa1b6a2a22ae6b7ef
MD5 a9beb503404422836acdcf922a8508e3
BLAKE2b-256 6d1e1eb89135286a75cc90f880c45ecc668a99fbb138252ba2bbfceb45c97f04

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