Available kernels

When constructing a :class:dcgpy.kernel_set_double, :class:dcgpy.kernel_set_gdual_double `` or :class:``dcgpy.kernel_set_gdual_vdouble we can use the following names to add the corresponding kernels to the set.


Kernel name

Function

Definition

Basic operations

“sum”

addition

\(\sum_i x_i\)

“diff”

subtraction

\(x_1 - \sum_{i=2} x_i\)

“mul”

multiplication

\(\prod_i x_i\)

“div”

division

\(x_1 / \prod_{i=2} x_i\)

“pdiv”

protected division

\(x_1 / \prod_{i=2} x_i\) or 1 if NaN

Unary non linearities (ignoring all inputs after the first one)

“sin”

sine

\(\sin x_1\)

“cos”

cosine

\(\cos x_1\)

“log”

natural logarithm

\(\log x_1\)

“exp”

exponential

\(e^{x_1}\)

“gaussian”

gaussian

\(e^{-x_1^2}\)

“sqrt”

square root

\(\sqrt{x_1}\)

“psqrt”

protected square root

\(\sqrt{|x_1|}\)

Non linearities suitable also for dCGPANN

“sig”

sigmoid

\(\frac{1}{1 + e^{-\sum_i x_i}}\)

“tanh”

hyperbolic tangent

\(\tanh \left(\sum_i x_i\right)\)

“ReLu”

rectified linear unit

\(\sum_i x_i\) if positive, 0 otherwise

“ELU”

exp linear unit

\(\sum_i x_i\) if positive, \(e^{\sum_i x_i} - 1\) otherwise

“ISRU”

Inverse square root unit

\(\frac{\sum_i x_i}{\sqrt{1 + \left(\sum_i x_i\right)^2}}\)

“sum”

addition

\(\sum_i x_i\)