Class LearningFactorFunctionFactory

java.lang.Object
org.apache.commons.math3.ml.neuralnet.sofm.LearningFactorFunctionFactory

public class LearningFactorFunctionFactory extends Object
Factory for creating instances of LearningFactorFunction.
Since:
3.3
  • Method Details

    • exponentialDecay

      public static LearningFactorFunction exponentialDecay(double initValue, double valueAtNumCall, long numCall)
      Creates an exponential decay function. It will compute a e-x / b, where x is the (integer) independent variable and
      • a = initValue
      • b = -numCall / ln(valueAtNumCall / initValue)
      Parameters:
      initValue - Initial value, i.e. value(0).
      valueAtNumCall - Value of the function at numCall.
      numCall - Argument for which the function returns valueAtNumCall.
      Returns:
      the learning factor function.
      Throws:
      OutOfRangeException - if initValue <= 0 or initValue > 1.
      NotStrictlyPositiveException - if valueAtNumCall <= 0.
      NumberIsTooLargeException - if valueAtNumCall >= initValue.
      NotStrictlyPositiveException - if numCall <= 0.
    • quasiSigmoidDecay

      public static LearningFactorFunction quasiSigmoidDecay(double initValue, double slope, long numCall)
      Creates an sigmoid-like LearningFactorFunction function. The function f will have the following properties:
      • f(0) = initValue
      • numCall is the inflexion point
      • slope = f'(numCall)
      Parameters:
      initValue - Initial value, i.e. value(0).
      slope - Value of the function derivative at numCall.
      numCall - Inflexion point.
      Returns:
      the learning factor function.
      Throws:
      OutOfRangeException - if initValue <= 0 or initValue > 1.
      NumberIsTooLargeException - if slope >= 0.
      NotStrictlyPositiveException - if numCall <= 0.