FastICA


FastICA is an efficient and popular algorithm for independent component analysis invented by Aapo Hyvärinen at Helsinki University of Technology. Like most ICA algorithms, FastICA seeks an orthogonal rotation of prewhitened data, through a fixed-point iteration scheme, that maximizes a measure of non-Gaussianity of the rotated components. Non-gaussianity serves as a proxy for statistical independence, which is a very strong condition and requires infinite data to verify. FastICA can also be alternatively derived as an approximative Newton iteration.

Algorithm

''Prewhitening'' the data

Let the denote the input data matrix, the number of columns corresponding with the number of samples of mixed signals and the number of rows corresponding with the number of independent source signals. The input data matrix must be prewhitened, or centered and whitened, before applying the FastICA algorithm to it.


Single component extraction

The iterative algorithm finds the direction for the weight vector
that maximizes a measure of non-Gaussianity of the projection,
with denoting a prewhitened data matrix as described above.
Note that is a column vector. To measure non-Gaussianity, FastICA relies on a nonquadratic nonlinear function, its first derivative, and its second derivative. Hyvärinen states that the functions

are useful for general purposes, while

may be highly robust. The steps for extracting the weight vector for single component in FastICA are the following:
  1. Randomize the initial weight vector
  2. Let, where means averaging over all column-vectors of matrix
  3. Let
  4. If not converged, go back to 2

    Multiple component extraction

The single unit iterative algorithm estimates only one weight vector which extracts a single component. Estimating additional components that are mutually "independent" requires repeating the algorithm to obtain linearly independent projection vectors - note that the notion of independence here refers to maximizing non-Gaussianity in the estimated components. Hyvärinen provides several ways of extracting multiple components with the simplest being the following. Here, is a column vector of 1's of dimension.
Algorithm FastICA
for p in 1 to C:
Random vector of length N
while changes

'

output
output
'

Noisy extraction

It is remarkable to note that Fast ICA is extremely robust to additive noise in the mixed signal. Consider the following noisy model.

Upon Prewhitening , the impact of the additive noise on extraction is severely reduced. The Reconstruction ICA estimate of , say for two cases of high and low noise content is shown in the figure which clearly underscore the robustness of Fast ICA for additive noise.