Руководство программиста - Исследование метода обратного распространения ошибки для обучения нейронной сети

Разработанная программа демонстрирует изученные в процессе обучения навыки владения языком C#.

Назначение и условия применения программы

Программа предназначена для распознавания двух классов чисел.

Для запуска этой программы необходимо иметь на компьютере установленную версию Windows XP/Vista/7. Данная программа разрабатывалась в среде MSVisualC# 2010(Microsoft. NET Framework 4.0).

Характеристика программы

Для написания программы нам понадобились следующие команды:

Получение числовых значений из текстовых полей:

Neyr1 = Convert. ToInt32(textBox1.Text);

Вывод окошка:

MessageBox. Show("Введите количество нейронов первого слоя");

Чтение содержимого файла:

Text = File. ReadAllLines("1-1.txt");

Сброс текстбокса:

TextBox1.Clear();

В данной программе был создан класс - class Neyro, с помощью которого создается нейросеть, и затем ведется работа с ней.

Класс содержит следующие переменные:

Public double[] prom, vvod;

Public double[,] w1, w2;

Public double[] rez;

Public int count1=0, count2=0;

Public int neyr1, neyr2;

Public int[] ogid;

Public bool[] ogid1, ogid2;

Public double k, skor;

Public double[] err_m = new double[100]; (cм. Приложение А)

Значениям переменных neyr1, neyr2 присваивается значение количества нейронов в первом и втором слоях нейросети соответственно.

Массив vvod заполняется из файла с входными данными. Далее вычисляются значения массивов prom и rez. Массив prom - это результаты выходов нейронов первого слоя. А массив rez - результаты выходов нейросети.

Алгоритм вычислений в классе соответствует формулам (5), (6), (7);

Так же в классе используются методы:

Public int[] Vihod(int kol, int kl) - метод, формирующий целевой вектор.

Public void Korekt() - метод, коректирующий синапсы.

Public void Rez() - метод вычисления результата нейросети.

Public void CreateNS() - метод, создающий нейросеть.

Public void Obuchenie(string file, StreamWriter sw1) - метод, обучающий нейросеть определенному классу чисел.

Текст программы класса представлен в Приложении А.

Правильность работы класса и программы в целом подтверждена вычислительным экспериментом. (см. рисунок 4,5).

Обращение к программе

Для запуска программы необходимо открыть в папке "курсовой ИТПЗ 2010" файл "курсовой титп2.sln" с помощью MS Visual Studio С# 2010 и нажать кнопку "Начать отладку". В результате должно появиться окно программы.

Входные и выходные данные

Анализируя графики ошибки обучения нейросети (рис. 2), а так же экспериментально были подобраны следующие параметры:

Количество шагов обучения - 100;

Коэффициент скорости обучения - 0,7;

Коэффициент сигмоида - 1,3;

Эффективность работы нейросети с этими параметрами так же была проверена при работе с другими классами чисел. Поэтому для данной нейросети лучше использовать именно эти значения.

В пункты: "Количество нейронов", нужно вводить целые значения. Значения коэффицентов k (коэффицент сигмоидной функции) и skor (скорость обучения) могут быть дробными.

В пункте "Обучающая выборка" нужно выбрать файлы для обучения нейросети соответствующим классам.

В пунктах "Файл" выбираются файлы для экзаменационной и тестовой выборки.

Похожие статьи




Руководство программиста - Исследование метода обратного распространения ошибки для обучения нейронной сети

Предыдущая | Следующая