Skip to main content

A performant implementation of the principle of Maximum Coding Rate Reduction (MCR2).

Project description

Maximal Coding Rate Reduction

This repository is an unofficial implementation of the following papers:

This also serves as the host repository for the Pip package.

What is Maximal Coding Rate Reduction?

Our goal is to learn a mapping that maps the high-dimensional data that lies in a low-dimensional manifold to low-dimensional subspaces with the following three properties:

  1. Between-Class Discriminative: Features of samples from different classes/clusters should be highly uncorrelatedand belong to different low-dimensional linear subspaces
  2. Within-Class Compressible: Features of samples from the same class/cluster should be relatively correlated in a sense that they belong to a low-dimensional linear subspace
  3. Maximally Diverse Representation: Dimension (or variance) of features for each class/cluster should beas large as possibleas long as they stay uncorrelated from the other classes

To achieve this, we propose an objective function called Maximal Coding Rate Reduction (MCR2). In our paper, we provide not only theoretical guarantees to the desired properties upon convergence, but also practical properties such as robustness to label corruption and empirical results such as state-of-the-art unsupervised clustering performance. For more details on algorithm design, please refer to our paper.

What is ReduNet?

Our goal is to build a neural network for representation learning with the following properties:

  1. Interpretable: We should be able to interpret each network operator and assign precise meaning to each layer and parameter.
  2. Forward-Propagation Only: The network should be trained using much-more interpretable forward-propagation methods, as opposed to back-propagation which tends to create black-boxes.
  3. Use MCR2: The network should seek to optimize MCR2 loss function, as the purpose is distribution learning.

To achieve this, we propose a neural network architecture and algorithms called ReduNet. In our paper, we provide not only theoretical interpretations and a precise derivation of each operator in the network, but also connections to other architectures that form naturally as components of ReduNet. We also provide empirical justification for the power of ReduNet. For more details on algorithm design, please refer to our paper.

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

mcr2-0.0.8.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

mcr2-0.0.8-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file mcr2-0.0.8.tar.gz.

File metadata

  • Download URL: mcr2-0.0.8.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for mcr2-0.0.8.tar.gz
Algorithm Hash digest
SHA256 639d72ec3d7495451231385b5bb8cdae1602a2cb6c191801fffa2ce6a7fa807f
MD5 c176ad1ba0b71082747a309ce2f732f3
BLAKE2b-256 89d7f6a4ec0033bc9a5dabb026e98557572cc7cf85f1f4ba64e416abd7c55656

See more details on using hashes here.

File details

Details for the file mcr2-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: mcr2-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 9.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for mcr2-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 2ba06c7709ae41bd1cf8f698c6f70071d1f160e17649fa17b3b3b7cfbf1d0126
MD5 cf0bd21b295b9810a9e7249502cb0d84
BLAKE2b-256 0df48de9f241f64e1ee6e9afd17ebbff261e1e1e2520eb913f3b9a59e180a233

See more details on using hashes here.

Supported by

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