C# Class Accord.Neuro.Learning.BackPropagationLearning

Back propagation learning algorithm.

The class implements back propagation learning algorithm, which is widely used for training multi-layer neural networks with continuous activation functions.

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 BackPropagationLearning teacher = new BackPropagationLearning( 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
Mostrar archivo Open project: accord-net/framework Class Usage Examples

Public Methods

Method Description
BackPropagationLearning ( ActivationNetwork network ) : System

Initializes a new instance of the BackPropagationLearning 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.

CalculateUpdates ( double input ) : void

Calculate weights updates.

UpdateNetwork ( ) : void

Update network's weights.

Method Details

BackPropagationLearning() public method

Initializes a new instance of the BackPropagationLearning class.
public BackPropagationLearning ( 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