The topic of my PhD is Independent Component Analysis (ICA).


Picard stands for “Preconditioned ICA for Real Data”. This algorithm quickly solves maximum-likelihood ICA. It is detailed in Faster ICA by preconditioning with Hessian approximations.

Picard-O is an adaptation of Picard which solves the same problem as FastICA, while being much faster on real data. It can also separate super- and sub- Gaussian sources. It is detailed in Faster ICA under orthogonal constraint.

Python code is available online at https://pierreablin.github.io/picard/.


Maximum-likelihood ICA

ICA can be seen as a maximum likelihood estimation problem.  This repository contains the Python translation of four second order algorithms to solve it, including Picard. It comes with a benchmarking script.