protected override void LearnSample(Entrenamiento trainingSample, int currentIteration, int trainingEpochs) { // No validation here int layerCount = layers.Count; // Set input vector inputLayer.SetInput(trainingSample.InputVector); for (int i = 0; i < layerCount; i++) { layers[i].Run(); } // Set Errors meanSquaredError += (outputLayer as ActivationLayer).SetErrors(trainingSample.OutputVector); // Backpropagate errors for (int i = layerCount; i > 0;) { ActivationLayer layer = layers[--i] as ActivationLayer; if (layer != null) { layer.EvaluateErrors(); } } // Optimize synapse weights and neuron bias values for (int i = 0; i < layerCount; i++) { layers[i].Learn(currentIteration, trainingEpochs); } }
public ActivationNeuron(ActivationLayer parent) { Helper.ValidateNotNull(parent, "parent"); this.input = 0d; this.output = 0d; this.error = 0d; this.bias = 0d; this.parent = parent; }
public RedBackpropagation(ActivationLayer inputLayer, ActivationLayer outputLayer) : base(inputLayer, outputLayer, TrainingMethod.Supervised) { this.meanSquaredError = 0d; this.isValidMSE = false; }