pierreablin / faster-ica

Several maximum likelihood ICA algorithms, including Picard

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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/benchmark.py. This script runs each algorithm on the same real dataset (fMRI or EEG) and times it.

Installation

Clone the repository:

$ git clone https://github.com/pierreablin/faster-ica.git
$ cd faster-ica
$ pip install -e .

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

$ python examples/benchmark.py

Dependencies

These are the dependencies to run the algorithms:

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

Cite

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

About

Several maximum likelihood ICA algorithms, including Picard

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Python 100.0%