Package org.ptolemy.machineLearning.hsmm
Class HSMMMultinomialEstimator
- java.lang.Object
-
- ptolemy.kernel.util.NamedObj
-
- ptolemy.kernel.InstantiableNamedObj
-
- ptolemy.kernel.Entity<T>
-
- ptolemy.kernel.ComponentEntity<T>
-
- ptolemy.actor.AtomicActor<TypedIOPort>
-
- ptolemy.actor.TypedAtomicActor
-
- org.ptolemy.machineLearning.hmm.ParameterEstimator
-
- org.ptolemy.machineLearning.hsmm.HSMMParameterEstimator
-
- org.ptolemy.machineLearning.hsmm.HSMMMultinomialEstimator
-
- All Implemented Interfaces:
java.lang.Cloneable,Actor,Executable,FiringsRecordable,Initializable,TypedActor,Changeable,Debuggable,DebugListener,Derivable,Instantiable,ModelErrorHandler,MoMLExportable,Moveable,Nameable
- Direct Known Subclasses:
HSMMTimeAwareMultinomialEstimator
public class HSMMMultinomialEstimator extends HSMMParameterEstimator
A hidden semi-markov model estimator, configured as an Explicit-Duration Hidden Markov Model (EDHMM) with multinomial emissions.
- Since:
- Ptolemy II 11.0
- Version:
- $Id$
- Author:
- Ilge Akkaya
- Pt.AcceptedRating:
- Pt.ProposedRating:
- Red (ilgea)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
-
-
Field Summary
Fields Modifier and Type Field Description protected double[][]_BEmission distributions Bij = P(Yt=j | qt = i).protected int[]_nCategoriesNumber of categories.protected int[]clustersInferred cluster assignments.TypedIOPortemissionEstimatesAn output that defines a probability mass estimate of the multinomial observation probabilities.ParameternCategoriesNumber of categories in the multinomial distribution.ParameterobservationDimensionDimension of each observation array.ParameterobservationProbabilitiesAn input guess array that defines a probability mass, defining the multinomial observation probabilities.protected double[]prior_newUpdated state prior belief.-
Fields inherited from class org.ptolemy.machineLearning.hsmm.HSMMParameterEstimator
_D, _D0, _dPriors0, _durationPriors, _etaDimension, _likelihoodHistory, _maxDuration, clusterAssignments, D_new, durationEstimates, durationPriorEstimates, durationProbabilities, maxStateDuration, priorDurationDistribution
-
Fields inherited from class org.ptolemy.machineLearning.hmm.ParameterEstimator
_A0, _likelihood, _likelihoodThreshold, _nIterations, _nStates, _obsDimension, _observations, _priorIn, _priors, _randomize, _transitionMatrix, A0, input, likelihood, likelihoodOut, likelihoodThreshold, maxIterations, newEstimates, nStates, priorDistribution, priorEstimates, randomizeGuessVectors, transitionMatrix
-
Fields inherited from class ptolemy.actor.TypedAtomicActor
_typesValid
-
Fields inherited from class ptolemy.actor.AtomicActor
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
-
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
-
Fields inherited from interface ptolemy.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
-
-
Constructor Summary
Constructors Constructor Description HSMMMultinomialEstimator(CompositeEntity container, java.lang.String name)Construct an actor with the given container and name.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean_checkForConvergence(int iterations)Check whether the gradient-descent algorithm has converged.protected void_initializeEMParameters()Initialize parameters used in ExpectationMaximization here.protected void_iterateEM()One step EM iteration.protected void_updateEstimates()Update parameter estimates.voidattributeChanged(Attribute attribute)React to a change in an attribute.java.lang.Objectclone(Workspace workspace)Clone the actor into the specified workspace.protected doubledurationProbability(int y, int hiddenState)Return the duration probability of duration y at hidden state.protected doubleemissionProbability(double[] y, int hiddenState)Computes the emission probability.voidfire()Do nothing.-
Methods inherited from class org.ptolemy.machineLearning.hsmm.HSMMParameterEstimator
_EMParameterEstimation, _initializeArrays, HSMMAlphaBetaRecursion, preinitialize
-
Methods inherited from class org.ptolemy.machineLearning.hmm.ParameterEstimator
HMMAlphaBetaRecursion
-
Methods inherited from class ptolemy.actor.TypedAtomicActor
_containedTypeConstraints, _customTypeConstraints, _defaultTypeConstraints, _fireAt, _fireAt, attributeTypeChanged, clone, isBackwardTypeInferenceEnabled, newPort, typeConstraintList, typeConstraints
-
Methods inherited from class ptolemy.actor.AtomicActor
_actorFiring, _actorFiring, _declareDelayDependency, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, initialize, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, prefire, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup
-
Methods inherited from class ptolemy.kernel.ComponentEntity
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
-
Methods inherited from class ptolemy.kernel.Entity
_addPort, _description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
-
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
-
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeDeleted, attributeList, attributeList, decorators, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface ptolemy.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
-
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
-
Methods inherited from interface ptolemy.actor.Executable
isFireFunctional, isStrict, iterate, postfire, prefire, stop, stopFire, terminate
-
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, initialize, removeInitializable, wrapup
-
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
-
-
-
-
Field Detail
-
emissionEstimates
public TypedIOPort emissionEstimates
An output that defines a probability mass estimate of the multinomial observation probabilities.
-
observationProbabilities
public Parameter observationProbabilities
An input guess array that defines a probability mass, defining the multinomial observation probabilities.
-
observationDimension
public Parameter observationDimension
Dimension of each observation array.
-
nCategories
public Parameter nCategories
Number of categories in the multinomial distribution.
-
clusters
protected int[] clusters
Inferred cluster assignments.
-
_B
protected double[][] _B
Emission distributions Bij = P(Yt=j | qt = i).
-
_nCategories
protected int[] _nCategories
Number of categories.
-
prior_new
protected double[] prior_new
Updated state prior belief.
-
-
Constructor Detail
-
HSMMMultinomialEstimator
public HSMMMultinomialEstimator(CompositeEntity container, java.lang.String name) throws NameDuplicationException, IllegalActionException
Construct an actor with the given container and name.- Parameters:
container- The container.name- The name of this actor- Throws:
IllegalActionException- If the actor cannot be contained by the proposed container.NameDuplicationException- If the container already has an actor with this name.
-
-
Method Detail
-
attributeChanged
public void attributeChanged(Attribute attribute) throws IllegalActionException
Description copied from class:NamedObjReact to a change in an attribute. This method is called by a contained attribute when its value changes. In this base class, the method does nothing. In derived classes, this method may throw an exception, indicating that the new attribute value is invalid. It is up to the caller to restore the attribute to a valid value if an exception is thrown.- Overrides:
attributeChangedin classHSMMParameterEstimator- Parameters:
attribute- The attribute that changed.- Throws:
IllegalActionException- If the change is not acceptable to this container (not thrown in this base class).
-
clone
public java.lang.Object clone(Workspace workspace) throws java.lang.CloneNotSupportedException
Description copied from class:TypedAtomicActorClone the actor into the specified workspace.- Overrides:
clonein classHSMMParameterEstimator- Parameters:
workspace- The workspace for the new object.- Returns:
- A new actor.
- Throws:
java.lang.CloneNotSupportedException- If a derived class contains an attribute that cannot be cloned.- See Also:
NamedObj.exportMoML(Writer, int, String),NamedObj.setDeferringChangeRequests(boolean)
-
fire
public void fire() throws IllegalActionExceptionDescription copied from class:AtomicActorDo nothing. Derived classes override this method to define their primary run-time action.- Specified by:
firein interfaceExecutable- Overrides:
firein classHSMMParameterEstimator- Throws:
IllegalActionException- Not thrown in this base class.
-
emissionProbability
protected double emissionProbability(double[] y, int hiddenState)Description copied from class:ParameterEstimatorComputes the emission probability. Implemented by the child class.- Specified by:
emissionProbabilityin classHSMMParameterEstimator- Parameters:
y- input observationhiddenState- index of hidden state- Returns:
- P(Y=y | X=hiddenState)
-
_checkForConvergence
protected boolean _checkForConvergence(int iterations)
Description copied from class:ParameterEstimatorCheck whether the gradient-descent algorithm has converged.- Specified by:
_checkForConvergencein classHSMMParameterEstimator- Parameters:
iterations- Current iteration index- Returns:
- boolean indicating whether algorithm has converged
-
_initializeEMParameters
protected void _initializeEMParameters()
Description copied from class:ParameterEstimatorInitialize parameters used in ExpectationMaximization here.- Specified by:
_initializeEMParametersin classHSMMParameterEstimator
-
_iterateEM
protected void _iterateEM()
Description copied from class:ParameterEstimatorOne step EM iteration.- Specified by:
_iterateEMin classHSMMParameterEstimator
-
_updateEstimates
protected void _updateEstimates()
Description copied from class:ParameterEstimatorUpdate parameter estimates.- Specified by:
_updateEstimatesin classHSMMParameterEstimator
-
durationProbability
protected double durationProbability(int y, int hiddenState)Description copied from class:HSMMParameterEstimatorReturn the duration probability of duration y at hidden state.- Specified by:
durationProbabilityin classHSMMParameterEstimator- Parameters:
y- The duration indexhiddenState- The hidden state index- Returns:
- p(y|hiddenState)
-
-