ica#

diffsptk.ICA#

alias of IndependentComponentAnalysis

class diffsptk.IndependentComponentAnalysis(order, n_comp, func='logcosh', n_iter=100, eps=0.0001, batch_size=None, seed=None, verbose=False)[source]#

Independent component analysis module. Note that the forward method is not differentiable.

Parameters:
orderint >= 0

Order of vector, \(M\).

n_compint >= 1

Number of components, \(K\).

func[‘logcosh’, ‘gauss’]

The nonquadratic function used in the approximation of negentropy.

n_iterint >= 1

Number of iterations.

epsfloat >= 0

Convergence threshold.

batch_sizeint >= 1 or None

Batch size.

seedint or None

Random seed.

verbosebool

If True, show progress bar.

References

[1]

A. Hyvarinen and E. Oja, “Independent component analysis: algorithms and applications,” Neural Networks, vol. 13, pp. 411-430, 2000.

forward(x)[source]#

Estimate separating matrix.

Parameters:
xTensor [shape=(T, M+1)] or DataLoader

Input vectors or dataloder yielding input vectors.

Returns:
WTensor [shape=(K, K)]

Separating matrix.

transform(x)[source]#

Separate input vectors into independent components.

Parameters:
xTensor [shape=(…, M+1)]

Input vectors.

Returns:
outTensor [shape=(…, K)]

Estimated independent components.

See also

pca