Package cc.mallet.fst
Class CRFOptimizableByBatchLabelLikelihood
- java.lang.Object
-
- cc.mallet.fst.CRFOptimizableByBatchLabelLikelihood
-
- All Implemented Interfaces:
Optimizable
,Optimizable.ByCombiningBatchGradient
,java.io.Serializable
public class CRFOptimizableByBatchLabelLikelihood extends java.lang.Object implements Optimizable.ByCombiningBatchGradient, java.io.Serializable
Implements label likelihood gradient computations for batches of data, can be easily parallelized.The gradient computations are the same as that of CRFOptimizableByLabelLikelihood.
*Note*: Expectations corresponding to each batch of data can be computed in parallel. During gradient computation, the prior and the constraints are incorporated into the expectations of the last batch (see getBatchValue, getBatchValueGradient). *Note*: This implementation ignores instances with infinite weights (see getExpectationValue).
- Author:
- Gaurav Chandalia
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CRFOptimizableByBatchLabelLikelihood.Factory
-
Nested classes/interfaces inherited from interface cc.mallet.optimize.Optimizable
Optimizable.ByBatchGradient, Optimizable.ByCombiningBatchGradient, Optimizable.ByGISUpdate, Optimizable.ByGradient, Optimizable.ByGradientValue, Optimizable.ByHessian, Optimizable.ByValue, Optimizable.ByVotedPerceptron
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<double[]>
cachedGradient
protected double[]
cachedValue
protected CRF.Factors
constraints
protected CRF
crf
protected java.util.List<CRF.Factors>
expectations
protected int
numBatches
protected InstanceList
trainingSet
-
Constructor Summary
Constructors Constructor Description CRFOptimizableByBatchLabelLikelihood(CRF crf, InstanceList ilist, int numBatches)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
combineGradients(java.util.Collection<double[]> batchGradients, double[] buffer)
Adds gradients from all batches.protected void
gatherConstraints(InstanceList ilist)
Set the constraints by running forward-backward with the output label sequence provided, thus restricting it to only those paths that agree with the label sequence.double
getBatchValue(int batchIndex, int[] batchAssignments)
Returns the log probability of a batch of training sequence labels and the prior over parameters, if last batch then incorporate the prior on parameters as well.void
getBatchValueGradient(double[] buffer, int batchIndex, int[] batchAssignments)
protected double
getExpectationValue(int batchIndex, int[] batchAssignments)
Computes log probability of a batch of training data, fill in corresponding expectations as welldouble
getGaussianPriorVariance()
int
getNumBatches()
int
getNumParameters()
double
getParameter(int index)
void
getParameters(double[] buffer)
double
getUseHyperbolicPriorSharpness()
double
getUseHyperbolicPriorSlope()
void
setGaussianPriorVariance(double p)
void
setHyperbolicPriorSharpness(double p)
void
setHyperbolicPriorSlope(double p)
void
setParameter(int index, double value)
void
setParameters(double[] buff)
void
setUseHyperbolicPrior(boolean f)
-
-
-
Field Detail
-
crf
protected CRF crf
-
trainingSet
protected InstanceList trainingSet
-
numBatches
protected int numBatches
-
expectations
protected java.util.List<CRF.Factors> expectations
-
constraints
protected CRF.Factors constraints
-
cachedValue
protected double[] cachedValue
-
cachedGradient
protected java.util.List<double[]> cachedGradient
-
-
Constructor Detail
-
CRFOptimizableByBatchLabelLikelihood
public CRFOptimizableByBatchLabelLikelihood(CRF crf, InstanceList ilist, int numBatches)
-
-
Method Detail
-
gatherConstraints
protected void gatherConstraints(InstanceList ilist)
Set the constraints by running forward-backward with the output label sequence provided, thus restricting it to only those paths that agree with the label sequence.
-
getExpectationValue
protected double getExpectationValue(int batchIndex, int[] batchAssignments)
Computes log probability of a batch of training data, fill in corresponding expectations as well
-
getBatchValue
public double getBatchValue(int batchIndex, int[] batchAssignments)
Returns the log probability of a batch of training sequence labels and the prior over parameters, if last batch then incorporate the prior on parameters as well.- Specified by:
getBatchValue
in interfaceOptimizable.ByCombiningBatchGradient
-
getBatchValueGradient
public void getBatchValueGradient(double[] buffer, int batchIndex, int[] batchAssignments)
- Specified by:
getBatchValueGradient
in interfaceOptimizable.ByCombiningBatchGradient
-
combineGradients
public void combineGradients(java.util.Collection<double[]> batchGradients, double[] buffer)
Adds gradients from all batches.Note: assumes buffer is already initialized.
- Specified by:
combineGradients
in interfaceOptimizable.ByCombiningBatchGradient
-
getNumBatches
public int getNumBatches()
- Specified by:
getNumBatches
in interfaceOptimizable.ByCombiningBatchGradient
-
setUseHyperbolicPrior
public void setUseHyperbolicPrior(boolean f)
-
setHyperbolicPriorSlope
public void setHyperbolicPriorSlope(double p)
-
setHyperbolicPriorSharpness
public void setHyperbolicPriorSharpness(double p)
-
getUseHyperbolicPriorSlope
public double getUseHyperbolicPriorSlope()
-
getUseHyperbolicPriorSharpness
public double getUseHyperbolicPriorSharpness()
-
setGaussianPriorVariance
public void setGaussianPriorVariance(double p)
-
getGaussianPriorVariance
public double getGaussianPriorVariance()
-
getNumParameters
public int getNumParameters()
- Specified by:
getNumParameters
in interfaceOptimizable
-
getParameters
public void getParameters(double[] buffer)
- Specified by:
getParameters
in interfaceOptimizable
-
getParameter
public double getParameter(int index)
- Specified by:
getParameter
in interfaceOptimizable
-
setParameters
public void setParameters(double[] buff)
- Specified by:
setParameters
in interfaceOptimizable
-
setParameter
public void setParameter(int index, double value)
- Specified by:
setParameter
in interfaceOptimizable
-
-