Class QNMinimizer


  • public class QNMinimizer
    extends java.lang.Object
    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);
     
    • Constructor Detail

      • QNMinimizer

        public QNMinimizer()
      • QNMinimizer

        public QNMinimizer​(double l1Cost,
                           double l2Cost)
      • QNMinimizer

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

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

        public QNMinimizer​(double l1Cost,
                           double l2Cost,
                           int iterations,
                           int m,
                           int maxFctEval,
                           boolean verbose)
        Constructor
        Parameters:
        l1Cost - L1-regularization cost
        l2Cost - L2-regularization cost
        iterations - maximum number of iterations
        m - number of Hessian updates to store
        maxFctEval - maximum number of function evaluations
        verbose - verbose output
    • Method Detail

      • minimize

        public double[] minimize​(Function function)
        Find the parameters that minimize the objective function
        Parameters:
        function - objective function
        Returns:
        minimizing parameters