org.encog.neural.networks.training.anneal
Class NeuralSimulatedAnnealing

java.lang.Object
  extended by org.encog.neural.networks.training.BasicTraining
      extended by org.encog.neural.networks.training.anneal.NeuralSimulatedAnnealing
All Implemented Interfaces:
Train

public class NeuralSimulatedAnnealing
extends BasicTraining

This class implements a simulated annealing training algorithm for neural networks. It is based on the generic SimulatedAnnealing class. It is used in the same manner as any other training class that implements the Train interface. There are essentially two ways you can make use of this class. Either way, you will need a score object. The score object tells the simulated annealing algorithm how well suited a neural network is. If you would like to use simulated annealing with a training set you should make use TrainingSetScore class. This score object uses a training set to score your neural network. If you would like to be more abstract, and not use a training set, you can create your own implementation of the CalculateScore method. This class can then score the networks any way that you like.


Field Summary
static double CUT
          The cutoff for random data.
 
Constructor Summary
NeuralSimulatedAnnealing(BasicNetwork network, CalculateScore calculateScore, double startTemp, double stopTemp, int cycles)
          Construct a simulated annleaing trainer for a feedforward neural network.
 
Method Summary
 double[] getArray()
          Get the network as an array of doubles.
 double[] getArrayCopy()
           
 CalculateScore getCalculateScore()
           
 BasicNetwork getNetwork()
          Get the best network from the training.
 void iteration()
          Perform one iteration of simulated annealing.
 void putArray(double[] array)
          Convert an array of doubles to the current best network.
 void randomize()
          Randomize the weights and bias values.
 
Methods inherited from class org.encog.neural.networks.training.BasicTraining
addStrategy, finishTraining, getCloud, getError, getIteration, getStrategies, getTraining, isTrainingDone, iteration, postIteration, preIteration, setCloud, setError, setIteration, setTraining
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CUT

public static final double CUT
The cutoff for random data.

See Also:
Constant Field Values
Constructor Detail

NeuralSimulatedAnnealing

public NeuralSimulatedAnnealing(BasicNetwork network,
                                CalculateScore calculateScore,
                                double startTemp,
                                double stopTemp,
                                int cycles)
Construct a simulated annleaing trainer for a feedforward neural network.

Parameters:
network - The neural network to be trained.
calculateScore - Used to calculate the score for a neural network.
startTemp - The starting temperature.
stopTemp - The ending temperature.
cycles - The number of cycles in a training iteration.
Method Detail

getNetwork

public BasicNetwork getNetwork()
Get the best network from the training.

Returns:
The best network.

iteration

public void iteration()
Perform one iteration of simulated annealing.


getArray

public double[] getArray()
Get the network as an array of doubles.

Returns:
The network as an array of doubles.

getArrayCopy

public double[] getArrayCopy()
Returns:
A copy of the annealing array.

putArray

public void putArray(double[] array)
Convert an array of doubles to the current best network.

Parameters:
array - An array.

randomize

public void randomize()
Randomize the weights and bias values. This function does most of the work of the class. Each call to this class will randomize the data according to the current temperature. The higher the temperature the more randomness.


getCalculateScore

public CalculateScore getCalculateScore()
Returns:
The object used to calculate the score.


Copyright © 2011. All Rights Reserved.