Class ICA
- All Implemented Interfaces:
Serializable
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. To measure non-Gaussianity, FastICA relies on a non-quadratic nonlinear function f(u), its first derivative g(u), and its second derivative g2(u).
A simple application of ICA is the cocktail party problem, where the underlying speech signals are separated from a sample data consisting of people talking simultaneously in a room. Usually the problem is simplified by assuming no time delays or echoes.
An important note to consider is that if N sources are present, at least N observations (e.g. microphones if the observed signal is audio) are needed to recover the original signals.
References
- Aapo Hyvärinen: Fast and robust fixed-point algorithms for independent component analysis, 1999
- Aapo Hyvärinen, Erkki Oja: Independent component analysis: Algorithms and applications, 2000
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionfinal double[][]
The independent components (row-wise). -
Method Summary
Modifier and TypeMethodDescriptionstatic ICA
fit
(double[][] data, int p) Fits independent component analysis.static ICA
fit
(double[][] data, int p, Properties params) Fits independent component analysis.static ICA
fit
(double[][] data, int p, DifferentiableFunction contrast, double tol, int maxIter) Fits independent component analysis.
-
Field Details
-
components
public final double[][] componentsThe independent components (row-wise).
-
-
Method Details
-
fit
Fits independent component analysis.- Parameters:
data
- training data. 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.p
- the number of independent components.- Returns:
- the model.
-
fit
Fits independent component analysis.- Parameters:
data
- training data. 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.p
- the number of independent components.params
- the hyper-parameters.- Returns:
- the model.
-
fit
public static ICA fit(double[][] data, int p, DifferentiableFunction contrast, double tol, int maxIter) Fits independent component analysis.- Parameters:
data
- training data.p
- the number of independent components.contrast
- the contrast function which is capable of separating or extracting independent sources from a linear mixture. It must be a non-quadratic non-linear function that has second-order derivative.tol
- the tolerance of convergence test.maxIter
- the maximum number of iterations.- Returns:
- the model.
-