package func.nn.activation; /** * The tanh sigmoid function * @author Andrew Guillory gtg008g@mail.gatech.edu * @version 1.0 */ public class HyperbolicTangentSigmoid extends DifferentiableActivationFunction{ /** * @see nn.function.DifferentiableActivationFunction#derivative(double) */ public double derivative(double value) { double tanhvalue = value(value); return 1 - tanhvalue * tanhvalue; } /** * @see nn.function.ActivationFunction#activation(double) */ public double value(double value) { double e2x = Math.exp(2 * value); if (e2x == Double.POSITIVE_INFINITY) { return 1; } else { return (e2x - 1) / (e2x + 1); } } }