org.encog.neural.networks.training.propagation.scg

## Class ScaledConjugateGradient

- java.lang.Object
- - org.encog.ml.train.BasicTraining
  - - org.encog.neural.networks.training.propagation.Propagation
    - - org.encog.neural.networks.training.propagation.scg.ScaledConjugateGradient

- All Implemented Interfaces:
    MLTrain, BatchSize, Train, MultiThreadable

      public class ScaledConjugateGradient
      extends Propagation

  This is a training class that makes use of scaled conjugate gradient methods. It is a very fast and efficient training algorithm.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static double` | `FIRST_LAMBDA` The starting value for lambda.
    `protected static double` | `FIRST_SIGMA` The starting value for sigma.

    - ### Fields inherited from class org.encog.neural.networks.training.propagation.Propagation

      `gradients, network`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ScaledConjugateGradient(ContainsFlat network, MLDataSet training)` Construct a training class.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `calculateGradients()` Calculate the gradients.
    `boolean` | `canContinue()` This training type does not support training continue.
    `void` | `initOthers()` Unused.
    `void` | `iteration()` Perform one iteration.
    `TrainingContinuation` | `pause()` This training type does not support training continue.
    `void` | `resume(TrainingContinuation state)` This training type does not support training continue.
    `double` | `updateWeight(double[] gradients, double[] lastGradient, int index)` Update the weights.

    - ### Methods inherited from class org.encog.neural.networks.training.propagation.Propagation

      `finishTraining, fixFlatSpot, getBatchSize, getCurrentFlatNetwork, getLastGradient, getMethod, getThreadCount, iteration, learn, learnLimited, report, rollIteration, setBatchSize, setErrorFunction, setThreadCount`

    - ### Methods inherited from class org.encog.ml.train.BasicTraining

      `addStrategy, getError, getImplementationType, getIteration, getStrategies, getTraining, isTrainingDone, postIteration, preIteration, setError, setIteration, setTraining`

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

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

    - ### Methods inherited from interface org.encog.ml.train.MLTrain

      `addStrategy, getError, getImplementationType, getIteration, getStrategies, getTraining, isTrainingDone, setError, setIteration`

- - ### Field Detail

    - #### FIRST_SIGMA

          protected static final double FIRST_SIGMA

      The starting value for sigma.
      See Also:
        Constant Field Values

    - #### FIRST_LAMBDA

          protected static final double FIRST_LAMBDA

      The starting value for lambda.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ScaledConjugateGradient

          public ScaledConjugateGradient(ContainsFlat network,
                                 MLDataSet training)

      Construct a training class.
      Parameters:
        `network` - The network to train.
        `training` - The training data.

  - ### Method Detail

    - #### canContinue

          public boolean canContinue()

      This training type does not support training continue.
      Returns:
        Always returns false.

    - #### pause

          public TrainingContinuation pause()

      This training type does not support training continue.
      Returns:
        Always returns null.

    - #### resume

          public void resume(TrainingContinuation state)

      This training type does not support training continue.
      Parameters:
        `state` - Not used.

    - #### calculateGradients

          public void calculateGradients()

      Calculate the gradients. They are normalized as well.
      Overrides:
        `calculateGradients` in class `Propagation`

    - #### iteration

          public void iteration()

      Perform one iteration.
      Specified by:
        `iteration` in interface `MLTrain`
      Overrides:
        `iteration` in class `Propagation`

    - #### updateWeight

          public double updateWeight(double[] gradients,
                            double[] lastGradient,
                            int index)

      Update the weights.
      Specified by:
        `updateWeight` in class `Propagation`
      Parameters:
        `gradients` - The current gradients.
        `lastGradient` - The last gradients.
        `index` - The weight index being updated.
      Returns:
        The new weight value.

    - #### initOthers

          public void initOthers()

      Unused.
      Specified by:
        `initOthers` in class `Propagation`

Copyright © 2014. All Rights Reserved.