Class LearningFactorFunctionFactory


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

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