ICA algorithms available via ICA Central

ICA algorithms available via ICA Central.


The following algorithms and software packages have been transmitted to ICA-Central.

  1. BSS algorithm for audio (includes simultaneous echo cancellation too!)

    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.

  2. The FastICA software package

    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.

  3. ICA for image analysis, including spatial, temporal and spatiotemporal ICA.

    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.

    [...]

  4. Algorithm for non-orthogonal approximate joint diagonalization

    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.

  5. Two batch cumulant-based ICA algorithms: JADE and SHIBBS

    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.


  6. Batch ICA algorithm for wide class of sources (sub-,super-Gaussian, skewed,...)

    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.

  7. Batch ICA algorithm for wide class of sources (sub-,super-Gaussian, skewed,...)

    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.

  8. factorized Newton's method for ICA without prewhitening

    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.

  9. Trilinear PARAFAC modeling for source separation etc.

    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.

  10. bss_eval: Utilities for performance analysis

    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

  11. TFBSS: algorithm for blind separation of non-stationary sources.

    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.

  12. Matlab toolbox with tools for convolutive matrices and application to source separation

    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.

  13. ICA for convolutive speeach mixture

    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.

  14. The EEGLab toolbox

    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.

  15. Off-line linear ICA algorithm, instantaneous case

    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

  16. Accurate ICA algorithm & reliability tests

    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.

  17. Batch ICA algorithms for more or fewer sensors than sources (1989, 1994, 1998)

    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

  18. Non-parametric ICA algorithm in MATLAB. Makes no parametric assumptions about data (e.g. kurtosis).

    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.

  19. Fixed-point frequency domain ICA algorithm for the separation of convolutive mixture of speech

    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

  20. Soft-LOST: algorithm for under-determined instantaneous mixtures.

    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.

  21. BSS of convolutive mixtures of cyclostationary source signals algorithm

    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

  22. Kernel ICA

    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.

  23. TCA - Tree dependent component analysis

    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.

  24. Efficient version of algorithm FastICA

    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.

  25. Non-orthogonal Fast Approximate Joint Diagonalization (FAJD)

    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.

  26. Fast Kernel ICA using an approximate Newton method

    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.