Search in sources :

Example 1 with LBFGS

use of edu.neu.ccs.pyramid.optimization.LBFGS in project pyramid by cheng-li.

the class LogRiskOptimizer method updateModelPartial.

private void updateModelPartial() {
    if (logger.isDebugEnabled()) {
        logger.debug("start updateModelPartial()");
    }
    KLLoss klLoss = new KLLoss(crf, dataSet, targets, variance);
    // todo
    Optimizer opt = null;
    switch(optimizer) {
        case "LBFGS":
            opt = new LBFGS(klLoss);
            break;
        case "GD":
            opt = new GradientDescent(klLoss);
            break;
        default:
            throw new IllegalArgumentException("unknown");
    }
    opt.getTerminator().setMaxIteration(10);
    opt.optimize();
    if (logger.isDebugEnabled()) {
        logger.debug("finish updateModelPartial()");
    }
}
Also used : LBFGS(edu.neu.ccs.pyramid.optimization.LBFGS) Optimizer(edu.neu.ccs.pyramid.optimization.Optimizer) GradientDescent(edu.neu.ccs.pyramid.optimization.GradientDescent)

Example 2 with LBFGS

use of edu.neu.ccs.pyramid.optimization.LBFGS in project pyramid by cheng-li.

the class NoiseOptimizerLR method updateModel.

private void updateModel() {
    if (logger.isDebugEnabled()) {
        logger.debug("start updateModel()");
    }
    KLLoss klLoss = new KLLoss(crf, dataSet, targets, variance);
    // todo
    Optimizer opt = null;
    switch(optimizer) {
        case "LBFGS":
            opt = new LBFGS(klLoss);
            break;
        case "GD":
            opt = new GradientDescent(klLoss);
            break;
        default:
            throw new IllegalArgumentException("unknown");
    }
    opt.optimize();
    if (logger.isDebugEnabled()) {
        logger.debug("finish updateModel()");
    }
}
Also used : LBFGS(edu.neu.ccs.pyramid.optimization.LBFGS) Optimizer(edu.neu.ccs.pyramid.optimization.Optimizer) RidgeLogisticOptimizer(edu.neu.ccs.pyramid.classification.logistic_regression.RidgeLogisticOptimizer) GradientDescent(edu.neu.ccs.pyramid.optimization.GradientDescent)

Example 3 with LBFGS

use of edu.neu.ccs.pyramid.optimization.LBFGS in project pyramid by cheng-li.

the class NoiseOptimizerLR method updateModelPartial.

private void updateModelPartial(int modelIterations) {
    if (logger.isDebugEnabled()) {
        logger.debug("start updateModelPartial()");
    }
    KLLoss klLoss = new KLLoss(crf, dataSet, targets, variance);
    // todo
    Optimizer opt = null;
    switch(optimizer) {
        case "LBFGS":
            opt = new LBFGS(klLoss);
            break;
        case "GD":
            opt = new GradientDescent(klLoss);
            break;
        default:
            throw new IllegalArgumentException("unknown");
    }
    opt.getTerminator().setMaxIteration(modelIterations);
    opt.optimize();
    if (logger.isDebugEnabled()) {
        logger.debug("finish updateModelPartial()");
    }
}
Also used : LBFGS(edu.neu.ccs.pyramid.optimization.LBFGS) Optimizer(edu.neu.ccs.pyramid.optimization.Optimizer) RidgeLogisticOptimizer(edu.neu.ccs.pyramid.classification.logistic_regression.RidgeLogisticOptimizer) GradientDescent(edu.neu.ccs.pyramid.optimization.GradientDescent)

Example 4 with LBFGS

use of edu.neu.ccs.pyramid.optimization.LBFGS in project pyramid by cheng-li.

the class IMLLogisticTrainer method train.

public IMLLogisticRegression train(MultiLabelClfDataSet dataset, List<MultiLabel> assignments) {
    IMLLogisticRegression IMLLogisticRegression = new IMLLogisticRegression(dataset.getNumClasses(), dataset.getNumFeatures(), assignments);
    IMLLogisticRegression.setFeatureList(dataset.getFeatureList());
    IMLLogisticRegression.setLabelTranslator(dataset.getLabelTranslator());
    IMLLogisticLoss function = new IMLLogisticLoss(IMLLogisticRegression, dataset, gaussianPriorVariance);
    LBFGS lbfgs = new LBFGS(function);
    lbfgs.getTerminator().setRelativeEpsilon(epsilon);
    lbfgs.setHistory(history);
    lbfgs.optimize();
    return IMLLogisticRegression;
}
Also used : LBFGS(edu.neu.ccs.pyramid.optimization.LBFGS)

Example 5 with LBFGS

use of edu.neu.ccs.pyramid.optimization.LBFGS in project pyramid by cheng-li.

the class MLLogisticTrainer method train.

public MLLogisticRegression train(MultiLabelClfDataSet dataset, List<MultiLabel> assignments) {
    MLLogisticRegression mlLogisticRegression = new MLLogisticRegression(dataset.getNumClasses(), dataset.getNumFeatures(), assignments);
    mlLogisticRegression.setFeatureList(dataset.getFeatureList());
    mlLogisticRegression.setLabelTranslator(dataset.getLabelTranslator());
    mlLogisticRegression.setFeatureExtraction(false);
    MLLogisticLoss function = new MLLogisticLoss(mlLogisticRegression, dataset, gaussianPriorVariance);
    LBFGS lbfgs = new LBFGS(function);
    lbfgs.optimize();
    return mlLogisticRegression;
}
Also used : LBFGS(edu.neu.ccs.pyramid.optimization.LBFGS)

Aggregations

LBFGS (edu.neu.ccs.pyramid.optimization.LBFGS)22 File (java.io.File)12 MultiLabelClfDataSet (edu.neu.ccs.pyramid.dataset.MultiLabelClfDataSet)9 MultiLabel (edu.neu.ccs.pyramid.dataset.MultiLabel)7 CMLCRF (edu.neu.ccs.pyramid.multilabel_classification.crf.CMLCRF)7 CRFLoss (edu.neu.ccs.pyramid.multilabel_classification.crf.CRFLoss)7 GradientDescent (edu.neu.ccs.pyramid.optimization.GradientDescent)7 Optimizer (edu.neu.ccs.pyramid.optimization.Optimizer)6 RidgeLogisticOptimizer (edu.neu.ccs.pyramid.classification.logistic_regression.RidgeLogisticOptimizer)2 MLMeasures (edu.neu.ccs.pyramid.eval.MLMeasures)2 ArrayList (java.util.ArrayList)2 ClfDataSet (edu.neu.ccs.pyramid.dataset.ClfDataSet)1 LoggerContext (org.apache.logging.log4j.core.LoggerContext)1 Configuration (org.apache.logging.log4j.core.config.Configuration)1 LoggerConfig (org.apache.logging.log4j.core.config.LoggerConfig)1