Class QNMinimizer
java.lang.Object
opennlp.tools.ml.maxent.quasinewton.QNMinimizer
Implementation of the 
 Limited memory Broyden-Fletcher-Goldfarb-Shanno algorithm (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 SummaryNested ClassesModifier and TypeClassDescriptionstatic interfaceEvaluate the quality of training parameters.static classL2-regularized objectiveFunction.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final doublestatic final doubleThe initial step size:1.0.static final doubleThe default L1-cost value is0.0d.static final doubleThe default L2-cost value is0.0d.static final intThe default number of Hessian updates to store is15.static final intThe default maximum number of function evaluations is30,000.static final doubleThe minimum step size:1e-10.static final intBy default the number of iterations is100.static final double
- 
Constructor SummaryConstructorsConstructorDescriptionQNMinimizer(double l1Cost, double l2Cost) Initializes aQNMinimizer.QNMinimizer(double l1Cost, double l2Cost, int iterations) Initializes aQNMinimizerwith L1 and L2 parameters.QNMinimizer(double l1Cost, double l2Cost, int iterations, int m, int maxFctEval) Initializes aQNMinimizer.
- 
Method SummaryModifier and TypeMethodDescriptiondouble[]Finds the parameters that minimize the objective function.voidsetEvaluator(QNMinimizer.Evaluator evaluator) 
- 
Field Details- 
CONVERGE_TOLERANCEpublic static final double CONVERGE_TOLERANCE- See Also:
 
- 
REL_GRAD_NORM_TOLpublic static final double REL_GRAD_NORM_TOL- See Also:
 
- 
INITIAL_STEP_SIZEpublic static final double INITIAL_STEP_SIZEThe initial step size:1.0.- See Also:
 
- 
MIN_STEP_SIZEpublic static final double MIN_STEP_SIZEThe minimum step size:1e-10.- See Also:
 
- 
L1COST_DEFAULTpublic static final double L1COST_DEFAULTThe default L1-cost value is0.0d.- See Also:
 
- 
L2COST_DEFAULTpublic static final double L2COST_DEFAULTThe default L2-cost value is0.0d.- See Also:
 
- 
NUM_ITERATIONS_DEFAULTpublic static final int NUM_ITERATIONS_DEFAULTBy default the number of iterations is100.- See Also:
 
- 
M_DEFAULTpublic static final int M_DEFAULTThe default number of Hessian updates to store is15.- See Also:
 
- 
MAX_FCT_EVAL_DEFAULTpublic static final int MAX_FCT_EVAL_DEFAULTThe default maximum number of function evaluations is30,000.- See Also:
 
 
- 
- 
Constructor Details- 
QNMinimizerpublic QNMinimizer()
- 
QNMinimizerpublic QNMinimizer(double l1Cost, double l2Cost) Initializes aQNMinimizer.- Parameters:
- l1Cost- The L1-regularization cost. Must be equal to or greater than- 0.
- l2Cost- The L2-regularization cost. Must be equal to or greater than- 0.
- Throws:
- IllegalArgumentException- Thrown if parameters were invalid.
 
- 
QNMinimizerpublic QNMinimizer(double l1Cost, double l2Cost, int iterations) Initializes aQNMinimizerwith L1 and L2 parameters.- Parameters:
- l1Cost- The L1-regularization cost. Must be equal to or greater than- 0.
- l2Cost- The L2-regularization cost. Must be equal to or greater than- 0.
- iterations- The maximum number of iterations. Must be greater than- 0.
- Throws:
- IllegalArgumentException- Thrown if parameters were invalid.
 
- 
QNMinimizerpublic QNMinimizer(double l1Cost, double l2Cost, int iterations, int m, int maxFctEval) Initializes aQNMinimizer.- Parameters:
- l1Cost- The L1-regularization cost. Must be equal to or greater than- 0.
- l2Cost- The L2-regularization cost. Must be equal to or greater than- 0.
- iterations- The maximum number of iterations. Must be greater than- 0.
- m- The number of Hessian updates to store. Must be greater than- 0.
- maxFctEval- The maximum number of function evaluations. Must be greater than- 0.
- Throws:
- IllegalArgumentException- Thrown if parameters were invalid.
 
 
- 
- 
Method Details- 
getEvaluator
- 
setEvaluator
- 
minimizeFinds the parameters that minimize the objective function.- Parameters:
- function- The objective- Function.
- Returns:
- The minimizing parameters.
 
 
-