Skip to main content

LRIPy

Python code for Low-rank optimization by Low-Rank Inducing Norms as well as non-convex Douglas-Rachford.

Purpose:

Low-rank rank inducing norms and non-convex Proximal Splitting Algoriths attempt to find exact rank/cardinality-r solutions to minimization problems with convex loss functions, i.e., avoiding of regularzation heuristics. LRIPy provides Python implementations for the proximal mappings of the low-rank inducing Frobenius and Spectral norms, as well as, their epi-graph projections and non-convex counter parts.

Literature:

Low-rank inducing norms:

Non-convex counter parts:

Installation

The easiest way to install the package is to run pip install lripy. To install the package from source, run python setup.py install in the main folder.

Documentation

In the following it holds that

  • for the low-rank inducing Frobenius norm: p = 2
  • for the low-rank inducing Spectral norm: p = 'inf'

Examples

There are two examples in the "example" folder:

  1. Exact Matrix Completion
  2. Low-rank approximation with Hankel constraint

Optimization

LRIPy contains Douglas-Rachford splitting implementations for "Exact Matrix Completion" and "Low-rank Hankel Approximation", both with low-rank inducing norms, as well as, non-convex Douglas-Rachford splitting. It is easy to modify these functions for other constraints!

Exact Matrix completion

Let N be a matrix and Index be a binary matrix of the same size, where the ones indicate the known entries N. We attempt to find a rank-r completion M:

# Import the Douglas-Rachford Completion function:

from lripy import drcomplete

# Low-rank inducing norms with Douglas-Rachford splitting:

M = drcomplete(N,Index,r,p)[0]

# Non-convex Douglas-Rachford splitting:

M = drcomplete(N,Index,r,p,solver = 'NDR')[0]

Low-rank Hankel Approximation

Let H be a matrix. We attempt to find a rank-r Hankel approximation M that minimizes the Frobenius norm:

# Import the Douglas-Rachford Hankel Approximation function:

from lripy import drhankelapprox

# Low-rank inducing norms with Douglas-Rachford splitting:

M = drhankelapprox(H,r)[0]

# Non-convex Douglas-Rachford splitting:

M = drhankelapprox(H,r,solver = 'NDR')[0]

Proximal Mappings

LRIPy provides Python implemenations for the proximal mappings to the low-rank inducing Frobenius and Spectral norm as well as their epi-graph projections and non-convex counter parts.

Low-rank inducing Spectral and Frobenius norms:

Proximal mapping of the low-rank inducing norms at Z with parameter r and scaling factor gamma:

X = proxnormrast(Z,r,p,gamma)[0]

Squared Low-rank inducing Spectral and Frobenius norms:

Proximal mapping of the SQUARED low-rank inducing norms at Z with parameter r and scaling factor gamma:

X = proxnormrast_square(Z,r,p,gamma)[0]

Projection onto the epi-graph of the low-rank inducing norms:

Projection of (Z,zv) on the epi-graph of the low-rank inducing norms with parameter r and scaling factor gamma:

X,xv = projrast(Z,zv,r,p,gamma)[0:2]

Non-convex proximal mappings for Frobenius and Spectral norm:

Non-convex proximal mapping of at Z with parameter r and scaling factor gamma:

X = proxnonconv(Z,r,p,gamma)

Non-convex proximal mappings for squared Frobenius and Spectral norm:

Non-convex proximal mapping for the SQUARED norms at Z with parameter r and scaling factor gamma:

X = proxnonconv_square(Z,r,p,gamma)

Release files for lripy 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for lripy 0.0.2
File Interpreter ABI Platform
lripy-0.0.2-py3-none-any.whl Python 3 none any Details

Release files / lripy-0.0.2-py3-none-any.whl

Download URL lripy-0.0.2-py3-none-any.whl
Size 21.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cdd0f35145ce2052d49f6a114534a5863d6920c8e563a21dd4d115aea3379356
BLAKE2b-256 checksum
How to use checksums
95fee526c2c60b1b4790e0065ff90f1b98d858f3e9646836dd4bb3aeb526eec8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.6

Release history Release notifications | RSS feed

This release

0.0.2 This release

1 release file

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page