# nonlinearities: Set of Nonlinearities for Adaptive Deflation-based FastICA... In fICA: Classical, Reloaded and Adaptive FastICA Algorithms

## Description

The default set of nonlinearities with their first derivatives and names used in `adapt_fICA`.

## Usage

 ```1 2 3 4 5 6 7``` ```gf dgf Gf gnames ```

## Details

The set of nonlinearities includes both well-known functions (pow3, tanh and gaus) and the ones suggested in Miettinen et al. (2014).

The object `gf` contains the nonlinearities which are:

 gf[[1]] pow3 x^3 gf[[2]] tanh tanh(x) gf[[3]] gaus exp(-(x)^2/2) gf[[4]] lt0.6 (x+0.6)_-^2 gf[[5]] rt0.6 (x-0.6)_+^2 gf[[6]] bt (x)_+^2-(x)_-^2 gf[[7]] bt0.2 (x-0.2)_+^2-(x+0.2)_-^2 gf[[8]] bt0.4 (x-0.4)_+^2-(x+0.4)_-^2 gf[[9]] bt0.6 (x-0.6)_+^2-(x+0.6)_-^2 gf[[10]] bt0.8 (x-0.8)_+^2-(x+0.8)_-^2 gf[[11]] bt1.0 (x-1.0)_+^2-(x+1.0)_-^2 gf[[12]] bt1.2 (x-1.2)_+^2-(x+1.2)_-^2 gf[[13]] bt1.4 (x-1.4)_+^2-(x+1.4)_-^2 gf[[14]] bt1.6 (x-1.6)_+^2-(x+1.6)_-^2

The objects `dgf`, `Gf` and `gnames` contain the corresponding first derivatives, integrals and names in the same order.

For skew sources lt0.6 and rt0.6 combined are more efficient than the commonly used skew. The rest of the functions are useful for example for sources with multimodal density functions.

The user can easily submit a own set or modify the set suggested here. See the example below and the examples in `adapt_fICA`.

Jari Miettinen

## References

Hyvarinen, A. and Oja, E. (1997), A fast fixed-point algorithm for independent component analysis, Neural Computation, vol. 9, 1483–1492.

Miettinen, J., Nordhausen, K., Oja, H. and Taskinen, S. (2014), Deflation-based FastICA with adaptive choices of nonlinearities, IEEE Transactions on Signal Processing, 62(21), 5716–5724.

 ```1 2 3 4 5 6 7 8 9``` ```# leaving out functions from the default set and adding a new function g <- function(x){x^2} dg <- function(x){2*x} G <- function(x){x^3/3} gf_new <- c(gf[-c(6,8,10)],g) dgf_new <- c(dgf[-c(6,8,10)],dg) Gf_new <- c(Gf[-c(6,8,10)],G) gnames_new <- c(gnames[-c(6,8,10)],"skew") ```