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]"


📜 Roadmap

  • v0.4: Managed Layers & Model Injection
  • v0.5: Deep Stability Benchmark Suite
  • [/] v0.6: PyPI Release & Documentation Site
  • v0.7: PyTorch Lightning & Hugging Face Integration
  • v0.8: Pre-trained Model Zoo

⭐ 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.1.tar.gz (32.5 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.1-py3-none-any.whl (32.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mhc-0.5.1.tar.gz
  • Upload date:
  • Size: 32.5 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.1.tar.gz
Algorithm Hash digest
SHA256 769e31930fcc61610a2505a9e655e309b78acf485767ef617dc02b7f94964198
MD5 1c1730b5ef33f4f0035563dda9d3d2fa
BLAKE2b-256 75a796c34b3765571c32c7c5efb3b3c0e2bce9eb78e8215801575d5eb8608d23

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mhc-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 32.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f6fd4d2d7612a792d314cde2dc16a93cff5bb9f50ac5d62a2062066f6df2926d
MD5 7795a18918071b68e4e450c75c8fb504
BLAKE2b-256 0f1f2a6da7e8bf56aed25b91224a6e2de438311a0dc6ad255fcbf3ce8d1484f3

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