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
  Version:
    $Id: LearningFactorFunctionFactory.java 1566092 2014-02-08 18:48:29Z tn $

- - ### Method Summary

    Methods
    Modifier and Type | Method and 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 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`.

Copyright © 2003–2014 The Apache Software Foundation. All rights reserved.