Giter Site home page Giter Site logo

isucsp / pnpg Goto Github PK

View Code? Open in Web Editor NEW
3.0 4.0 0.0 61.9 MB

PNPG algorithm implementation and examples

Home Page: https://isucsp.github.io/pnpg/

License: GNU General Public License v2.0

Makefile 0.36% C 26.58% MATLAB 58.03% Shell 0.56% TeX 0.15% C++ 2.36% M 0.44% Perl 0.01% HTML 0.04% Cuda 2.14% Objective-C 0.03% Fortran 9.19% Mathematica 0.11%
convex-optimization adaptive-stepsize matlab proximal-algorithms

pnpg's Introduction

Projected Nesterov's Proximal-Gradient (PNPG) Algorithm

What does this package contain

PNPG Algorithm and Examples

The examples about this methods are under npgEx folder with filenames ended with Ex, where the code can reproduce the figures appear in our papers and reports. The algorithm implementations are under folder npg, which use the some utility functions under utils folder.

References
  1. R. Gu and A. Dogandžić, "Projected Nesterov’s proximal-gradient algorithm for sparse signal recovery," IEEE Trans. Signal Process., vol. 65, no. 13, pp. 3510–3525, 2017. [DOI] [PDF]

Upper-Bounding the Regularization Constant Computation

Usually for regularized convex optimization problem with optional convex constraints, there is a regularization parameter u. As the value of u increases, the optimal signal shifts to a state that solely determined by the regularization terms, i.e., the enforced prior information. It is of interest to find out such a treshold U beyond which, the optimum converges to this final state.

The code utils/uBound.m solves this U via ADMM for an arbitrary convex likelihood function with convex constraints under l1-norm regularization in a linear transformed domain. The examples in folder uBoundEx include the applications with DWT and (an)isotropic TV regularizations.

References
  1. R. Gu and A. Dogandžić, (Feb. 2017). Upper-Bounding the Regularization Constant for Convex Sparse Signal Reconstruction. arXiv: 1702.07930 [stat.CO].

How to Install

To install this package, first download the repository by running

git clone https://github.com/isucsp/pnpg.git

after downloading, from MATLAB change your current folder to pnpg/ and execute setupPath.m to add necessary paths to the environment.

For Windows, you may need to have Visual Studio or other C/C++ compilers installed to compile some C code while calling setupPath.m.

For UNIX, you may need to have gcc installed.

For the 3rd party softwares that are used, please refer to getOthersCode.sh in how to get them.

Note

The comments in some of *.m files may contain greek letters, which are UTF-8 encoded. Please open in an appropriately configured text editor.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.