Connectionists: Matlab MEX code for low rank Cholesky updates/downdates

Matthias Seeger mseeger at gmail.com
Tue Jun 19 03:33:47 EDT 2007


Dear colleagues,

I have released some software at

   http://www.kyb.tuebingen.mpg.de/bs/people/seeger/software.html

under "Updating the Cholesky decomposition for simple changes of the system
matrix".

The MEX routines allow you to update/downdate a Cholesky factor after rank-1
changes to the system matrix. This is a core primitive in
most codes for sequential Bayesian inference or variational approximate
inference with continuous variables (SBL(RVM), VB, EP, IVM, SPGP, ...).
"core" means that most of the running time is spent there.
The code is numerically equivalent to LINPACK routines, but faster. It is
certainly way more efficient than Matlab's notorious cholupdate.
Details are in a TR which is linked from there.

Why would you want to use this code?
- (Sparse) Gaussian process inference, like the IVM (Lawrence, Seeger,
Herbrich, NIPS 2001)
- Approximate inference in non-Gaussian linear models (Tipping's RVM;
Girolami's variational; Variational Bayes;
  EP (Seeger, Steinke, Tsuda, AISTATS 2007))
- Kalman Filters, ...
- In fact: every time you are tempted to use the Sherman-Morrison-Woodbury
formula explicitly (just don't!)

BTW: If you have downloaded an earlier version of this code, please do an
update. The new code is much more stable, and much faster.

Finally: If you are more into C++ and do not like to use Matlab anyway: this
code is also part of the LHOTSE toolbox from version 0.13 on
(StMatrix::cholUpdRk1, StMatrix::cholDndRk1, StMatrix::cholUpdExch). LHOTSE
is fairly easy to get into if you know C++, gives you the
"Matlab feeling" without the pains, but I did not get around yet to write a
manual. Obtain it at
   http://www.kyb.tuebingen.mpg.de/bs/people/seeger/lhotse/

Regards,
-- 
Matthias Seeger                                               Tel.:
++49-7071-601583
Max Planck Institute for Biological Cybernetics
http://www.kyb.tuebingen.mpg.de/bs/people/seeger
P.O. Box: 21 69, 72012 Tuebingen, Germany


More information about the Connectionists mailing list