org.encog.neural.networks.training.propagation.manhattan
Class ManhattanPropagation
java.lang.Object
org.encog.neural.networks.training.BasicTraining
org.encog.neural.networks.training.propagation.Propagation
org.encog.neural.networks.training.propagation.manhattan.ManhattanPropagation
- All Implemented Interfaces:
- LearningRate, Train
public class ManhattanPropagation
- extends Propagation
- implements LearningRate
One problem that the backpropagation technique has is that the magnitude of
the partial derivative may be calculated too large or too small. The
Manhattan update algorithm attempts to solve this by using the partial
derivative to only indicate the sign of the update to the weight matrix. The
actual amount added or subtracted from the weight matrix is obtained from a
simple constant. This constant must be adjusted based on the type of neural
network being trained. In general, start with a higher constant and decrease
it as needed.
The Manhattan update algorithm can be thought of as a simplified version of
the resilient algorithm. The resilient algorithm uses more complex techniques
to determine the update value.
- Author:
- jheaton
| Methods inherited from class org.encog.neural.networks.training.propagation.Propagation |
canContinue, finishTraining, getCurrentFlatNetwork, getFlatTraining, getNetwork, getNumThreads, getProfile, isValidResume, iteration, iteration, pause, resume, setFlatTraining, setNumThreads |
| Methods inherited from class org.encog.neural.networks.training.BasicTraining |
addStrategy, getCloud, getError, getIteration, getStrategies, getTraining, isTrainingDone, postIteration, preIteration, setCloud, setError, setIteration, setTraining |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ManhattanPropagation
public ManhattanPropagation(BasicNetwork network,
NeuralDataSet training,
double learnRate)
- Construct a Manhattan propagation training object. Use the CPU to train.
- Parameters:
network - The network to train.training - The training data to use.learnRate - The learning rate.
ManhattanPropagation
public ManhattanPropagation(BasicNetwork network,
NeuralDataSet training,
OpenCLTrainingProfile profile,
double learnRate)
- Construct a Manhattan propagation training object.
- Parameters:
network - The network to train.training - The training data to use.learnRate - The learning rate.profile - The OpenCL profile to use, null for CPU.
getLearningRate
public double getLearningRate()
- Specified by:
getLearningRate in interface LearningRate
- Returns:
- The learning rate that was specified in the constructor.
setLearningRate
public void setLearningRate(double rate)
- Set the learning rate.
- Specified by:
setLearningRate in interface LearningRate
- Parameters:
rate - The new learning rate.
Copyright © 2011. All Rights Reserved.