- Application of graphical models to some domain.
This could either be your own research problem, or
you could try reproducing results of someone else's paper.
In this case, you may use an existing software package, such
as my
BNT,
Netica,
or other ones listed
here.
- Implement an existing algorithm.
In this case, you are strongly encouraged to implement the code in
such a way as to make it (re)usable by others.
For example, you could write it in Matlab and integrate it with my BNT
toolbox.
- Develop a new algorithm. In this case, you will need to demonstrate (theoretically and/or empirically) why your algorithm is better than other techniques.

In addition to the textbooks handed out in class, you may find the book "Probabilistic Networks and Expert Systems" by Cowell, Dawid, Lauritzen and Spiegelhalter (1999) helpful. I refer to this below as "the Cowell book".

- Will domain-specific code synthesis become a silver bullet?, Buntine, 1998 (see section on "Graphical modeling for complex stochastic systems: the BUGS Project" by Spiegelhalter and Thomas).
- AutoBayes
- Stratego, which buils on top of AutoBayes.

The goal of this project is to empirically compare these methods on some MRF models (using other people's code), and and to make a uniform matlab interface to all the functions (so they can be interchanged in a plug-n-play fashion). To test, you can use an MRF with random parameters, but it would be better to team up with someone who is trying to learn MRF parameters from real data (see below).

I have a vectorized Matlab implementation of loopy BP I can give you. Talya Meltzer give me her C++ code (with a Matlab wrapper) for mean field, loopy BP, generalized BP, Gibbs sampling and Swendsen-Wang, which I've put here. Code for RB-MCMC can be obtained from Firas Hamze or Nando de Freitas. C++ graphcuts code is available (without matlab interface) here.

Some related papers you should read first:

- Comparing the mean field method and belief propagation for approximate inference in MRFs Yair Weiss, 2001.
- Comparison of Graph Cuts with Belief Propagation for Stereo, using Identical MRF Parameters , ICCV 2003. (He has C code available.)
- Tutorial on approximate inference, Frey and Jojic, PAMI 2004

- Generalized Belief Propagation (I have C++ code from Marshall Tappen and Talya Meltzer).
- Gibbs sampling. (BNT contains C code from Bhaskara Marthi for Bayes nets.)
- Swendsen-Wang (I have C++ code from Talya Meltzer).
- Graphcuts (C++ code is available from the URL above).

- labeled training data.
- C++ graphcuts code for approximate inference
- My Matlab CRF code
- Carl Rasmussen's matlab conjugate gradient minimizer (better than using netlab or matlab optimization toolbox)
- Intro to CRFs by Hanna Wallach
- Maxent page, includes code
- Steerable pyramid matlab code, possibly useful set of image features
- Matlab wavelet toolbox, possibly useful set of image features .
- Paper of CRFs for sign detection, J. Weinman, 2004
- Markov Random Field Modeling in Computer Vision, S. Z. Li, 1995. (I have a hardcopy of the 2001 edition.)
- G. Winkler, "Image Analysis, Random Fields, and MCMC Methods", 2nd edition, 2003.
- Markov random fields and images, P. Perez. CWI Quarterly, 11(4):413-437, 1998. Review article.

- Fully Bayesian Image Segmentation -- an Engineering Perspective, Morris et al, 1996.
- A binary tree-structured MRF model for multispectral satellite image segmentation ,2003

- Intro to CRFs by Hanna Wallach
- My Matlab CRF code
- Carl Rasmussen's matlab conjugate gradient minimizer (better than using netlab or matlab optimization toolbox)
- McCallum's C++ Mallet library, which is specifically designed for such NLP tasks.

See also Bodlaender's repository of treewidth problems.

Kevin Murphy Last modified: Tue Sep 14 13:31:38 PDT 2004