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

l1Cost double
l2Cost double

QNMinimizer(double, double, int)

public QNMinimizer(double l1Cost, double l2Cost, int iterations)

Parameters

l1Cost double
l2Cost double
iterations int

QNMinimizer(double, double, int, int, int)

public QNMinimizer(double l1Cost, double l2Cost, int iterations, int m, int maxFctEval)

Parameters

l1Cost double
l2Cost double
iterations int
m int
maxFctEval int

QNMinimizer(double, double, int, int, int, bool)

Constructor

public QNMinimizer(double l1Cost, double l2Cost, int iterations, int m, int maxFctEval, bool verbose)

Parameters

l1Cost double

L1-regularization cost

l2Cost double

L2-regularization cost

iterations int

maximum number of iterations

m int

number of Hessian updates to store

maxFctEval int

maximum number of function evaluations

verbose bool

verbose output

Fields

CONVERGE_TOLERANCE

public const double CONVERGE_TOLERANCE = 0.0001

Field Value

double

INITIAL_STEP_SIZE

public const double INITIAL_STEP_SIZE = 1

Field Value

double

L1COST_DEFAULT

public const double L1COST_DEFAULT = 0

Field Value

double

L2COST_DEFAULT

public const double L2COST_DEFAULT = 0

Field Value

double

MAX_FCT_EVAL_DEFAULT

public const int MAX_FCT_EVAL_DEFAULT = 30000

Field Value

int

MIN_STEP_SIZE

public const double MIN_STEP_SIZE = 1E-10

Field Value

double

M_DEFAULT

public const int M_DEFAULT = 15

Field Value

int

NUM_ITERATIONS_DEFAULT

public const int NUM_ITERATIONS_DEFAULT = 100

Field Value

int

REL_GRAD_NORM_TOL

public const double REL_GRAD_NORM_TOL = 0.0001

Field Value

double

Properties

Evaluator

For evaluating quality of training parameters. This is optional and can be omitted.

public QNMinimizer.IEvaluator? Evaluator { get; set; }

Property Value

QNMinimizer.IEvaluator

Methods

Minimize(IFunction)

Find the parameters that minimize the objective function

public double[] Minimize(IFunction function)

Parameters

function IFunction

objective function

Returns

double[]

minimizing parameters