- •Содержание
- •Техническое задание
- •Введение
- •Разработка алгоритма
- •Математический алгоритм
- •Разработка схем алгоритмов
- •2. Разработка программы
- •Вычислительный эксперимент
- •3.1 Определение оптимальных параметров нейросети в среде Matlab.
- •3.2 Программа разработанная на языке с#.
- •Руководство программиста
- •4.1 Назначение и условия применения программы
- •4.2 Характеристика программы
- •4.3 Обращение к программе
- •Входные и выходные данные
- •Руководство пользователя
- •Заключение
- •Список литературы
- •Приложение а
-
Разработка схем алгоритмов
Для дальнейшей работы необходимо построить следующие алгоритмы: алгоритм работы программы в целом, и алгоритм обучения нейросети. Обобщенная схема алгоритма программы, распознающей 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() – метод, рисующий график.
Текст программы представлен в приложении А.
-
Вычислительный эксперимент
3.1 Определение оптимальных параметров нейросети в среде Matlab.
После выполнения программы появляются три графика. Результаты представлены на рисунках 4,5,6.
Рисунок 5 – График ошибки при значении коэффициента скорости обучения 0,5.
Рисунок 6 – График ошибки при значении коэффициента скорости обучения 1.
Рисунок 7 – График ошибки при значении коэффициента скорости обучения 1,5.
Анализируя полученные результаты, можно сделать вывод, что для эффективной работы нейросети, коэффициент скорости обучения должен принимать значения от 0,5 до 1. Коэффициент а в функции активации (7) нужно выбирать в пределах от 2 до 4. Количество шагов обучения лучше оставить равным 100. Конкретные значения нужно будет подобрать экспериментально, в зависимости от процента правильного распознавания при тех или иных значениях коэффициентов.