Software packages
 
The purpose of these software packages is to provide reproducible research. This allows others to effortlessly verify my results, and makes it possible for colleagues to modify or extend my methods without first having to implement the whole system from scratch.
 
 
Matlab code for LiNGAM with latent variables. Not yet a complete data-analysis tool, but implements all of the functions and experiments described in:

P. O. Hoyer, S. Shimizu, and A. J. Kerminen
Estimation of linear, non-gaussian causal models in the presence of confounding latent variables Proc. Third European Workshop on Probabilistic Graphical Models (PGM'06), pp. 155-162, Prague, Czech Republic, 2006.
LiNGAM
Matlab/Octave code for performing LiNGAM. The code can be downloaded from the LiNGAM homepage. The method is described in the papers:

S. Shimizu, P. O. Hoyer, A. Hyvärinen, and A. J. Kerminen
A linear non-gaussian acyclic model for causal discovery Journal of Machine Learning Research  7:2003-2030, 2006.

S. Shimizu, A. Hyvärinen, Y. Kano, and P. O. Hoyer
Discovery of non-gaussian linear causal models using ICA Proceedings of the 21st Conference on Uncertainty in Artificial Intelligence (UAI-2005), pp. 526-533, 2005.
nmfpack (v1.1, August 2006): tar.gz | zip
Matlab code for performing NMF and its various extensions, in particular NMF with sparseness constraints, and testing the various methods on image data. This method is described in:
P. O. Hoyer. Non-negative Matrix Factorization with sparseness constraints. Journal of Machine Learning Research  5:1457-1469, 2004.
Matlab code for sampling the non-negative ICA posterior. In particular, this is applied to image data, as described in:
P. O. Hoyer and A. Hyvärinen. Interpreting neural response variability as Monte Carlo sampling of the posterior. Advances in Neural Information Processing Systems 15 (NIPS*02), pp. 277-284, MIT Press, 2003.
Matlab package for doing non-negative sparse coding and learning receptive fields from ON/OFF channel data, as described in:
P. O. Hoyer. Non-negative sparse coding. Neural Networks for Signal Processing XII, Martigny, Switzerland, 2002.
P. O. Hoyer. Modeling receptive fields with non-negative sparse coding. Computational Neuroscience: Trends in Research 2003 (Proceedings of CNS*2002).
Code for performing the contour coding experiments, reported in:
P. O. Hoyer and A. Hyvärinen. A Multi-Layer Sparse Coding Network Learns Contour Coding from Natural Images. Vision Research.  42(12):1593-1605, 2002.
Matlab code for learning independent component (ICA), independent subspace (ISA), and topographic components (TICA) from image data. Relates to the papers:
 
A. Hyvärinen, P. O. Hoyer and M. Inki. Topographic Independent Component Analysis. Neural Computation  13(7):1527-1558, 2001.