Class LearningFactorFunctionFactory
java.lang.Object
org.apache.commons.math3.ml.neuralnet.sofm.LearningFactorFunctionFactory
Factory for creating instances of
LearningFactorFunction
.- Since:
- 3.3
-
Method Summary
Modifier and TypeMethodDescriptionstatic LearningFactorFunction
exponentialDecay
(double initValue, double valueAtNumCall, long numCall) Creates an exponential decayfunction
.static LearningFactorFunction
quasiSigmoidDecay
(double initValue, double slope, long numCall) Creates an sigmoid-likeLearningFactorFunction function
.
-
Method Details
-
exponentialDecay
public static LearningFactorFunction exponentialDecay(double initValue, double valueAtNumCall, long numCall) Creates an exponential decayfunction
. It will computea e-x / b
, wherex
is the (integer) independent variable anda = initValue
b = -numCall / ln(valueAtNumCall / initValue)
- Parameters:
initValue
- Initial value, i.e.value(0)
.valueAtNumCall
- Value of the function atnumCall
.numCall
- Argument for which the function returnsvalueAtNumCall
.- Returns:
- the learning factor function.
- Throws:
OutOfRangeException
- ifinitValue <= 0
orinitValue > 1
.NotStrictlyPositiveException
- ifvalueAtNumCall <= 0
.NumberIsTooLargeException
- ifvalueAtNumCall >= initValue
.NotStrictlyPositiveException
- ifnumCall <= 0
.
-
quasiSigmoidDecay
public static LearningFactorFunction quasiSigmoidDecay(double initValue, double slope, long numCall) Creates an sigmoid-likeLearningFactorFunction function
. The functionf
will have the following properties:f(0) = initValue
numCall
is the inflexion pointslope = f'(numCall)
- Parameters:
initValue
- Initial value, i.e.value(0)
.slope
- Value of the function derivative atnumCall
.numCall
- Inflexion point.- Returns:
- the learning factor function.
- Throws:
OutOfRangeException
- ifinitValue <= 0
orinitValue > 1
.NumberIsTooLargeException
- ifslope >= 0
.NotStrictlyPositiveException
- ifnumCall <= 0
.
-