Package org.apache.commons.math3.ml.neuralnet.sofm

# 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 Summary

Modifier and Type
Method
Description
`static LearningFactorFunction`
`exponentialDecay(double initValue, double valueAtNumCall, long numCall)`
Creates an exponential decay `function`.
`static LearningFactorFunction`
`quasiSigmoidDecay(double initValue, double slope, long numCall)`
Creates an sigmoid-like `LearningFactorFunction function`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## 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`.