Skip to content
murphyk2 edited this page Jun 9, 2010 · 7 revisions
  1. summary Tutorial on unsupervised learning using pmtk3

Basics

We can create

 an unconditional density model of type 'foo' as follows

The optional arguments '...' depends on the form of the model, and are explained below.

Currently, 'foo' can be one of the following (in alphabetical order)

 * crf2 (Conditional random field with discrete hidde nodes, pairwise potentials)
 * hmm (hidden Markov model, any kind of observation)
 * markov (discrete time, discrete state Markov chain)
 * mrf2 (Markov random field with discrete nodes, pairwise potentials)

Below we describe the methods that each model supports. Note thatnot all models support all methods. Furthermore, this list is currently a specification of what the future interface will look like, rather than a description of the current interface (which can be inferred from the auto-generated documentation). To determine if a given model supports a given method, just type 'help fooMethod' and if Matlab says that 'fooMethod' is undefined, then it is not supported.

The basic operations on an unconditional density model are as follows

For some models, fooEnergy is the same as -fooLogprob, but for those with intractable normalization constants Z (e.g., MRFs), fooEnergy is more efficient.

X is an N*D matrix, as usual. It may have NaN's in it, which means the corresponding entry is missing (hidden). Whether NaN's are supported depends on the particular model and the particular fitting/ inference method you choose; this is controlled by the optional arguments '...' passed to create and/or fit. These optional arguments vary from case to case (see below for details).

All of the above methods are vectorized (conceptually, at least), in the sense that they work on a set of datacases in batch model.

For joint probability models (with more than one variable), it is possible to condition on one set of variables and infer the values of others. We therefore define the following additional methods (datacase is like a single row of X, and may contain NaN's for 'unclamped' variables):

For graphical models (with no explicit latent variables), we define the following additional methods (we assume hidden nodes are discrete):

For models with latent variables, we define the following additional methods:

Clone this wiki locally