Class QNMinimizer
java.lang.Object
opennlp.tools.ml.maxent.quasinewton.QNMinimizer
Implementation of L-BFGS which supports L1-, L2-regularization
and Elastic Net for solving convex optimization problems.
Usage example:
// Quadratic function f(x) = (x-1)^2 + 10 // f obtains its minimum value 10 at x = 1 Function f = new Function() { @Override public int getDimension() { return 1; } @Override public double valueAt(double[] x) { return StrictMath.pow(x[0]-1, 2) + 10; } @Override public double[] gradientAt(double[] x) { return new double[] { 2*(x[0]-1) }; } }; QNMinimizer minimizer = new QNMinimizer(); double[] x = minimizer.minimize(f); double min = f.valueAt(x);
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Evaluate quality of training parameters.static class
L2-regularized objectiveFunction
. -
Field Summary
Modifier and TypeFieldDescriptionstatic final double
static final double
static final double
static final double
static final int
static final int
static final double
static final int
static final double
-
Constructor Summary
ConstructorDescriptionInitializes aQNMinimizer
with default parameters.QNMinimizer
(double l1Cost, double l2Cost) Initializes aQNMinimizer
.QNMinimizer
(double l1Cost, double l2Cost, int iterations) Initializes aQNMinimizer
.QNMinimizer
(double l1Cost, double l2Cost, int iterations, int m, int maxFctEval) Initializes aQNMinimizer
. -
Method Summary
Modifier and TypeMethodDescriptiondouble[]
Finds the parameters that minimize the objective function.void
setEvaluator
(QNMinimizer.Evaluator evaluator)
-
Field Details
-
CONVERGE_TOLERANCE
public static final double CONVERGE_TOLERANCE- See Also:
-
REL_GRAD_NORM_TOL
public static final double REL_GRAD_NORM_TOL- See Also:
-
INITIAL_STEP_SIZE
public static final double INITIAL_STEP_SIZE- See Also:
-
MIN_STEP_SIZE
public static final double MIN_STEP_SIZE- See Also:
-
L1COST_DEFAULT
public static final double L1COST_DEFAULT- See Also:
-
L2COST_DEFAULT
public static final double L2COST_DEFAULT- See Also:
-
NUM_ITERATIONS_DEFAULT
public static final int NUM_ITERATIONS_DEFAULT- See Also:
-
M_DEFAULT
public static final int M_DEFAULT- See Also:
-
MAX_FCT_EVAL_DEFAULT
public static final int MAX_FCT_EVAL_DEFAULT- See Also:
-
-
Constructor Details
-
QNMinimizer
public QNMinimizer()Initializes aQNMinimizer
with default parameters. -
QNMinimizer
public QNMinimizer(double l1Cost, double l2Cost) Initializes aQNMinimizer
.- Parameters:
l1Cost
- The L1-regularization cost.l2Cost
- The L2-regularization cost.
-
QNMinimizer
public QNMinimizer(double l1Cost, double l2Cost, int iterations) Initializes aQNMinimizer
.- Parameters:
l1Cost
- The L1-regularization cost.l2Cost
- The L2-regularization cost.iterations
- The maximum number of iterations.
-
QNMinimizer
public QNMinimizer(double l1Cost, double l2Cost, int iterations, int m, int maxFctEval) Initializes aQNMinimizer
.- Parameters:
l1Cost
- The L1-regularization cost.l2Cost
- The L2-regularization cost.iterations
- The maximum number of iterations.m
- The number of Hessian updates to store.maxFctEval
- The maximum number of function evaluations.
-
-
Method Details
-
getEvaluator
-
setEvaluator
-
minimize
Finds the parameters that minimize the objective function.- Parameters:
function
- The objectiveFunction
.- Returns:
- The minimizing parameters.
-