org.neuroph.nnet.learning
Class ResilientPropagation

java.lang.Object
  extended by org.neuroph.core.learning.LearningRule
      extended by org.neuroph.core.learning.IterativeLearning
          extended by org.neuroph.core.learning.SupervisedLearning
              extended by org.neuroph.nnet.learning.LMS
                  extended by org.neuroph.nnet.learning.SigmoidDeltaRule
                      extended by org.neuroph.nnet.learning.BackPropagation
                          extended by org.neuroph.nnet.learning.ResilientPropagation
All Implemented Interfaces:
Serializable

public class ResilientPropagation
extends BackPropagation

Resilient Propagation learning rule used for Multi Layer Perceptron neural networks. Its one of the most efficent learning rules for this type of networks, and it does not require setting of learning rule parameter.

Author:
Borislav Markov, Zoran Sevarac
See Also:
Serialized Form

Nested Class Summary
 class ResilientPropagation.ResilientWeightTrainingtData
           
 
Field Summary
 
Fields inherited from class org.neuroph.core.learning.SupervisedLearning
maxError, outputError, previousEpochError, totalNetworkError, totalSquaredErrorSum
 
Fields inherited from class org.neuroph.core.learning.IterativeLearning
currentIteration, iterationsLimited, learningRate, maxIterations
 
Fields inherited from class org.neuroph.core.learning.LearningRule
listeners, neuralNetwork
 
Constructor Summary
ResilientPropagation()
           
 
Method Summary
protected  void doBatchWeightsUpdate()
          This method updates network weights in batch mode - use accumulated weights change stored in Weight.deltaWeight It is executed after each learning epoch, only if learning is done in batch mode.
 double getDecreaseFactor()
           
 double getIncreaseFactor()
           
 double getInitialDelta()
           
 double getMaxDelta()
           
 double getMinDelta()
           
protected  void onStart()
          This method is executed when learning starts, before the first epoch.
protected  void resillientWeightUpdate(Weight weight)
          Weight update by done by ResilientPropagation learning rule Executed at the end of epoch (in batch mode)
 void setDecreaseFactor(double decreaseFactor)
           
 void setIncreaseFactor(double increaseFactor)
           
 void setInitialDelta(double initialDelta)
           
 void setMaxDelta(double maxDelta)
           
 void setMinDelta(double minDelta)
           
protected  void updateNeuronWeights(Neuron neuron)
          Calculate and sum gradients for each neuron's weight, the actual weight update is done in batch mode
 
Methods inherited from class org.neuroph.nnet.learning.BackPropagation
calculateErrorAndUpdateHiddenNeurons, calculateHiddenNeuronError, updateNetworkWeights
 
Methods inherited from class org.neuroph.nnet.learning.SigmoidDeltaRule
calculateErrorAndUpdateOutputNeurons
 
Methods inherited from class org.neuroph.core.learning.SupervisedLearning
addToSquaredErrorSum, afterEpoch, beforeEpoch, calculateOutputError, doLearningEpoch, errorChangeStalled, getMaxError, getMinErrorChange, getMinErrorChangeIterationsCount, getMinErrorChangeIterationsLimit, getPreviousEpochError, getTotalNetworkError, hasReachedStopCondition, isInBatchMode, learn, learn, learnPattern, setBatchMode, setMaxError, setMinErrorChange, setMinErrorChangeIterationsLimit
 
Methods inherited from class org.neuroph.core.learning.IterativeLearning
doOneLearningIteration, getCurrentIteration, getLearningRate, isPausedLearning, learn, learn, pause, resume, setLearningRate, setMaxIterations
 
Methods inherited from class org.neuroph.core.learning.LearningRule
addListener, fireLearningEvent, getNeuralNetwork, getTrainingSet, isStopped, removeListener, setNeuralNetwork, setTrainingSet, stopLearning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResilientPropagation

public ResilientPropagation()
Method Detail

onStart

protected void onStart()
Description copied from class: IterativeLearning
This method is executed when learning starts, before the first epoch. Used for initialisation.

Overrides:
onStart in class SupervisedLearning

updateNeuronWeights

protected void updateNeuronWeights(Neuron neuron)
Calculate and sum gradients for each neuron's weight, the actual weight update is done in batch mode

Overrides:
updateNeuronWeights in class LMS
Parameters:
neuron - neuron to update weights
See Also:
resillientWeightUpdate(org.neuroph.core.Weight)

doBatchWeightsUpdate

protected void doBatchWeightsUpdate()
Description copied from class: SupervisedLearning
This method updates network weights in batch mode - use accumulated weights change stored in Weight.deltaWeight It is executed after each learning epoch, only if learning is done in batch mode.

Overrides:
doBatchWeightsUpdate in class SupervisedLearning
See Also:
SupervisedLearning#doLearningEpoch(org.neuroph.core.learning.TrainingSet)

resillientWeightUpdate

protected void resillientWeightUpdate(Weight weight)
Weight update by done by ResilientPropagation learning rule Executed at the end of epoch (in batch mode)

Parameters:
weight -

getDecreaseFactor

public double getDecreaseFactor()

setDecreaseFactor

public void setDecreaseFactor(double decreaseFactor)

getIncreaseFactor

public double getIncreaseFactor()

setIncreaseFactor

public void setIncreaseFactor(double increaseFactor)

getInitialDelta

public double getInitialDelta()

setInitialDelta

public void setInitialDelta(double initialDelta)

getMaxDelta

public double getMaxDelta()

setMaxDelta

public void setMaxDelta(double maxDelta)

getMinDelta

public double getMinDelta()

setMinDelta

public void setMinDelta(double minDelta)


Copyright © 2012. All Rights Reserved.