The kernel-ica package is a Matlab
program that implements the Kernel ICA algorithm for independent component
analysis (ICA).

The Kernel ICA algorithm is
based on the minimization of a contrast function based on kernel ideas. A
contrast function measures the statistical dependence between components, thus
when applied to estimated components and minimized over possible demixing
matrices, components that are as independent as possible are found. For more
information, please read the following paper:

Version 1.2 is a an implementation of the Kernel ICA algorithm presented in
the previous paper. It performs linear ICA with the same number of sources and
mixtures. It can be efficiently utilized for any number of components and any
number of training samples. Precise instructions on how to use the package are
included in the archive file.

Note that some routines (incomplete Cholesky decomposition) are implemented
in C and for optimal performance should be precompiled at the matlab prompt
(using the mex command ) the first time you use the package.
Instructions are included in the distribution. If you don't want to
use the C code, the package will still work, though slower.

The kernel-ica package is Copyright (c) 2002 by Francis Bach. If you have
any questions or comments regarding this package, or if you want to report any
bugs, please send an e-mail to fbach@cs.berkeley.edu.
The current version 1.2 has been released on July 17th, 2003. Check this web
page regularly for newer versions.

The package now also
includes a Matlab function to sample from the distributions used in the JMLR
paper.

-Under-complete ICA: it is straightforward to generalize our
algorithm to the under-complete ICA case (i.e. more sources than observed
mixtures).

-Multidimensional ICA:
our framework applies equally well to univariate and multivariate components. A
new algorithm to look for clusters in ICA can be found here. It uses the tree-dependent component analysis
framework, as described in the following paper:

-Tree-dependent component analysis (TCA): we generalized the ICA
framework to richer graphical models (see here for a
tutorial on graphical models), where instead of looking for a linear transform
that makes the data components independent, we are looking for components that
can be best fitted in a tree structured graphical model. The TCA model can be
applied in any situation where the data can be assumed to have been transformed
by an unknown linear transformation. A Matlab implementation can be found here and the algorithms are
described in the following paper:

-Synthetic examples: in our paper we provide simulation results on a
wide range of synthetic distributions. In the simple 2 sources / 2 mixtures
setting, we illustrate the performance of our algorithms and in particular its
robustness to source distributions, "Gaussianity" and outliers, with
a significant improvement over currently available algorithms. Detailed results
can be found in the paper.

-Audio blind source separation: we also ran some experiments with
real sounds that were artificially mixed. They can be found here.