C# Class AForge.Neuro.Learning.ResilientBackpropagationLearning

Resilient Backpropagation learning algorithm.

This class implements the resilient backpropagation (RProp) learning algorithm. The RProp learning algorithm is one of the fastest learning algorithms for feed-forward learning networks which use only first-order information.

Sample usage (training network to calculate XOR function):

// initialize input and output values double[][] input = new double[4][] { new double[] {0, 0}, new double[] {0, 1}, new double[] {1, 0}, new double[] {1, 1} }; double[][] output = new double[4][] { new double[] {0}, new double[] {1}, new double[] {1}, new double[] {0} }; // create neural network ActivationNetwork network = new ActivationNetwork( SigmoidFunction( 2 ), 2, // two inputs in the network 2, // two neurons in the first layer 1 ); // one neuron in the second layer // create teacher ResilientBackpropagationLearning teacher = new ResilientBackpropagationLearning( network ); // loop while ( !needToStop ) { // run epoch of learning procedure double error = teacher.RunEpoch( input, output ); // check error value to see if we need to stop // ... }
Inheritance: ISupervisedLearning
Show file Open project: holisticware-admin/MonoVersal.AForgeNET Class Usage Examples

Public Methods

Method Description
ResilientBackpropagationLearning ( ActivationNetwork network ) : System

Initializes a new instance of the ResilientBackpropagationLearning class.

Run ( double input, double output ) : double

Runs learning iteration.

Runs one learning iteration and updates neuron's weights.

RunEpoch ( double input, double output ) : double

Runs learning epoch.

The method runs one learning epoch, by calling Run method for each vector provided in the input array.

Private Methods

Method Description
CalculateError ( double desiredOutput ) : double

Calculates error values for all neurons of the network.

CalculateGradient ( double input ) : void

Calculate weights updates

ResetGradient ( ) : void

Resets current weight and threshold derivatives.

ResetUpdates ( double rate ) : void

Resets the current update steps using the given learning rate.

UpdateNetwork ( ) : void

Update network's weights.

Method Details

ResilientBackpropagationLearning() public method

Initializes a new instance of the ResilientBackpropagationLearning class.
public ResilientBackpropagationLearning ( ActivationNetwork network ) : System
network ActivationNetwork Network to teach.
return System

Run() public method

Runs learning iteration.

Runs one learning iteration and updates neuron's weights.

public Run ( double input, double output ) : double
input double Input vector.
output double Desired output vector.
return double

RunEpoch() public method

Runs learning epoch.

The method runs one learning epoch, by calling Run method for each vector provided in the input array.

public RunEpoch ( double input, double output ) : double
input double Array of input vectors.
output double Array of output vectors.
return double