de.jstacs.sequenceScores.statisticalModels.differentiable
Interface DifferentiableStatisticalModel

All Superinterfaces:
Cloneable, DifferentiableSequenceScore, SequenceScore, StatisticalModel, Storable
All Known Subinterfaces:
SamplingDifferentiableStatisticalModel, VariableLengthDiffSM
All Known Implementing Classes:
AbstractDifferentiableStatisticalModel, AbstractMixtureDiffSM, AbstractVariableLengthDiffSM, BayesianNetworkDiffSM, CyclicMarkovModelDiffSM, DifferentiableHigherOrderHMM, DurationDiffSM, ExtendedZOOPSDiffSM, HomogeneousDiffSM, HomogeneousMM0DiffSM, HomogeneousMMDiffSM, IndependentProductDiffSM, MappingDiffSM, MarkovModelDiffSM, MarkovRandomFieldDiffSM, MixtureDiffSM, MixtureDurationDiffSM, NormalizedDiffSM, PositionDiffSM, SkewNormalLikeDurationDiffSM, StrandDiffSM, UniformDiffSM, UniformDurationDiffSM, UniformHomogeneousDiffSM, VariableLengthMixtureDiffSM

public interface DifferentiableStatisticalModel
extends DifferentiableSequenceScore, StatisticalModel

The interface for normalizable DifferentiableSequenceScores. For creating simple differentiable statistical models please check DifferentiableStatisticalModelFactory.

Author:
Jens Keilwagen, Jan Grau
See Also:
DifferentiableStatisticalModelFactory

Field Summary
 
Fields inherited from interface de.jstacs.sequenceScores.differentiable.DifferentiableSequenceScore
UNKNOWN
 
Method Summary
 void addGradientOfLogPriorTerm(double[] grad, int start)
          This method computes the gradient of getLogPriorTerm() for each parameter of this model.
 double getESS()
          Returns the equivalent sample size (ess) of this model, i.e.
 double getLogNormalizationConstant()
          Returns the logarithm of the sum of the scores over all sequences of the event space.
 double getLogPartialNormalizationConstant(int parameterIndex)
          Returns the logarithm of the partial normalization constant for the parameter with index parameterIndex.
 double getLogPriorTerm()
          This method computes a value that is proportional to
 int getSizeOfEventSpaceForRandomVariablesOfParameter(int index)
          Returns the size of the event space of the random variables that are affected by parameter no.
 boolean isNormalized()
          This method indicates whether the implemented score is already normalized to 1 or not.
 
Methods inherited from interface de.jstacs.sequenceScores.differentiable.DifferentiableSequenceScore
clone, getCurrentParameterValues, getInitialClassParam, getLogScoreAndPartialDerivation, getLogScoreAndPartialDerivation, getLogScoreAndPartialDerivation, getNumberOfParameters, getNumberOfRecommendedStarts, initializeFunction, initializeFunctionRandomly, setParameters
 
Methods inherited from interface de.jstacs.sequenceScores.statisticalModels.StatisticalModel
emitDataSet, getLogProbFor, getLogProbFor, getLogProbFor, getMaximalMarkovOrder
 
Methods inherited from interface de.jstacs.sequenceScores.SequenceScore
getAlphabetContainer, getCharacteristics, getInstanceName, getLength, getLogScoreFor, getLogScoreFor, getLogScoreFor, getLogScoreFor, getLogScoreFor, getNumericalCharacteristics, isInitialized, toString
 
Methods inherited from interface de.jstacs.Storable
toXML
 

Method Detail

getSizeOfEventSpaceForRandomVariablesOfParameter

int getSizeOfEventSpaceForRandomVariablesOfParameter(int index)
Returns the size of the event space of the random variables that are affected by parameter no. index, i.e. the product of the sizes of the alphabets at the position of each random variable affected by parameter index. For DNA alphabets this corresponds to 4 for a PWM, 16 for a WAM except position 0, ...

Parameters:
index - the index of the parameter
Returns:
the size of the event space

getLogNormalizationConstant

double getLogNormalizationConstant()
Returns the logarithm of the sum of the scores over all sequences of the event space.

Returns:
the logarithm of the normalization constant Z

getLogPartialNormalizationConstant

double getLogPartialNormalizationConstant(int parameterIndex)
                                          throws Exception
Returns the logarithm of the partial normalization constant for the parameter with index parameterIndex. This is the logarithm of the partial derivation of the normalization constant for the parameter with index parameterIndex,
\[\log \frac{\partial Z(\underline{\lambda})}{\partial \lambda_{parameterindex}}\]
.

Parameters:
parameterIndex - the index of the parameter
Returns:
the logarithm of the partial normalization constant
Throws:
Exception - if something went wrong with the normalization
See Also:
getLogNormalizationConstant()

getLogPriorTerm

double getLogPriorTerm()
This method computes a value that is proportional to

getESS() * getLogNormalizationConstant() + Math.log( prior )

where prior is the prior for the parameters of this model.

Specified by:
getLogPriorTerm in interface StatisticalModel
Returns:
a value that is proportional to getESS() * getLogNormalizationConstant() + Math.log( prior ).
See Also:
getESS(), getLogNormalizationConstant()

addGradientOfLogPriorTerm

void addGradientOfLogPriorTerm(double[] grad,
                               int start)
                               throws Exception
This method computes the gradient of getLogPriorTerm() for each parameter of this model. The results are added to the array grad beginning at index start.

Parameters:
grad - the array of gradients
start - the start index in the grad array, where the partial derivations for the parameters of this models shall be entered
Throws:
Exception - if something went wrong with the computing of the gradients
See Also:
getLogPriorTerm()

isNormalized

boolean isNormalized()
This method indicates whether the implemented score is already normalized to 1 or not. The standard implementation returns false.

Returns:
true if the implemented score is already normalized to 1, false otherwise

getESS

double getESS()
Returns the equivalent sample size (ess) of this model, i.e. the equivalent sample size for the class or component that is represented by this model.

Returns:
the equivalent sample size.