Wikipedia / FastICA
Wikipedia / 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
must be prewhitened, or centered and whitened, before applying the FastICA algorithm to it.
, that is,
has an expected value.
Whitening the data requires a linear transformation-dimensional identity matrix, that is,
A common method for whitening is by performing an eigenvalue decomposition on the covariance matrix is the diagonal matrix of eigenvalues. The whitened data matrix is defined thus by
Single component extraction
denoting a prewhitened is a column vector. To measure non-Gaussianity, FastICA relies on a nonquadratic nonlinear function. Hyvärinen states that the functions are useful for general purposes, while may be highly robust. for single component in FastICA are the following:
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.
Algorithm FastICA
Input: Number of desired components
Input:
Output: onto independent component.
Output: dimensions.
for p in 1 to C:
\mathbf{w_p} \leftarrow Random vector of length N
while\mathbf{w_p} changes
\mathbf{w_p} \leftarrow \frac{1}{M}\mathbf{X} g(\mathbf{w_p}^T \mathbf{X})^T - \frac{1}{M}g'(\mathbf{w_p}^T\mathbf{X})\mathbf{1_{M}} \mathbf{w_p}
\mathbf{w_p} \leftarrow \mathbf{w_p} - \sum_{j = 1}^{p-1} (\mathbf{w_p}^T\mathbf{w_j})\mathbf{w_j}
\mathbf{w_p} \leftarrow \frac{\mathbf{w_p}}{\|\mathbf{w_p}\|}
output \mathbf{W} \leftarrow \begin{bmatrix} \mathbf{w_1}, \dots, \mathbf{w_C} \end{bmatrix}
output
\mathbf{S} \leftarrow \mathbf{W^T}\mathbf{X}See also
References
External links