public BackPropagationLearning(ActivationNetwork network)
{
this.network = network;
// create error and deltas arrays
neuronErrors = new double[network.Layers.Length][];
weightsUpdates = new double[network.Layers.Length][][];
thresholdsUpdates = new double[network.Layers.Length][];
// initialize errors and deltas arrays for each layer
for (int i = 0; i < network.Layers.Length; i++)
{
Layer layer = network.Layers[i];
neuronErrors[i] = new double[layer.Neurons.Length];
weightsUpdates[i] = new double[layer.Neurons.Length][];
thresholdsUpdates[i] = new double[layer.Neurons.Length];
// for each neuron
for (int j = 0; j < weightsUpdates[i].Length; j++)
{
weightsUpdates[i][j] = new double[layer.InputsCount];
}
}
}