I have seen that FastICA is the only ICA algorithm implemented in many packages. What are the advantages of FastICA compared to other algorithms? What are its disadvantages?


The fastICA algorithm is most widely used method for blind source separation problems, it is computationally efficient and requires less memory over other blind source separation algorithm for example infomax. The other advantage is that independent components can be estimated one by one which again decreases the computational load. The only disadvantage I see is this method can not extract sources properly if the noise is nonuniform and correlated noise vectors. However, its efficiency to date is quite promising.

  • $\begingroup$ Doesn't finding components one by one make it slower compared to a method which finds all components at the same time? $\endgroup$ – Matt Feb 7 '17 at 6:44
  • $\begingroup$ It depends upon the data you are dealing with, for example if your data matrix is too large then its better to divide it into small blocks and each block can be estimated in much faster way than directly applying fastICA on the data without some preprocessing and organization. Multivariate data can also be handled with fastICA utility of multi-component extraction. Finding component one by one does slows the process to some extent however, it gaurantees the better estimate using gradient descent procedure. $\endgroup$ – Vendetta Feb 7 '17 at 9:23
  • $\begingroup$ Is there a set of simulations or a prior work that proves FastICA is much better than other methods, e.g. the ones introduced in the "Independent Component Analysis" book? $\endgroup$ – Matt Feb 7 '17 at 18:30
  • $\begingroup$ I did it long ago dont have a code now, what you can do to test the computation performance is go to ICA central website download the codes for infomax, JADE etc. Make simplest simulations by filling up the zero matrix by ones at specific locations and create sin wave signal. Mix these two together e.g. y= source * wave + random noise (zero mean, unit variance). Pass this data vector y to ICA algorithms and test the computation time, sources and times series recovery. You can include singular value decomposition (SVD) matlab routine for comparison with other algorithms. $\endgroup$ – Vendetta Feb 8 '17 at 7:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.