de.jstacs.classifiers.differentiableSequenceScoreBased.logPrior
Class SeparateLogPrior

java.lang.Object
  extended by de.jstacs.algorithms.optimization.DifferentiableFunction
      extended by de.jstacs.classifiers.differentiableSequenceScoreBased.logPrior.LogPrior
          extended by de.jstacs.classifiers.differentiableSequenceScoreBased.logPrior.SeparateLogPrior
All Implemented Interfaces:
Function, Storable, Cloneable
Direct Known Subclasses:
SeparateGaussianLogPrior, SeparateLaplaceLogPrior

public abstract class SeparateLogPrior
extends LogPrior
implements Cloneable

Abstract class for priors that penalize each parameter value independently and have some variances (and possible means) as hyperparameters. Such priors are e.g. the SeparateGaussianLogPrior or the SeparateLaplaceLogPrior.

Author:
Jan Grau, Jens Keilwagen

Field Summary
protected  double[] classMus
          The means for the class parameters, as specified by the user.
protected  double[] classVars
          The variances for the class parameters, as specified by the user.
protected  boolean freeParameters
          Indicates, if only free parameters shall be used and hence penalized.
protected  DifferentiableStatisticalModel[] funs
          The DifferentiableSequenceScores using the parameters that shall be penalized.
protected  double[] vars
          The base variances for the parameters of the DifferentiableSequenceScores of each class, the means of the non-class parameters should be 0.
 
Fields inherited from class de.jstacs.classifiers.differentiableSequenceScoreBased.logPrior.LogPrior
UNKNOWN
 
Constructor Summary
SeparateLogPrior(double[] vars, double[] classVars, double[] classMus)
          Creates a new SeparateLogPrior using the class-specific base variances vars, the variances classVars and the means classMus for the class parameters.
SeparateLogPrior(StringBuffer xml)
          The standard constructor for the interface Storable.
 
Method Summary
 SeparateLogPrior getNewInstance()
          This method returns an empty new instance of the current prior.
 void set(boolean freeParameters, DifferentiableSequenceScore... funs)
          Resets all pre-computed values to their initial values using the DifferentiableSequenceScores funs.
 StringBuffer toXML()
          Encodes the prior as an XML representation.
protected abstract  void unset()
          Resets all internally pre-computed values, e.g.
 
Methods inherited from class de.jstacs.classifiers.differentiableSequenceScoreBased.logPrior.LogPrior
addGradientFor, evaluateGradientOfFunction, getInstanceName
 
Methods inherited from class de.jstacs.algorithms.optimization.DifferentiableFunction
findOneDimensionalMin
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.jstacs.algorithms.optimization.Function
evaluateFunction, getDimensionOfScope
 

Field Detail

funs

protected DifferentiableStatisticalModel[] funs
The DifferentiableSequenceScores using the parameters that shall be penalized.


vars

protected double[] vars
The base variances for the parameters of the DifferentiableSequenceScores of each class, the means of the non-class parameters should be 0.


classVars

protected double[] classVars
The variances for the class parameters, as specified by the user.


classMus

protected double[] classMus
The means for the class parameters, as specified by the user.


freeParameters

protected boolean freeParameters
Indicates, if only free parameters shall be used and hence penalized.

Constructor Detail

SeparateLogPrior

public SeparateLogPrior(double[] vars,
                        double[] classVars,
                        double[] classMus)
Creates a new SeparateLogPrior using the class-specific base variances vars, the variances classVars and the means classMus for the class parameters.

Parameters:
vars - the base variances for each class
classVars - the variances for the class parameters
classMus - the means for the class parameters

SeparateLogPrior

public SeparateLogPrior(StringBuffer xml)
                 throws NonParsableException
The standard constructor for the interface Storable. Creates a new SeparateLogPrior out of its XML representation.

Parameters:
xml - the XML representation as StringBuffer
Throws:
NonParsableException - if the SeparateLogPrior could not be reconstructed out of the XML representation (the StringBuffer could not be parsed)
See Also:
Storable
Method Detail

set

public void set(boolean freeParameters,
                DifferentiableSequenceScore... funs)
         throws Exception
Description copied from class: LogPrior
Resets all pre-computed values to their initial values using the DifferentiableSequenceScores funs.

Overrides:
set in class LogPrior
Parameters:
freeParameters - the switch for using only the free parameters or all parameters in a DifferentiableSequenceScore
funs - the DifferentiableSequenceScores for the prior
Throws:
Exception - if the DifferentiableSequenceScores could not be set

unset

protected abstract void unset()
Resets all internally pre-computed values, e.g. the hyperparameters for each parameter.


getNewInstance

public SeparateLogPrior getNewInstance()
                                throws CloneNotSupportedException
Description copied from class: LogPrior
This method returns an empty new instance of the current prior. The method works similar to clone, but does not clone DifferentiableSequenceScore s that may be inside the instance. The DifferentiableSequenceScores must be set by an invocation of the method LogPrior.set(boolean, DifferentiableSequenceScore...).

Specified by:
getNewInstance in class LogPrior
Returns:
a new empty instance of the prior
Throws:
CloneNotSupportedException - if something went wrong while cloning
See Also:
LogPrior.set(boolean, DifferentiableSequenceScore...)

toXML

public StringBuffer toXML()
Description copied from class: LogPrior
Encodes the prior as an XML representation. It does not encode all information, since the method LogPrior.set(boolean, DifferentiableSequenceScore...) has to be invoked after decoding.

Specified by:
toXML in interface Storable
Specified by:
toXML in class LogPrior
Returns:
the XML representation;