Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовик ИТПЗ отчет мой.docx
Скачиваний:
5
Добавлен:
24.12.2018
Размер:
515.55 Кб
Скачать

3.2 Программа разработанная на языке с#.

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

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

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

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

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

При запуске вызываем Windows окно. Ознакомившись, вводим данные с клавиатуры, требуемые программой. Вычислительный эксперимент представлен на рисунках 8, 9.

Рисунок 8 - Результат работы программы, представленный в Windows окне

Рисунок 9 - Результат работы программы, представленный в Windows окне

При неправильном использовании возникают ошибки, представленные на рисунках 10, 11.

Рисунок 10 – Ошибки при вводе данных

Рисунок 11 – Ошибки при вводе данных

  1. Руководство программиста

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

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

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

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

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

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

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

neyr1 = Convert.ToInt32(textBox1.Text); (cм. Приложение А)

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

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

(cм. Приложение А)

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

text = File.ReadAllLines("1-1.txt"); (cм. Приложение А)

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

textBox1.Clear();(cм. Приложение А)

В данной программе был создан класс - 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);

(см. 1.1 Математический алгоритм).

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

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

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

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

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

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

(cм. Приложение А)

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

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