Skip to content
Several maximum likelihood ICA algorithms, including Picard
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Faster ICA by preconditioning with Hessian approximations

This repository hosts several second order algorithms to solve maximum likelihood ICA.

The algorithms can be found in ml_ica/algorithms. They are:

These algorithms have all been rewritten in Python. They call the same gradient, Hessian and likelihood functions, which makes time comparison meaningful.

The algorithms come with a benchmark at ml_ica/example/ This script runs each algorithm on the same real dataset (fMRI or EEG) and times it.


Clone the repository:

$ git clone
$ cd faster-ica
$ pip install -e .

The easiest way to get started is to run the benchmark:

$ python examples/


These are the dependencies to run the algorithms:

  • numpy (>=1.8)
  • matplotlib (>=1.3)
  • numexpr (>= 2.0)
  • scipy (>=0.19)


If you use this code in your project, please cite this paper:

Pierre Ablin, Jean-Francois Cardoso, and Alexandre Gramfort
Faster independent component analysis by preconditioning with Hessian approximations
Arxiv preprint, 2017
You can’t perform that action at this time.