GRADIENT_DESCENT - Gradient descent using the forward backward algorithm

Usage

sol = gradient_descent(x_0,F, param);
sol = gradient_descent(x_0,F);
[sol,info] = gradient_descent(...);

Input parameters

x_0 Starting point of the algorithm
F Functions to be minimized
param Optional parameter

Output parameters

sol Solution
info Cell array of functions

Description

gradient_descent solves:

\begin{equation*} sol = arg \min_x \sum_i f_1(x) \hspace{1cm} for \hspace{1cm} x\in R^N \end{equation*}

where x are the optimization variables.

F is a cell array of structure object. Each structure represent one function to be minimized. They all contains a field F{ii}.eval that is a implicite function to evaluate the corresponding function and a field F{ii}.grad that is another implicite function to compute the gradient of the function. Please, specify also, the Lipschitz constant of the gradient in F{ii}.beta.