OpenViBE Documentation 3.6.0
Independent Component Analysis (FastICA)

Summary

  • Plugin name : Independent Component Analysis (FastICA)
  • Version : 0.2
  • Author : Guillaume Gibert / Jeff B.
  • Company : INSERM / Independent
  • Short description : Computes fast independent component analysis
  • Documentation template generation date : Jan 24 2024

Description

This box attempts to find a decomposition of the signal to its
independent components. The approach is based on the FastICA algorithm.

Inputs

1. Input signal

The input signal.

  • Type identifier : Signal (0x5ba36127, 0x195feae1)

Outputs

1. Output signal

The decomposed signal.

  • Type identifier : Signal (0x5ba36127, 0x195feae1)

Settings

1. Number of components to extract

Number of independent components to extract (equals PCA dimension reduction)

  • Type identifier : Integer (0x007deef9, 0x2f3e95c6)
  • Default value : [ 4 ]

2. Operating mode

Which decomposition is desired?

  • Type identifier : Operating mode (0x43a71032, 0x4af96b9f)
  • Default value : [ ICA ]

3. Sample size (seconds) for estimation

How many seconds of sample to collect to estimate the ICA model?

  • Type identifier : Integer (0x007deef9, 0x2f3e95c6)
  • Default value : [ 120 ]

4. Decomposition type

Decomposition type. Deflation is an approach where each component is
estimated separately in turns. Symmetric estimation optimizes all
components at once.

  • Type identifier : Decomposition type (0x7b876033, 0x13590b93)
  • Default value : [ Symmetric ]

5. Max number of reps for the ICA convergence

Maximum number of iterations

  • Type identifier : Integer (0x007deef9, 0x2f3e95c6)
  • Default value : [ 100000 ]

6. Fine tuning

Enable fine tuning?

  • Type identifier : Boolean (0x2cdb2f0b, 0x12f231ea)
  • Default value : [ true ]

7. Max number of reps for the fine tuning

Maximum number of iterations for the fine tuning

  • Type identifier : Integer (0x007deef9, 0x2f3e95c6)
  • Default value : [ 100 ]

8. Used nonlinearity

Used nonlinearity type

  • Type identifier : Nonlinearity (0x4313472f, 0x37fd5961)
  • Default value : [ Tanh ]

9. Internal Mu parameter for FastICA

Mu parameter

  • Type identifier : Float (0x512a166f, 0x5c3ef83f)
  • Default value : [ 1.0 ]

10. Internal Epsilon parameter for FastICA

Epsilon parameter

  • Type identifier : Float (0x512a166f, 0x5c3ef83f)
  • Default value : [ 0.0001 ]

11. Spatial filter filename

Filename to save the estimated decomposition matrix W to

  • Type identifier : Filename (0x330306dd, 0x74a95f98)
  • Default value : [ ]

12. Save the spatial filter/demixing matrix

Should the matrix W be saved to a file?

  • Type identifier : Boolean (0x2cdb2f0b, 0x12f231ea)
  • Default value : [ false ]

Examples

One use-case of ICA is to attempt to separate the signal of interest from
nuisance artifacts. For example, supposing that ICA makes a meaningful decomposition
of your EEG signal, you will see artifacts such as those from eyeblinks more
clearly segregated to specific output channels instead of contaminating
all of the channels.

Miscellaneous

This plugin applies the FastICA algorithm to the input signal. The box can store the
estimated decomposition matrix W to a file. This file can then be used later
in the spatial filter box to apply the decomposition on fresh data.

The box also outputs the decomposed signal, but the decomposition is active only
after the model has been estimated (after the specified number of samples have been collected).
If you wish to decompose the whole data, then you can first train the ICA model, save the matrix,
and then separately apply it to the original data with the spatial filter.

The FastICA algorithm is described in

A. Hyvarinen. "Fast and Robust Fixed-Point Algorithms for Independent Component Analysis", IEEE Transactions on Neural Networks 10(3):626-634, 1999.

The implementation used by the box is from the ITPP toolkit.