OptShrink - Low-Rank Signal Matrix Denoising via Optimal, Data-Driven Singular Value Shrinkage


OptShrink is a simple, completely data-driven algorithm for denoising a low-rank signal matrix buried in noise. It takes as its input the signal-plus-noise matrix, an estimate of the signal matrix rank and returns as an output the improved signal matrix estimate. It computes this estimate by shrinking the singular values corresponding to the Truncated SVD (TSVD) in the correct manner as given by random matrix theory. It can be used in the missing data setting and for a large class of noise models for which the i.i.d. Gaussian setting is a special case.

There are no tuning parameters involved so it can be used in a black-box manner wherever improving low-rank matrix estimation is desirable. The algorithm outperforms the truncated SVD (TSVD) significantly in the low to moderate SNR regime and will never do worse than the TSVD. The theory also explains why it will always do better than singular value thresholding.

But you do not have to take our word for it - you can download it below and try it for yourself!

After downloading the code, type "help optshrink" in MATLAB to get an example.


  • OptShrink

  • OptShrink for Big Data coming soon

Related paper

Funding support

This work was supported by an ONR Young Investigator Award N000141110660, an AFRL subcontract (via Solid State Scientific), an AFOSR Young Investigator Award FA9550-12-1-0266, a NSF award CCF-1116115 and a ARO MURI grant W911NF-11-1-0391.