This package contains Matlab code for learning and inference in nonparametric graphical models on trees, as described in SonGreGue10 and SonGreBicLowGue11.

The software performs both learning and inference on graphical models. In the learning step, the edge potentials are learned nonparametrically from the training data. In the inference step, the belief at a particular target node is computed on the basis of messages passed from observed leaf nodes.

This software is designed for tutorial purposes, and is not written for computational efficiency. A fast implementation for use in applications and benchmarks is provided within Graphlab.

There are three separate zipfiles, dealing respectively with exact inference on trees, loopy BP, and the incomplete Cholesky approach for speeding computation (demonstrated on a simple tree example). For the tree case, the main code is treeInference.m, which uses pruneTree.m and rbf_dot.m. A simple demo file is provided by genTree.m. For the loopy case, the main code is loopyInference.m, which again uses rbf_dot.m, and has associated demo file genLoopy.m. Finally, for the Cholesky case, the main code is choleskyMessageDemo.m, which uses KcholTensor.m and rbf_dot.m (note that in this tutorial, the Cholesky code is slow since it has not been vectorized).


Code for exact inference on trees may be downloaded here.

Code for approximate inference on loopy graphs may be downloaded here.

The incomplete Cholesky tutorial code may be downloaded here.


[SonGreGue10] L. Song, A. Gretton, C. Guestrin: Nonparametric Tree Graphical Models. AISTATS 2010. download
[SonGreBicLowGue11] L. Song, A. Gretton, D. Bickson, Y. Low, C. Guestrin: Kernel Belief Propagation. AISTATS 2011. download