|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcalhoun.analysis.crf.solver.semimarkov.CleanMaximumLikelihoodSemiMarkovGradient
public class CleanMaximumLikelihoodSemiMarkovGradient
computes the likelihood of the true path for a semi-Markov CRF. The likelihood is normalized to a per label likelihood.
maxIters = 1 and requireConvergence = false in your optimizer
to do only a single training iteration, possibly setting the starts to some predetermined value. Each of these
properties can be configured with a filename and each time apply(double[], double[]) is called, the file will be overwritten with
data from the current call. The logging options are:
alphaFile - computation of alpha values for Markov states, includes all nodes and edges.
alphaLengthFile - computation of alpha values for semi-Markov states , includes all segments
expectFile - computation of expected values for each Markov feature
expectLengthFile - computation of expected values for each semi-Markov feature
nodeMarginalFile - computation of marginal probability of each state at each position
| Field Summary | |
|---|---|
static double |
ASSERTION_TOLERANCE
|
static boolean |
debug
|
static int |
NORM_FACTOR
|
static double |
NORM_MAX
|
static double |
NORM_MIN
|
| Constructor Summary | |
|---|---|
CleanMaximumLikelihoodSemiMarkovGradient()
|
|
| Method Summary | |
|---|---|
double |
apply(double[] param,
double[] grad)
computes the objective function value and the gradient. |
void |
clean()
Frees resources allocated by setTrainingData |
java.lang.String |
getAlphaFile()
|
java.lang.String |
getAlphaLengthFile()
|
java.lang.String |
getBetaLengthFile()
|
CacheProcessor |
getCacheProcessor()
gets the cache processor used to access feature evaluations |
java.lang.String |
getExpectFile()
|
java.lang.String |
getExpectLengthFile()
|
java.lang.String |
getNodeMarginalFile()
|
static java.lang.String |
printNorm(double value,
int norm)
|
void |
setAlphaFile(java.lang.String alphaFile)
|
void |
setAlphaLengthFile(java.lang.String alphaLengthFile)
|
void |
setBetaLengthFile(java.lang.String betaLengthFile)
|
void |
setCacheProcessor(CacheProcessor cacheProcessor)
sets the cache processor used to access feature evaluations |
void |
setExpectFile(java.lang.String expectFile)
|
void |
setExpectLengthFile(java.lang.String expectLengthFile)
|
void |
setNodeMarginalFile(java.lang.String nodeMarginalFile)
|
void |
setTrainingData(ModelManager fm,
java.util.List<? extends TrainingSequence<?>> data)
sets the training data that will be used for evaluation of the objective function. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final boolean debug
public static final double ASSERTION_TOLERANCE
public static final int NORM_FACTOR
public static final double NORM_MIN
public static final double NORM_MAX
| Constructor Detail |
|---|
public CleanMaximumLikelihoodSemiMarkovGradient()
| Method Detail |
|---|
public void setTrainingData(ModelManager fm,
java.util.List<? extends TrainingSequence<?>> data)
CRFObjectiveFunctionGradientapply
is called to set up the training data. Since it is expected that apply will be called many times, this funtion is
the place to do one time setup and caching.
setTrainingData in interface CRFObjectiveFunctionGradientfm - the model to use. Defines the hidden states, transitions, and features.data - the training sequences on which to calculate the objective function.
public double apply(double[] param,
double[] grad)
CRFObjectiveFunctionGradient
apply in interface CRFObjectiveFunctionGradientparam - an array of feature weights to use. The length will equal the number of features in the model, and the values will change
for each call to apply.grad - an array which must be filled with the gradient vector when the function returns. For each feature index, the array should contain an
entry with the partial derivative with respect to that feature.
public void clean()
CRFObjectiveFunctionGradient
clean in interface CRFObjectiveFunctionGradient
public static final java.lang.String printNorm(double value,
int norm)
public CacheProcessor getCacheProcessor()
public void setCacheProcessor(CacheProcessor cacheProcessor)
cacheProcessor - the cache processor to usepublic java.lang.String getAlphaLengthFile()
public void setAlphaLengthFile(java.lang.String alphaLengthFile)
public java.lang.String getAlphaFile()
public void setAlphaFile(java.lang.String alphaFile)
public java.lang.String getExpectFile()
public void setExpectFile(java.lang.String expectFile)
public java.lang.String getExpectLengthFile()
public void setExpectLengthFile(java.lang.String expectLengthFile)
public java.lang.String getNodeMarginalFile()
public void setNodeMarginalFile(java.lang.String nodeMarginalFile)
public java.lang.String getBetaLengthFile()
public void setBetaLengthFile(java.lang.String betaLengthFile)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||