20 #ifndef SUPERNN_ACTIVATION_HPP
21 #define SUPERNN_ACTIVATION_HPP
41 return 1 / (1 + std::exp(-2 * neuron.
steep * neuron.
net));
47 return 2 * neuron.
steep * out * (1 - out);
59 return 2 / (1 + std::exp(-2 * neuron.
steep * neuron.
net)) - 1.0;
65 return neuron.
steep * (1 - (out * out));
77 double t = neuron.
net * neuron.
steep;
78 return (t / 2) / (1 + std::abs(t)) + 0.5;
83 double t = 1 + fabs(neuron.
net * neuron.
steep);
84 return neuron.
steep / (2 * t * t);
96 double t = neuron.
net * neuron.
steep;
97 return t / (1 + std::abs(t));
102 double t = 1 + fabs(neuron.
net * neuron.
steep);
103 return neuron.
steep / (t * t);
115 double a = neuron.
net * neuron.
steep;
116 return std::exp(-a * a);
133 double a = neuron.
net * neuron.
steep;
134 return 2 * exp(-a * a) - 1;
168 return neuron.
net >= 0 ? 1 : -1;
Neuron, that can contain connections to neurons in the next layers.
Activation function dispatcher.
Elliot sigmoid-like function.
Sigmoid symmetric activation function.
static double activation(const Neuron &neuron)
Elliot sigmoid-like function (Symmetric).
static double derivative(const Neuron &neuron)
static double derivative(const Neuron &neuron)
thrown when training with a non-diferentiable activation function
static double activation(const Neuron &neuron)
double steep
Activation function steepness.
static double activation(const Neuron &neuron)
Calls the actual activation function.
Sign function (net >= 0 ? 1 : -1).
Linear activation function.
double out
Last output of the neuron ( g(net) )
Sigmoid-like activation function.
static double activation(const Neuron &neuron)
static double derivative(const Neuron &neuron)
Gaussian symmetric function.
static double derivative(const Neuron &neuron)
Calls the actual derivative of the activation function, used to calculate the error gradient...
static double activation(const Neuron &neuron)
static double activation(const Neuron &neuron)
Gaussian symmetric function.
static double derivative(const Neuron &neuron)
ActFuncType act_func
Used activation function.
Sigmoid activation function.
static double activation(const Neuron &neuron)
The exception can be identified by the type() method.
Sigmoid symmetric function.
Activation functions were not implemented in an OO way due to performance.
static double derivative(const Neuron &neuron)
double net
Last sum of the neuron inputs.
static double activation(const Neuron &neuron)
Sigmoid-like activation function, symmetric version.
static double derivative(const Neuron &neuron)
Gaussian activation function.
static double derivative(const Neuron &neuron)
static double activation(const Neuron &neuron)
static double derivative(const Neuron &neuron)
double limit(double min, double max, double value)
Returns the value limited to a range.