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

Для дальнейшей работы необходимо построить следующие алгоритмы: алгоритм работы программы в целом, и алгоритм обучения нейросети. Обобщенная схема алгоритма программы, распознающей 2 класса чисел с помощью искусственной нейросети, представлена на рисунке 2.

Начало

Создание нейросети

Обучение нейросети

Экзаменационный тест и подсчет процента правильности распознавания

Распознавание классов

Конец

Рисунок 3 - Обобщенная схема алгоритма программы, распознающей 2 класса чисел с помощью искусственной нейросети.

Алгоритм обучения нейросети представлен на рисунке 3.

Начало

Инициализировать синаптические веса маленькими случайными значениями

Выбрать обучающую пару из обучающего множества; подать входной вектор на вход сети

Вычислить выход сети

Вычислить разность между выходом сети и требуемым выходом

Подкорректировать веса сети для минимизации ошибки

Шаг обучения = = 100

Конец

Рисунок 4 – Схема алгоритма обучения нейросети

2. Разработка программы

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

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

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

System;

System.Collections.Generic;

System.ComponentModel;

System.Data;

System.Drawing;

System.Text;

System.Windows.Forms;

System.Threading;

System.IO;

Для создания программы были использованы:

class Neyro – класс работающий с нейросетью.

class Form1 : Form – класс диалогового окна, наследуемый от стандартного класса Form.

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

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

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

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

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

private void grafic() – метод, рисующий график.

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

  1. Вычислительный эксперимент

3.1 Определение оптимальных параметров нейросети в среде Matlab.

После выполнения программы появляются три графика. Результаты представлены на рисунках 4,5,6.

Рисунок 5 – График ошибки при значении коэффициента скорости обучения 0,5.

Рисунок 6 – График ошибки при значении коэффициента скорости обучения 1.

Рисунок 7 – График ошибки при значении коэффициента скорости обучения 1,5.

Анализируя полученные результаты, можно сделать вывод, что для эффективной работы нейросети, коэффициент скорости обучения должен принимать значения от 0,5 до 1. Коэффициент а в функции активации (7) нужно выбирать в пределах от 2 до 4. Количество шагов обучения лучше оставить равным 100. Конкретные значения нужно будет подобрать экспериментально, в зависимости от процента правильного распознавания при тех или иных значениях коэффициентов.