## edu.stanford.nlp.optimization
Class OWLQNMinimizer

    java.lang.Object
      edu.stanford.nlp.optimization.OWLQNMinimizer

All Implemented Interfaces:
  Minimizer<DiffFunction>

    public class OWLQNMinimizer

extends Object
implements Minimizer<DiffFunction>

Class implementing the Orthant-Wise Limited-memory Quasi-Newton algorithm (OWL-QN). OWN-QN is a numerical optimization procedure for finding the optimum of an objective of the form smooth function plus L1-norm of the parameters. It has been used for training log-linear models (such as logistic regression) with L1-regularization. The algorithm is described in "Scalable training of L1-regularized log-linear models" by Galen Andrew and Jianfeng Gao. This implementation includes built-in capacity to train logistic regression or least-squares models with L1 regularization. It is also possible to use OWL-QN to optimize any arbitrary smooth convex loss plus L1 regularization by defining the function and its gradient using the supplied "DifferentiableFunction" class, and passing an instance of the function to the OWLQN object. For more information, please read the included file README.txt. Also included in the distribution are the ICML paper and slide presentation. Significant portions of this code are taken from Galen Andew's implementation

Author:
  Michel Galley

Field Summary
`static boolean` `DEBUG`

Constructor Summary
`OWLQNMinimizer()`
`OWLQNMinimizer(double regweight)`
`OWLQNMinimizer(double regweight, int m)`

Method Summary
`static void` `main(String[] args)`
`double[]` `minimize(DiffFunction function, double functionTolerance, double[] initial)` Attempts to find an unconstrained minimum of the objective `function` starting at `initial`, within `functionTolerance`.
`double[]` `minimize(DiffFunction function, double functionTolerance, double[] initial, int maxIterations)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEBUG

    public static final boolean DEBUG

See Also:
  Constant Field Values

Constructor Detail

### OWLQNMinimizer

    public OWLQNMinimizer()

### OWLQNMinimizer

    public OWLQNMinimizer(double regweight)

### OWLQNMinimizer

    public OWLQNMinimizer(double regweight,
                          int m)

Method Detail

### minimize

    public double[] minimize(DiffFunction function,
                             double functionTolerance,
                             double[] initial)

  Description copied from interface: `Minimizer`
  Attempts to find an unconstrained minimum of the objective `function` starting at `initial`, within `functionTolerance`.

  Specified by:
    `minimize` in interface `Minimizer<DiffFunction>`
  Parameters:
    `function` - the objective function
    `functionTolerance` - a `double` value
    `initial` - a initial feasible point
  Returns:
    Unconstrained minimum of function

### minimize

    public double[] minimize(DiffFunction function,
                             double functionTolerance,
                             double[] initial,
                             int maxIterations)

  Specified by:
    `minimize` in interface `Minimizer<DiffFunction>`

### main

    public static void main(String[] args)

Stanford NLP Group