Package cc.mallet.fst
Class CRFTrainerByStochasticGradient
- java.lang.Object
-
- cc.mallet.fst.TransducerTrainer
-
- cc.mallet.fst.TransducerTrainer.ByIncrements
-
- cc.mallet.fst.TransducerTrainer.ByInstanceIncrements
-
- cc.mallet.fst.CRFTrainerByStochasticGradient
-
public class CRFTrainerByStochasticGradient extends TransducerTrainer.ByInstanceIncrements
Trains CRF by stochastic gradient. Most effective on large training sets.- Author:
- kedarb
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class cc.mallet.fst.TransducerTrainer
TransducerTrainer.ByIncrements, TransducerTrainer.ByInstanceIncrements, TransducerTrainer.ByOptimization
-
-
Field Summary
Fields Modifier and Type Field Description protected CRF.Factorsconstraintsprotected booleanconvergedprotected CRFcrfprotected CRF.Factorsexpectationsprotected intiterationCountprotected doublelambdaprotected doublelearningRateprotected doublet
-
Constructor Summary
Constructors Constructor Description CRFTrainerByStochasticGradient(CRF crf, double learningRate)CRFTrainerByStochasticGradient(CRF crf, InstanceList trainingSample)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetIteration()doublegetLearningRate()TransducergetTransducer()booleanisFinishedTraining()voidsetLearningRate(double r)voidsetLearningRateByLikelihood(InstanceList trainingSample)Automatically sets the learning rate to one that would be goodbooleantrain(InstanceList trainingSet, int numIterations)Train the transducer associated with this TransducerTrainer.booleantrain(InstanceList trainingSet, int numIterations, int numIterationsBetweenEvaluation)booleantrainIncremental(Instance trainingInstance)booleantrainIncremental(InstanceList trainingSet)doubletrainIncrementalLikelihood(Instance trainingInstance)Adjust the parameters by default learning rate according to the gradient of this single Instance, and return the true label sequence likelihood.doubletrainIncrementalLikelihood(Instance trainingInstance, double rate)Adjust the parameters by learning rate according to the gradient of this single Instance, and return the true label sequence likelihood.-
Methods inherited from class cc.mallet.fst.TransducerTrainer
addEvaluator, addEvaluators, removeEvaluator, runEvaluators, train
-
-
-
-
Field Detail
-
crf
protected CRF crf
-
learningRate
protected double learningRate
-
t
protected double t
-
lambda
protected double lambda
-
iterationCount
protected int iterationCount
-
converged
protected boolean converged
-
expectations
protected CRF.Factors expectations
-
constraints
protected CRF.Factors constraints
-
-
Constructor Detail
-
CRFTrainerByStochasticGradient
public CRFTrainerByStochasticGradient(CRF crf, InstanceList trainingSample)
-
CRFTrainerByStochasticGradient
public CRFTrainerByStochasticGradient(CRF crf, double learningRate)
-
-
Method Detail
-
getIteration
public int getIteration()
- Specified by:
getIterationin classTransducerTrainer
-
getTransducer
public Transducer getTransducer()
- Specified by:
getTransducerin classTransducerTrainer
-
isFinishedTraining
public boolean isFinishedTraining()
- Specified by:
isFinishedTrainingin classTransducerTrainer
-
setLearningRateByLikelihood
public void setLearningRateByLikelihood(InstanceList trainingSample)
Automatically sets the learning rate to one that would be good
-
setLearningRate
public void setLearningRate(double r)
-
getLearningRate
public double getLearningRate()
-
train
public boolean train(InstanceList trainingSet, int numIterations)
Description copied from class:TransducerTrainerTrain the transducer associated with this TransducerTrainer. You should be able to call this method with different trainingSet objects. Whether this causes the TransducerTrainer to combine both trainingSets or to view the second as a new alternative is at the discretion of the particular TransducerTrainer subclass involved.- Specified by:
trainin classTransducerTrainer
-
train
public boolean train(InstanceList trainingSet, int numIterations, int numIterationsBetweenEvaluation)
-
trainIncremental
public boolean trainIncremental(InstanceList trainingSet)
- Specified by:
trainIncrementalin classTransducerTrainer.ByIncrements
-
trainIncremental
public boolean trainIncremental(Instance trainingInstance)
- Specified by:
trainIncrementalin classTransducerTrainer.ByInstanceIncrements
-
trainIncrementalLikelihood
public double trainIncrementalLikelihood(Instance trainingInstance)
Adjust the parameters by default learning rate according to the gradient of this single Instance, and return the true label sequence likelihood.
-
trainIncrementalLikelihood
public double trainIncrementalLikelihood(Instance trainingInstance, double rate)
Adjust the parameters by learning rate according to the gradient of this single Instance, and return the true label sequence likelihood.
-
-