public OrthantWiseLimitedMemoryBFGS(Optimizable.ByGradientValue function, double l1wt) { this.optimizable = function; this.l1Weight = l1wt; String parts[] = optimizable.getClass().getName().split("\\."); this.optName = parts[parts.length - 1]; // initialize optimizer state iterations = 0; s = new LinkedList<double[]>(); y = new LinkedList<double[]>(); rhos = new LinkedList<Double>(); alphas = new double[m]; MatrixOps.setAll(alphas, 0.0); yDotY = 0; int numParameters = optimizable.getNumParameters(); // get initial parameters parameters = new double[numParameters]; optimizable.getParameters(parameters); // get initial value value = evalL1(); // get initial gradient grad = new double[numParameters]; evalGradient(); // initialize direction direction = new double[numParameters]; steepestDescentDirection = new double[numParameters]; // initialize backups oldParameters = new double[numParameters]; oldGrad = new double[numParameters]; }
public OrthantWiseLimitedMemoryBFGS(Optimizable.ByGradientValue function, double l1wt) { this.optimizable = function; this.l1Weight = l1wt; String parts[] = optimizable.getClass().getName().split("\\."); this.optName = parts[parts.length - 1]; // initialize optimizer state iterations = 0; s = new LinkedList<double[]>(); y = new LinkedList<double[]>(); rhos = new LinkedList<Double>(); alphas = new double[m]; MatrixOps.setAll(alphas, 0.0); yDotY = 0; int numParameters = optimizable.getNumParameters(); // get initial parameters parameters = new double[numParameters]; optimizable.getParameters(parameters); // get initial value value = evalL1(); // get initial gradient grad = new double[numParameters]; evalGradient(); // initialize direction direction = new double[numParameters]; steepestDescentDirection = new double[numParameters]; // initialize backups oldParameters = new double[numParameters]; oldGrad = new double[numParameters]; }
public OrthantWiseLimitedMemoryBFGS(Optimizable.ByGradientValue function, double l1wt) { this.optimizable = function; this.l1Weight = l1wt; String parts[] = optimizable.getClass().getName().split("\\."); this.optName = parts[parts.length - 1]; // initialize optimizer state iterations = 0; s = new LinkedList<double[]>(); y = new LinkedList<double[]>(); rhos = new LinkedList<Double>(); alphas = new double[m]; MatrixOps.setAll(alphas, 0.0); yDotY = 0; int numParameters = optimizable.getNumParameters(); // get initial parameters parameters = new double[numParameters]; optimizable.getParameters(parameters); // get initial value value = evalL1(); // get initial gradient grad = new double[numParameters]; evalGradient(); // initialize direction direction = new double[numParameters]; steepestDescentDirection = new double[numParameters]; // initialize backups oldParameters = new double[numParameters]; oldGrad = new double[numParameters]; }
value = evalL1();
value = evalL1();