I have a blind source separation problem that matches the form of "isolating conversations in a crowded room" and have been looking into ICA as an option. Basically, a sensor array will have overlap in its readings that need to be factored out. However, I need to be able to do this in an online learning context where the solution is based on the aggregated Time Series data to date. I was wondering if ICA is generally an appropriate solution or if I am approaching this correctly. Any suggestions on direction would be appreciated.

I am not entirely sure of the terminology I should be using so please bear with me.


Online versions of ICA do exist. ICA is appropriate if its assumptions are met: Sources must be non-Gaussian. Measurements must be linear combinations of sources. The mixing coefficients relating sources to measurements must not change over time (but some ICA variants claim to handle nonstationary/time-varying mixtures). The number of sources must not exceed the number of sensors. ICA assumes they're equal, but often returns reasonable results when the number of sources is fewer than the number of sensors. Reducing the dimensionality with PCA prior to ICA may also help in this situation (and can also be performed online).

  • $\begingroup$ Thanks for the response. Are there any particular papers or implementations you might suggest? $\endgroup$ – Jason K. Aug 31 '17 at 14:26
  • $\begingroup$ I've always used ICA in batch mode, not online, so I can't make any recommendations there. Different ICA variants can produce noticeably different results, so it's worth trying a couple to find one that works well for your problem. I don't think many ready-to-use implementations are available for online ICA, but papers are easy to find. Hyvärinen and Oja have some good review papers about ICA in general (not the online case). $\endgroup$ – user20160 Sep 1 '17 at 4:43

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.