Last updated 3 July 2010.

The PQN method is decribed in the following paper:

- Optimizing
Costly Functions with Simple Constraints: A Limited-Memory Projected
Quasi-Newton Algorithm

M. Schmidt, E. van den Berg, M. Friedlander, K. Murphy

AISTATS'09**(Best Paper Award)**

PQN assumes that the function is differentiable, and that the user provides a function that computes the objective value (and optionally its gradient) for a given parameter vector. PQN also assumes that the set of values satisfying the constraints define a convex set, and that the user provides a function that computes the projection onto this set (ie. for a given parameter vector, this returns returns the closest parameter vector that satisfies the constraints).

>> cd PQN >> addpath(genpath(pwd)) >> runSmall

We have included mex files for several operating systems. To compile the mex files for other operating systems, run the included **mexAll** function.

The function PQN_examples runs a series of demos illustrating the types of problems that PQN can solve. The full list of demos is:

The code, some documentation, and examples of the results of these demos can be found here.

min_x f(x), subject to x is in X

>> x =minConf_PQN(funObj,x,funProj,options)

f(x) = ||Ax - b||^2

>> funObj = @(x)SquaredError(x,A,b);

>> p = size(A,2); >> x = zeros(p,1);

P(x) = argmin_y ||y - x||, subject to y is in X

>> funProj = @(x)boundProject(x,zeros(p,1),inf(p,1));

>> options.corrections = 10; >> options.numDiff = 1;

To re-run the experiments in the paper, use the **runAll** function.

This requires that you have the data sets available in the correct format. These data sets are *not included* in the zip file, they are available from the following sources:
CoNLL 200 Chunking Task, Yeast Genomic Expression Data, Protein Signaling Data. The authors can be contacted about converting to our data format.

The machine running these experiments had 4GB of RAM, you may need to decrease 'options.corrections' if your machine hass less.

Gsparse - Matlab functions implementing Spectral Projected Gradient methods for optimization with a Group L1-norm constraint.

minFunc - Matlab function for unconstrained optimization of continuous real-valued multivariate functions (Examples).

SPGL1 - A solver for large-scale sparse reconstruction problems (Lasso, Basis Pursuit, Basis Pursuit Denoising)

crfChain - Matlab function implementing learning/inference/decoding/sampling in chain-structured conditional random fields with categorical features.

UGMlearn - Matlab code for structure learning in discrete-state undirected graphical models (Markov Random Fields and Conditional Random Fields) using Group L1-regularization.

Mark Schmidt > Software > PQN