The following algorithms and software packages have been transmitted to ICA-Central.
Contributed by Daniel Schobben .
The file(s) are available at this URL (Programming language: Matlab 5 ).
Comments/quotes from the authors:
A description and demo of the BSS algorithm is found here.
EXAMPLE.txt shows how to call the Matlab function.
Some test data is included.
Contributed by Aapo Hyvarinen .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
The FastICA software package implements the fixed-point algorithm for
ICA. Main features: 1) computationally very efficient algorithm 2)
graphical user interface 3) one-by-one estimation of the independent
components (optionally) 4) estimation of both sub- and supergaussian
independent components.
Contributed by Jim Stone .
The file(s) are available at this URL (Programming language: Matlab 5.2 ).
Comments/quotes from the authors:
Excerpt From the README file (edited by JFC).
[...]
This program implements algorithms presented in a tehnical report,
"Regularisation Using Spatiotemporal Independence and Predictability",
(JV Stone and J Porrill, Computational Neuroscience Technical Report
number 1, Psychology Department, Sheffield University), available from
http://www.shef.ac.uk/~pc1jvs.
[... ] The program is set up to process image sequences (e.g. fMRI
data), but could be adapted for other data. The program can be run in
several modes:
Spatial ICA: This decomposes an image sequence into a set of spatially
independent images and a corresponding set of dual temporal signals
(see cite Mck).
Temporal ICA: This decomposes an image sequence into a set of
temporally independent time courses and a corresponding set of dual
spatial images.
Spatiotemporal ICA: This decomposes an image sequence into a set of
spatial images and a corresponding set of time courses such that
signals in both sets are maximally independent.
Weak Model ICA: This regularises solutions found by ICA. The form of
weak model used here assumes that underlying sources signals or their
dual signals vary smoothly over time. This can be shown to improve the
nature of solutions found by ICA.
[...]
Contributed by Arie Yeredor .
The file(s) are available at this URL (Programming language: Matlab 5 ).
Comments/quotes from the authors:
An iterative alternating-directions type algorithm (named "AC-DC") for the
approximate joint diagonalization of a set of matrices. The diagonalizing
matrix is a general (not necessarily orthogonal) matrix, and the
diagonalization is optimized in the direct Least-Squares sense. Two different
routines are provided: one for the case of Hermitian target matrices and one
for the case of symmetric matrices (the distinction is only for the
complex-valued case). Also included is an optional initialization function for
providing an intelligent initial guess to the AC-DC algorithm in the Hermitian
case.
Updated on Jun. 20, 2002 : no longer restricted to Hermitian matrices.
Contributed by Jean-Francois Cardoso .
The file(s) are available at this URL (Programming language: Plain C, Matlab and a Matlab interface to C ).
Comments/quotes from the authors:
JADE and SHIBBS are two cumulant-based batch algorithms for source separation.
They are described in the paper `High-order contrasts for independent component
analysis, Neural Computation' 11(1):157--192, 1999' available at
ftp://tsi.enst.fr/pub/jfc/Papers/neuralcomp_revised_2pps.ps
JADE has proven itself successful in many applications but I have less
experience with SHIBBS whose current implementation may require some
tuning.
Both algorithms use algebraic ideas to optimize a 4th-order measure of
independence under the whiteness constraint. This approach makes them
`parameter-free'. The SHIBBS algorithm is supposed to lower the
memory requirements of JADE (it scales as N^3 rather than N^4 for JADE)
This package contains source code in C and in Matlab as well as a Matlab
interface to the C code. Very minor adjustments (read: deletions) may be
needed to compile the C code if Matlab is not present.
The C code is *very naive* because this is basically my first C
program: feedback is welcome. This is distributed under the GPL.
Contributed by Jan Eriksson .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
The package provides the Matlab (5.x) functions needed for the use of the
Pearson-ICA algorithm as described in
Karvanen, J.,Eriksson, J., and Koivunen, V.:
"Pearson System Based Method for Blind Separation",
Proceedings of Second International Workshop on
Independent Component Analysis and Blind Signal Separation,
Helsinki 2000, pp. 585--590
The algorithm is proposed to solve the standard noiseless linear
ICA problem, i.e. the ICA model is Y=AS, where the number of sources
s_i is equal to the number of observations y_i.
Contributed by Jan Eriksson .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
The package provides the Matlab (5.x) functions needed for the use of the
EGLD-ICA algorithm as described in
Eriksson, J., Karvanen, J., and Koivunen, V.:
"Source Distribution Adaptive Maximum Likelihood Estimation of ICA Model",
Proceedings of Second International Workshop on
Independent Component Analysis and Blind Signal Separation,
Helsinki 2000, pp. 227--232
The algorithm is proposed to solve the standard noiseless linear
ICA problem, i.e. the ICA model is Y=AS, where the number of sources
s_i is equal to the number of observations y_i.
Contributed by Toshinao Akuzawa .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
factorized Newton's method (= nested Newton's method)
to minimize sum of squared 4-th order cross cumulants
between components (with some weight)
(*) Prewhitening is not required.
(*) 2nd order statistics are completely ignored.
[advantages]
(1) Robust under gaussian noises.
It is not necessary to estimate the noise variance
** since this is pure fourth-order-cumulant-based method**.
(2) Globally stable even if the number of sources
does not equal the number of observation channels.
(3) Convergence is quite fast. Practical also in case
where the number of observation channels are quite large.
[target]
When M > (2N+1-(8N+1)^(1/2))/2
(M is # of sources and N is # of observation channels)
factor analysis(FA) is unavailable.
Our method is useful when this inequality holds.
Otherwise, use FA based methods instead of our method.
Contributed by Nicholaos Sidiropoulos and Rasmus Bro .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
The PARAFAC model is a so-called trilinear model and has extensive
applications in signal processing and communications. It is useful
e.g. in deterministic joint azimuth elevation, signal, and array
response estimation, ESPRIT subspace fitting problems, blind
separation of DS-CDMA.
Contributed by Cédric Févotte, Rémi Gribonval, Emmanuel Vincent .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
bss_eval is a collection of routines for performance measurement of
source separation algorithms for multiplicative noisy mixtures. We
propose several measures of distortion that take into account the gain
indeterminacies of BSS algorithms. The total distortion includes
interference from the other sources as well as noise and algorithmic
artifacts, and we define performance criteria that measure separately
these contributions. The criteria are valid even in the case of
correlated sources.
This work is part of the french CNRS-GdR ISIS funded workgroup
"Resources for audio signal separation":
http://www.ircam.fr/anasyn/ISIS/index.html.en
Contributed by Cédric Févotte .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
TFBSS performs blind separation of (over)determined multiplicative
mixtures of non-stationary real-valued sources.
TFBSS is based on the joint-diagonalization of whitened and
noise-compensated Spatial Time-Frequency Distribution (STFD) matrices
of the observations, corresponding to single auto-terms positions.
Contributed by Russ Lambert .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
Here are tools needed for computation of eigenvalues of multipath
matrices, the condition of multipath matrices and many applications
with time and frequency domain tools for blind separation.
The FIR matrix approach is important for convolutive matrices since it
updates the entire convolutive inverse matrix as one math entity (no
need to sort for permuted frequencies when you are done). It is like
the marriage of the blind equalization FIR filter world with the
matrix processing of the geophysical processing world and the matrix
stuff we do in source separation. Actually this toolbox is also
useful for geophysical stuff like is done at the Jon Claerbout group
at Stanford.
Documentation is in pdf document that documents the functions and a
provides an introduction with examples.
I tried to put everything together in a package reminiscent of David
Donohos excellent wavelet toolbox
http://www-stat.stanford.edu/~wavelab/
or Steve Schreiers excellent delta-sigma converter toolbox.
Contributed by Shiro Ikeda .
The file(s) are available at this URL (Programming language: C and Matlab ).
Comments/quotes from the authors:
We have developed ICA in time-frequency domain (Murata, Ikeda and
Ziehe, Neurocomputing, 2001). This is a rather old work, and I don't
know how many of you are interested in, but I still receive e-mails
which, in most cases, ask for codes.
We put the codes on the web, so please download them in case you are
interested in.
Contributed by Arnaud Delorme .
The file(s) are available at this URL (Programming language: Matlab and C ).
Comments/quotes from the authors:
This growing toolbox provides an extensive open source Matlab
environment for exploratory and routine signal processing and
visualization of electrophysiological data. It includes Scott Makeig's
Matlab runica implmentation of extended infomax ICA by Bell &
Sejnowski and Te-Won Lee, as well as a translation of runica into C by
Sigurt Enghoff. An extensive web tutorial and reference paper is also
available: Delorme & Makeig (2004), J. Neurosci Meth, 134(1), 9-21.
icalist users and others are invited to write and distribute simple
Matlab plug-in functions making their interoperable Matlab functions
appear in the EEGLAB GUI menu.
Contributed by Juan José Murillo Fuentes .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
OGWE is a computationally optimized fourth-order based ICA/BSS
algorithm for the instantaneous case. It uses the SICA algorithm, a
quite similar method to the ME-ICA by Comon (1994) with lower
complexity. Besides it does not have the limitation in the number of
sources the JADE suffers from. Other contrast may be also minimized
with this algorithm: AML, AEML, EML, MaSSFOC, ML, MK, SKSE, ...
For any further information you may contact me.
http://viento.us.es/~murillo
Contributed by Harald Stoegbauer .
The file(s) are available at this URL (Programming language: C and Matlab ).
Comments/quotes from the authors:
MILCA is an Independent Component Analysis (ICA)-algorithm which uses
an accurate Mutual Information (MI) estimator to find the least
dependent components under a linear transformation. The MI estimator
is data efficient, adaptive and has minimal bias.
The direct access to the dependency between the components can be used
not only as a contrast function to find the most independent
components but also in performance tests, reliability tests and for
cluster analysis (when the signals are not independent). We provide
here algorithms for performing ICA (or rather LCA) and these tests.
Furthermore, we extended all these approaches to use additional time
structure information which is often contained in physical data.
Contributed by Pierre Comon .
The file(s) are available at this URL (Programming language: Matlab 5.x, C ).
Comments/quotes from the authors:
The following 3 packages can be downloaded all together with the file IcaComonMatlab.tar.gz:
1# Closed-form block Source separation codes maximizing the contrast
(2,4), the sum of squares of fourth-order marginal cumulants for real
data and mixtures in presence of unknown noise. References: Vail'89,
Chamrousse'91, Eurasip Signal Processing'94.
2# Closed-form block Source separation codes maximizing the contrast
(1,4), the sum of fourth-order marginal cumulants, when sources have a
kurtosis of given constant sign. References: ICASSP'97, SPAWC'97,
ICA'99
3# Codes for identifying a complex mixture of 3 sources received on 2
sensors. References: SPIE'98, IEEE TSP'04
Contributed by Erik G. Learned-Miller .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
My ICA algorithm, RADICAL, has been described in the Journal of
Machine Learning Research, Volume 4, 2003, under the article "ICA
Using Spacings Estimates of Entropy". After whitening, our algorithm
minimizes the sum of the entropies of the mixture marginals under
rotations. It is relatively fast for a non-parametric method. It
outperforms many of the parametric methods (FastICA, JADE) and also
methods like Bach and Jordan's kernel ICA. Both a two-dimensional
version and an N-dimensional version are provided.
Contributed by Rajkishore Prasad, .
The file(s) are available at this URL (Programming language: MATLAB ).
Comments/quotes from the authors:
This is fixed-point frequency domain ICA algorithm for the separation
of convolutive mixture of speech. The proposed algorithms is based on
statistical modeling of time-series of speech spectral components by
exponential power distribution and its application in the fixed-point
algorithm proposed by Aapo Hyvarinen. This GUI can be used to capt ure
speech signal with two element linear microphone array for separation
by fixed-point frequency domain ICA
Contributed by Paul D. O'Grady .
The file(s) are available at this URL (Programming language: C Matlab ).
Comments/quotes from the authors:
Soft-LOST (Line Orientation Separation Technique) identifies line
orientations within a scatter plot using an EM procedure, where the
E-step calculates posterior probabilities assigning data points to
lines and M-step repositions the lines to match the points assigned to
them. This method, combined with a transformation into a sparse domain
and an L1-norm optimisation, constitutes a blind source separation
algorithm for the under-determined case.
Paul D. O'Grady and Barak A. Pearlmutter: "Soft-LOST: EM on a mixture
of oriented lines", In Fifth International Conference on Independent
Component Analysis, LNCS 3195, pages 430--436, Granada, Spain,
Sept. 22--24 2004. Springer-Verlag.
Contributed by Pierre Jallon .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
This toolbox provides scripts able to perform the separation of
convolutive mixtures of cyclostationary source signals. The algorithm
is based on a deflation approach.
More information about how to use the toolbox and some examples are
avaible on the website:
http://www-syscom.univ-mlv.fr/~jallon/toolbox.php
Contributed by Francis Bach .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
The kernel-ica package is a Matlab program that implements the Kernel
ICA algorithm for linear independent component analysis (ICA). The
Kernel ICA algorithm is based on the minimization of a contrast
function based on kernel ideas.
Contributed by Francis Bach .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
The tca package is a Matlab program that implements the tree-dependent
component analysis (TCA) algorithms that extends the independent
component analysis (ICA), 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. In addition, the TCA algorithm can be specialized to
provide a principled way of finding clusters in ICA, where components
in the same cluster are dependent, but independent from components in
other clusters.
Contributed by Zbynek Koldovsky .
The file(s) are available at this URL (Programming language: Matlab ).
Comments/quotes from the authors:
We have derived an improved version of the FastICA algorithm which is
asymptotically efficient, i.e., its accuracy given by the residual
error variance attains the Cramerr-Rao lower bound. The error is thus
as small as possible. The algorithm is taylored to achieve the
efficiency when the probability distribution of the independent signal
components belongs to the class of generalized Gaussian distributions.
Nevertheless, this can be enhanced for other distributions via any
kind of extension of adaptive choice of nonlinearity used. We name the
algorithm Efficient FastICA (EFICA). The algorithm has improved
stability (global convergence properties) and the computational
complexity is only slightly higher than that of the original symmetric
FastICA.
Contributed by Xi-Lin Li .
The file(s) are available at this URL (Programming language: Matlab/octave ).
Comments/quotes from the authors:
An iterative non-orthogonal Fast Approximate Joint Diagonalization
(FAJD) algorithm for the approximate joint diagonalization (AJD) of a
set of matrices. The diagonalization is optimized in a novel
non-least-squares sense. As compared with the existing least-squares
criteria based non-orthogonal AJD algorithms, the new algorithm can
not only avoid the trivial solution but also the undesired
ill-conditioned solutions.
FAJD is easy to use and imposes very few restrictions on the target
matrices except that they should be squared. We put the codes on the
web, so please download them in case you are interested in. Feedback
is welcome.
Contributed by Arthur Gretton .
The file(s) are available at this URL (Programming language: Matlab, with some C routines ).
Comments/quotes from the authors:
Kernel ICA uses kernel measures of statistical independence to
separate linearly mixed sources. We have made this process much faster
by using an approximate Newton-like method on the special orthogonal
group to perform the optimisation.