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
Nested ClassesModifier and TypeClassDescriptionstatic interfaceEvaluate quality of training parameters.static classL2-regularized objectiveFunction. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doublestatic final doublestatic final doublestatic final doublestatic final intstatic final intstatic final doublestatic final intstatic final double -
Constructor Summary
ConstructorsConstructorDescriptionInitializes aQNMinimizerwith 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.voidsetEvaluator(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 aQNMinimizerwith 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.
-