Skip to content

Commit a1ce813

Browse files
author
Christian Kümmerle
committed
add README
1 parent 0a4ff51 commit a1ce813

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed

README.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
2+
# Recovering Simultaneously Structured Data via Non-Convex Iteratively Reweighted Least Squares - SimIRLS
3+
4+
[Christian Kümmerle](http://ckuemmerle.com) and [Johannes Maly](https://johannes-maly.github.io)
5+
6+
This repository contains the code for the *NeurIPS 2023* paper [*Recovering Simultaneously Structured Data via Non-Convex Iteratively Reweighted Least Squares*](https://openreview.net/pdf?id=50hs53Zb3w) [[KM23]](#KM23), which studies an iteratively reweighted least squares approach (`IRLS` or `IRLS-LRRS`) based on a smoothing strategy and a non-convex surrogate modelling for the problem of recovering simultaneously low-rank and row-sparse matrices from linear masureuments.
7+
8+
[[arXiv]](https://arxiv.org/pdf/2306.04961.pdf) [[Paper at OpenReview]](https://openreview.net/pdf?id=50hs53Zb3w)
9+
10+
Reproducibile experiments and algorithmic implementations are provided in MATLAB.
11+
12+
### Citation
13+
Please cite this work as:
14+
15+
```
16+
@inproceedings{KuemmerleMaly2023,
17+
title = {Recovering Simultaneously Structured Data via Non-Convex Iteratively Reweighted Least Squares},
18+
author = {K{\"u}mmerle, Christian and Maly, Johannes},
19+
booktitle = {Advances in Neural Information Processing Systems (NeurIPS 2023)},
20+
volume = {36},
21+
year = {2023}
22+
}
23+
24+
```
25+
26+
## Installation
27+
28+
1. Obtain files of repository via either:
29+
- Clone repository via `git clone --recurse-submodules https://github.com/ckuemmerle/simirls.git` (note the flag `--recurse-submodules` due to usage of submodule [riemannian_thresholding](https://github.com/ckuemmerle/riemannian_thresholding)))
30+
- Download files and unpack into your MATLAB path, then download [riemannian_thresholding](https://github.com/ckuemmerle/riemannian_thresholding) and unpack into `/algorithms/riemannian_thresholding`.
31+
2. Run `setup.m` from main folder of repository as current MATLAB folder.
32+
33+
## Usage
34+
* `demo_LRRS_Gaussian_rank1_IRLS`: Minimal example of how to use `IRLS-LRRS` [[KM23]](#KM23) to solve a randomly generated simultaneous low-rank and row-sparse recovery problem (Gaussian measurements).
35+
* `demo_LRRS_Gaussian_rank1`: Also runs `SPF` [[LWB18]](#LWB18) and `RiemAdaIHT` [[EKPU23]](#EKPU23) alongside of `IRLS-LRRS` for problem above.
36+
* `run_single_Example_LRRS`: Run to choose one of the problem setups of folder `/Examples/` via text input. Use repository's main folder as current folder when doing this.
37+
38+
### Subfolders
39+
* `/Examples`: Contains files to define the parameters various example problem setups.
40+
* `/algorithms`: Contains algorithm implementations
41+
* `/experiment_setup`: Code to setup and run experiments
42+
* `/experiments`: Scripts to load data and reproduce experiments of Figures 1-7 in [[KM23]](#KM23)
43+
* `/results`: Plots containing experimental results of Figures 1-7 of [[KM23]](#KM23)
44+
* `/utilities`: Contains various helper functions
45+
46+
Please contact the authors [[KM23]](#KM23) for access to the original data for phase transitions experiments of Figure 1-2, 4-5 in [[KM23]](#KM23).
47+
48+
## List of algorithms
49+
* `IRLS` (or `IRLS-LRRS`): *Iteratively Reweighted Least Squares (for Low-Rank and Row-Sparse recovery)*, Algorithm 1 of [[KM23]](#KM23).
50+
* `SPF`: *Sparse Power Factorization* [[LWB18]](#LWB18) in the version of Algorithm 4 of [[LWB18]](#LWB18) (`rSPF_HTP`).
51+
* `RiemAdaIHT`: *Adaptive Riemannian Iterative Hard Thresholding* as used in [[EKPU23]](#EKPU23), cf. also [repository here](https://github.com/maxpfeffer/riemannian_thresholding).
52+
53+
## References
54+
- **[KM23]** Christian Kümmerle and Johannes Maly, [**Recovering Simultaneously Structured Data via Non-Convex Iteratively Reweighted Least Squares**](https://openreview.net/pdf?id=50hs53Zb3w). _NeurIPS 2023_, 2023. <a name="KM23"></a>
55+
- **[EKPU23]** Henrik Eisenmann, Felix Krahmer, Max Pfeffer, and André Uschmajew. [**Riemannian thresholding methods for row-sparse and low-rank matrix recovery**](https://doi.org/10.1007/s11075-022-01433-5). _Numerical Algorithms_, 93 (2):669–693, 2023. <a name="EKPU23"></a>
56+
- **[LWB18]** Kiryung Lee, Yihong Wu, and Yoram Bresler. [**Near-optimal compressed sensing of a class of sparse low-rank matrices via sparse power factorization**](https://doi.org/10.1109/TIT.2017.2784479). IEEE Transactions on Information Theory, 64(3):1666–1698, 2018. <a name="LWB18"></a>

setup.m

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
% Run this script from the base folder of the repo 'simirls' before running
2+
% any code.
3+
addpath(genpath('algorithms'));
4+
addpath(genpath('data'));
5+
addpath(genpath('Examples'));
6+
addpath(genpath('experiment_setup'));
7+
addpath(genpath('experiments'));
8+
addpath(genpath('results'));
9+
addpath(genpath('utilities'))

0 commit comments

Comments
 (0)