public void BackpropagationError() { double currentError = Single.MaxValue; // текущая ошибка double lastError = 0; // последняя ошибка int epochNumber = 0; // номер эпохи StudyAlgorithm options = new StudyAlgorithm(); // ЗАЧЕМ ЭТО??? ты же наследуешь от этого класаа!!!!!!!!! do { lastError = currentError; int currentIndex = 0; // текущий индекс // эпоха do { foreach(float point in pointX) { } // Вычислить разность между выходом сети и требуемым выходом (целевым вектором обучающей пары). // Подкорректировать веса сети для минимизации ошибки } while (currentIndex < pointX.Count); //вместо 0 количество данных // пересчет ошибки currentError на всех данных currentError = 0; for (int i = 0; i < 0; i++) { // .... } currentError *= 1d / pointX.Count; epochNumber++; } while (epochNumber < options.maximumEpochs && currentError > options.MinError && Math.Abs(currentError - lastError) > options.MinErrorChange); }
private void TrainingParametersMenuItem_Click(object sender, RoutedEventArgs e) { TrainingParametersWindow trainingParameters = new TrainingParametersWindow(); StudyAlgorithm options = new StudyAlgorithm(); if (trainingParameters.ShowDialog() == true) { options.step = Convert.ToDouble(trainingParameters.LearningStep.Text); options.maximumEpochs = Convert.ToInt32(trainingParameters.NumberOfEpochs.Text); } }