Пример #1
0
        private double runTrainingIteration(ref IdentityNeuron neuron, ref NeuronTrainingPattern[] trainingSet, double trainingStep, int trainingNumber, int inputNumber)
        {
            double finalError = 0.0;
            for (int i = 0; i < trainingNumber; i++)
            {
                double[] inputVectors = trainingSet[i].neuronInputVectors;
                double computedOutputVector = neuron.Compute(inputVectors);
                double error = trainingSet[i].neuronOutputVector - computedOutputVector;

                for (int j = 0; j < inputNumber; j++)
                {
                    neuron.Weights[j] = neuron.Weights[j] + trainingStep * error * inputVectors[j];
                }

                finalError += (error * error);
            }
            finalError /= trainingNumber;
            return finalError;
        }