levinboimtomer / SPG

A python implementation of the spectral projected gradient (SPG) optimization method

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A python implementation of the spectral projected gradient (SPG) optimization method.

SPG is suited for optimizing differentiable real-valued multivariate functions subject to simple constraints (namely, over a closed convex set)

The code is based on Mark Schmidt's minConf_SPG matlab implementation http://www.di.ens.fr/~mschmidt/Software/minConf.html

To test the code, download and run: python SPG_test.py

Incudes:

  • Numerical differentiation
  • Projection on a bounded range
  • Projection on the probability simplex (Duchi et al, "Efficient projections onto the l1-Ball for Learning in High Dimension")

Requires:

  • cython (if you use the provided projections)

-- Tomer Levinboim, March 2014

About

A python implementation of the spectral projected gradient (SPG) optimization method