/Non-convex-optimization

Non-convex optimization using proximal methods

Primary LanguageMATLAB

Non-convex optimization

This repository contains matlab interface to use proximal algorithms and different variants for composite funtions containing convex and non-convex functions.

Description

Non convex and non smooth probelms have been observed widely in the field of signal processing and machine learning. Solving non convex non smooth problems is a big challenge involving saddle point localization, non differentialibilty, escape from saddle point and others. Proximal algorithms and its variants provides a good framework for non convex problems.Here a non convex for proximal algorithms have been built.

Given a composite function

The non convex class tries to solve the optimization probelm given the proximal operator and the gradient of the convex function.

The algorithms present are:

  • Proximal gradient method
  • Accelerated proximal gradient method
  • Monotonic accelerated proximal gradient method
  • Monotonic non convex proximal gradient method
  • Nonmonotonic non convex proximal gradient method

The references for the algorithms stated above are provided in the reference below

Getting Started

Clone or download the repository. Various inputs are needed to the non convex class which are explained as follows. f - convex function

g - non-convex function

grad_f - gradient of convex function

prox - proximal operator

init_x - initialization

A constructor is also present for the class and the cronological order is as mentioned above.

Prerequisites

Matlab 2010 or higher

Running the tests

The test_non_APG.m contains a random system. With the objective of a lasso with l1 regularization.

Authors

Reference

Proximal algorithm by Neal Parikh and Stephen Boyd

Fast Gradient-Based Algorithms for Constrained Total Variation Image Denoising and Deblurring Problems by Amir Beck and Marc Teboulle

Accelerated Proximal Gradient Methods for Nonconvex Programming by Huan Li and Zhouchen Lin