projection operations
termination criterion: tolerance for norm of projected gradient
sufficient decrease parameter
longest step
shortest step
number of history entries for linesearch
maximum number of iterations
is the initial guess feasible, or should it be projected?
if curvilinear true, do the projection inside line search in place of doing it in chooseDescentDirection
maximum number of iterations inside line search
Tracks the information about the optimizer, including the current point, its value, gradient, and then any history.
Tracks the information about the optimizer, including the current point, its value, gradient, and then any history. Also includes information for checking convergence.
the current point being considered
f(x)
f.gradientAt(x)
f(x) + r(x), where r is any regularization added to the objective. For LBFGS, this is f(x).
f'(x) + r'(x), where r is any regularization added to the objective. For LBFGS, this is f'(x).
what iteration number we are on.
f(x_0) + r(x_0), used for checking convergence
any information needed by the optimizer to do updates.
the sequence of the last minImprovementWindow values, used for checking if the "value" isn't improving
the number of times in a row the objective hasn't improved, mostly for SGD
did the line search fail?
From Mark Schmidt's Matlab code if bbType == 1 alpha = (s'*s)/(s'*y); else alpha = (s'*y)/(y'*y);
From Mark Schmidt's Matlab code if bbType == 1 alpha = (s'*s)/(s'*y); else alpha = (s'*y)/(y'*y);
if curvilinear true, do the projection inside line search in place of doing it in chooseDescentDirection
is the initial guess feasible, or should it be projected?
maximum number of iterations inside line search
How many iterations to improve function by at least improvementTol
How many iterations to improve function by at least improvementTol
projection operations
projection operations
SPG is a Spectral Projected Gradient minimizer; it minimizes a differentiable function subject to the optimum being in some set, given by the projection operator projection
vector type