# nonlinearities

##### Set of Nonlinearities for Adaptive Deflation-based FastICA Method

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

.

- Keywords
- utilities

##### Usage

`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\) |

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`

.

##### 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.

##### See Also

##### Examples

```
# NOT RUN {
# 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")
# }
```

*Documentation reproduced from package fICA, version 1.1-0, License: GPL (>= 2)*