<< Scilab ICA/BSS Toolbox Scilab ICA/BSS Toolbox fastica_gui >>

Scilab ICA/BSS Toolbox >> Scilab ICA/BSS Toolbox > fastica

fastica

Fast Independent Component Analysis

Calling Sequence

[icasig] = fastica(mixedsig); the rows of icasig contain the
estimated independent components.

[icasig, A, W] = fastica(mixedsig); outputs the estimated separating
matrix W and the corresponding mixing matrix A.

[A, W] = fastica(mixedsig); gives only the estimated mixing matrix
A and the separating matrix W.

[whitesig, WM, DWM] = fastica(mixedsig,     'only', 'white')
returns the whitened signals, the whitening matrix
(WM) and the dewhitening matrix (DWM). (See also
WHITENV.) In FastICA the whitening matrix performs
whitening and the reduction of dimension. Dewhitening
matrix is the pseudoinverse of whitening matrix.

[E, D] = fastica(mixedsig, 'only', 'pca')
returns the eigenvector (E) and diagonal
eigenvalue (D) matrices containing the
selected subspaces.

Parameters

Optional Parameters:

======================================================================:

Basic parameters in fixed-point algorithm:

'approach' :

(string) The decorrelation approach used. Can be symmetric ('symm'), i.e. estimate all the independent component in parallel, or deflation ('defl'), i.e. estimate independent component one-by-one like in projection pursuit. Default is 'defl'.

'numOfIC' :

(integer) Number of independent components to be estimated. Default equals the dimension of data.

======================================================================:

Choosing the nonlinearity:

'g' :

(string) Chooses the nonlinearity g used in the fixed-point algorithm. Possible values:

Value of 'g':

Nonlinearity used

'pow3' (default) :

g(u)=u^3

'tanh' :

g(u)=tanh(a1*u)

'gauss :

g(u)=u*exp(-a2*u^2/2)

'skew' :

g(u)=u^2

'finetune' :

(string) Chooses the nonlinearity g used when fine-tuning. In addition to same values as for 'g', the possible value 'finetune' is: 'off' fine-tuning is disabled.

'a1' :

(number) Parameter a1 used when g='tanh'. Default is 1.

'a2' :

(number) Parameter a2 used when g='gaus'. Default is 1.

'mu' :

(number) Step size. Default is 1. If the value of mu is other than 1, then the program will use the stabilized version of the algorithm (see also parameter 'stabilization').

'stabilization' :

(string) Values 'on' or 'off'. Default 'off'. This parameter controls wether the program uses the stabilized version of the algorithm or not. If the stabilization is on, then the value of mu can momentarily be halved if the program senses that the algorithm is stuck between two points (this is called a stroke). Also if there is no convergence before half of the maximum number of iterations has been reached then mu will be halved for the rest of the rounds.

======================================================================:

Controlling convergence:

'epsilon' :

(number) Stopping criterion. Default is 0.0001.

'maxNumIterations' :

(integer) Maximum number of iterations. Default is 1000.

'maxFinetune' :

(integer) Maximum number of iterations in fine-tuning. Default 100.

'sampleSize' :

(number) [0 - 1] Percentage of samples used in one iteration. Samples are chosen in random. Default is 1 (all samples).

'initGuess' :

(matrix) Initial guess for A. Default is random. You can now do a "one more" like this: [ica, A, W] = fastica(mix, 'numOfIC',3); [ica2, A2, W2] = fastica(mix, 'initGuess', A, 'numOfIC', 4);

======================================================================:

--Graphics and text output:

'verbose' :

(string) Either 'on' or 'off'. Default is 'on': report progress of algorithm in text format.

'displayMode' :

(string) Plot running estimates of independent components: 'signals', 'basis', 'filters' or 'off'. Default is 'off'.

'displayInterval' :

Number of iterations between plots. Default is 1 (plot after every iteration).

======================================================================:

--Controlling reduction of dimension and whitening:

alternatively by 'interactivePCA':

'firstEig' :

(integer) This and 'lastEig' specify the range for eigenvalues that are retained, 'firstEig' is the index of largest eigenvalue to be retained. Default is 1.

'lastEig' :

(integer) This is the index of the last (smallest) eigenvalue to be retained. Default equals the dimension of data.

'interactivePCA':

(string) Either 'on' or 'off'. When set 'on', the eigenvalues are shown to the user and the range can be specified interactively. Default is 'off'. Can also be set to 'gui'. Then the user can use the same GUI that's in fastica_gui.

If you already know the eigenvalue decomposition of the covariance matrix, you can avoid computing it again by giving it with the following options:

'pcaE' :

(matrix) Eigenvectors

'pcaD' :

(matrix) Eigenvalues

If you already know the whitened data, you can give it directly to the algorithm using the following options:

'whiteSig' :

(matrix) Whitened signal

'whiteMat' :

(matrix) Whitening matrix

'dewhiteMat' :

(matrix) dewhitening matrix

Performing preprocessing only is possible by the option:

'only' :

(string) Compute only PCA i.e. reduction of dimension ('pca') or only PCA plus whitening ('white'). Default is 'all': do ICA estimation as well. This option changes the output format accordingly.

Description

fastica(mixedsig) estimates the independent components from given multidimensional signals. Each row of matrix mixedsig is one observed signal. fastica uses Hyvarinen's fixed-point algorithm, see http://www.cis.hut.fi/projects/ica/fastica/.

A graphical user interface for fastica can be launched by the command fastica_gui

fastica can be called with numerous optional arguments. Optional arguments are given in parameter pairs, so that first argument is the name of the parameter and the next argument is the value for that parameter. Optional parameter pairs can be given in any order.

If values for all the 'whiteSig', 'whiteSig' and 'dewhiteMat' are supplied, they will be used in computing the ICA. PCA and whitening are not performed. Though 'mixedsig' is not used in the main algorithm it still must be entered - some values are still calculated from it.

Examples

[icasig] = FASTICA (mixedsig, 'approach', 'symm', 'g', 'tanh');
Do ICA with tanh nonlinearity and in parallel (like
maximum likelihood estimation for supergaussian data).

[icasig] = FASTICA (mixedsig, 'lastEig', 10, 'numOfIC', 3);
Reduce dimension to 10, and estimate only 3
independent components.

[icasig] = FASTICA (mixedsig, 'verbose', 'off', 'displayMode', 'off');
Don't output convergence reports and don't plot
independent components.

See also

Authors


Report an issue
<< Scilab ICA/BSS Toolbox Scilab ICA/BSS Toolbox fastica_gui >>