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

java.lang.Object
  extended by org.encog.ml.train.BasicTraining
      extended by org.encog.neural.networks.training.propagation.Propagation
          extended by 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
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, lastError, network
 
Constructor Summary
ScaledConjugateGradient(ContainsFlat network, MLDataSet training)
          Construct a training class.
 
Method Summary
 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.