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-1.0.1.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

mcr2-1.0.1-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcr2-1.0.1.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for mcr2-1.0.1.tar.gz
Algorithm Hash digest
SHA256 2f0432b28cb6e77b363df6f5a748d3b32d4844e9bbb5967fb7a85a163dbe4525
MD5 4dacba33c8a8d95b39b9fe5893629a61
BLAKE2b-256 4528ed5c98847db826ba8c919f419df13efc9aba97fe78bb8b08559219a59495

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mcr2-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for mcr2-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 19f2f80d1925869ac534ae8071b8f4348b9a86b2205b945b582d055477445b2c
MD5 a300d28ea2df93be428fd7f30d713554
BLAKE2b-256 6a939da338d0237084c8f0e63c4184d295b8940bd7563a67478edd58b1e995d6

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