JahmmViz is the graphical user interface (GUI) of the Jahmm library. The version proposed below is the one provided by the latest release of Jahmm. You can launch it using Java Web Start (a means of downloading a Java application and run it directly without any complex installation process).
Launch JahmmViz v0.2.5 using Java Web Start.
Only run it if you trust it will not be harmful in any way; it would be better to glance over the sources and compile it yourself. The JAR files have been signed using the certificate available here. You can import it using javaws (the Java Web Start front-end, found in the control panel under Microsoft Windows), but you do not have to, since it will be imported automatically if you click on the link above.
Compiling JahmmViz requires Java 1.5.0 (or newer); download it on Sun site and the following libraries:
- Jung (download the jar file), a graph drawing library;
- Apache's collections (download the jar file), a data structure library needed by Jung.
To launch it, add all the jar files to your classpath (or extract them -- jar xf -- in a directory that is included in your classpath), and launch the class be.ac.ulg.montefiore.run.jahmm.apps.JahmmViz:
This screenshot shows JahmmViz in action.
The following is a description of the screenshot's windows:
- Top-right window. It is the main panel.
The top of the window lists the open windows (which depict an HMM, a set of
observation sequences or a state sequence). The lists can be used to edit a
Each main panel button triggers an action:
- Learn Creates a HMM that models a sequence of observations. If the learning fails throwing an exception, it might be because you tried to estimate a gaussian distribution with very few observations (at least n+1 observations are required to estimate the parameters of a multivariate gaussian distribution of dimension n). It means that the HMM is composed of too many states (or that you used few/short observation sequences).
- Create HMM Builds a new HMM. A dialog asks its number of states and the type of observations on which it operates.
- Most likely state sequence Finds a sequence of HMM states that "best match" an observation sequences.
- Sequence probability Computes the probability of an observation sequence for a given HMM.
- Generate sequences Generates a few observation sequences using a HMM.
- Read/Write sequences Reads/Writes a set of observation sequences
from/to file. Examples of such files are given below. When reading:
- If the observations are integers, it is asked to provide an upper bound of the observations read. This upper bound must be strictly greater than all the observations. The memory used increase with this value.
- If the observations are vectors of reals, you will be prompted for the vector's dimension.
- Read/Write HMM Reads/Writes a HMM from/to file.
To select on which HMM, set of observation sequence or state sequence an algorithm operates, simply select it in the main panel's lists. For example, to compute a "most likely state sequence", you need to first select a HMM and a set of observation sequences (and, in the window depicting this set, select exactly one sequence).
- Top-left window This window depict a set of observation sequences. In this case, each observation is a vector (between brackets).
- Small, top window depicts a state sequence. Each number match the a state number.
- Bottom-left window depicts a HMM made of 5 states. The size of the
states (red circles) gives its initial (pi) value; the most likely first
state is thus the top-left one.
To see the information associated to each state (pi
value and Observation Probability Distribution Function), put the cursor a
few seconds on a state; a tooltip will appear. The OPDF syntax for a
discrete OPDF might look like:
OPDF [ 0.1 0.5 0.6 0.7 ]
In this example, the probability of the observation "0" is "0.1", "1" is "0.5", "2" is "0.6", and "3" is "0.7". An example of multivariate gaussian distribution is:
OPDF [ Mean: [ 1. 2. ] ]
Only the mean value of the gaussian distribution is given (not its covariance matrix). In the example above, it is a 2-dimentional vector; its first dimension value is "1" and the second is "2".
- Bottom-right window The information associated to a state. This dialog appears when one right-clicks on a HMM state. It is allowed to modify the initial probability (pi) of this state, the transition probability to the other states and its observation probability distribution function (the screenshot shows, a 3-variate gaussian distribution; its mean vector is shown on the left, its 3x3 covariance matrix on the right).
Three (very simple) observation sequences are provided for testing:
- testInteger.seq: sequences of integer; all the values are smaller than 10.
- testReal.seq: sequences of reals.
- testVector.seq: real vectors sequences of2-dimensional real vectors.
Back to Jahmm homepage