Class QNMinimizer
- Namespace
- NOpenNLP.Tools.Ml.Maxent.Quasinewton
- Assembly
- NOpenNLP.Tools.dll
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
IFunction f = new QuadraticFunction();
QNMinimizer minimizer = new QNMinimizer();
double[] x = minimizer.Minimize(f);
double min = f.ValueAt(x);
public class QNMinimizer
- Inheritance
-
QNMinimizer
- Inherited Members
Constructors
QNMinimizer()
public QNMinimizer()
QNMinimizer(double, double)
public QNMinimizer(double l1Cost, double l2Cost)
Parameters
QNMinimizer(double, double, int)
public QNMinimizer(double l1Cost, double l2Cost, int iterations)
Parameters
QNMinimizer(double, double, int, int, int)
public QNMinimizer(double l1Cost, double l2Cost, int iterations, int m, int maxFctEval)
Parameters
QNMinimizer(double, double, int, int, int, bool)
Constructor
public QNMinimizer(double l1Cost, double l2Cost, int iterations, int m, int maxFctEval, bool verbose)
Parameters
l1CostdoubleL1-regularization cost
l2CostdoubleL2-regularization cost
iterationsintmaximum number of iterations
mintnumber of Hessian updates to store
maxFctEvalintmaximum number of function evaluations
verboseboolverbose output
Fields
CONVERGE_TOLERANCE
public const double CONVERGE_TOLERANCE = 0.0001
Field Value
INITIAL_STEP_SIZE
public const double INITIAL_STEP_SIZE = 1
Field Value
L1COST_DEFAULT
public const double L1COST_DEFAULT = 0
Field Value
L2COST_DEFAULT
public const double L2COST_DEFAULT = 0
Field Value
MAX_FCT_EVAL_DEFAULT
public const int MAX_FCT_EVAL_DEFAULT = 30000
Field Value
MIN_STEP_SIZE
public const double MIN_STEP_SIZE = 1E-10
Field Value
M_DEFAULT
public const int M_DEFAULT = 15
Field Value
NUM_ITERATIONS_DEFAULT
public const int NUM_ITERATIONS_DEFAULT = 100
Field Value
REL_GRAD_NORM_TOL
public const double REL_GRAD_NORM_TOL = 0.0001
Field Value
Properties
Evaluator
For evaluating quality of training parameters. This is optional and can be omitted.
public QNMinimizer.IEvaluator? Evaluator { get; set; }
Property Value
Methods
Minimize(IFunction)
Find the parameters that minimize the objective function
public double[] Minimize(IFunction function)
Parameters
functionIFunctionobjective function
Returns
- double[]
minimizing parameters