Print

Print


Dear FSL users,

I am trying to understand the algorithms behind the ICA components better and I'm trying to make a simple simulation in Matlab (for my own understanding without further use).
First I implemented the principal component analysis (from the technical report TR01MJ2 of Jenkinson and Beckmann). Then I implemented the Infomax algorithm with the formulas explained by McKeown et al (1998). The simulation is able to reconstruct my simulated components quite well. 

The thing I don't quite get, is why ICA is not completely reproducible. When I look into the algorithm, nothing can be changed in the PCA step (this is concordant with my finding since when I run ICA multiple times on the same dataset, if finds at least the same number of components). The unmixing matrix is estimated, also with a fixed optimization algorithm. So in the end, the results (at least in my simulation) are the same for every run.

I haven't been able yet to implement the FastICA algorithm, but so far, I haven't found estimating steps in this algorithm either.

I also found in literature and in textbooks that it might be a good idea to run ICA multiple times and check for the ICs that keep on occurring. Is something like this already implemented in FSL? What is your opinion about it?

Thank you very much.
Debby