Разработка программного модуля для моделирования и исследования нейронных сетей по дисциплине «Системы искусственного интеллекта» для Б

Автор работы: Пользователь скрыл имя, 23 Мая 2013 в 17:44, дипломная работа

Описание работы

В рамках дипломного проекта необходимо разработать программу, которая по-зволяла бы студенту изучать особенности построения и использования нейронных сетей.
Разрабатываемая программа должна позволять студенту создавать нейронную сеть и обучать ее для решения определенных задач. Программа должна предоставлять удобный интерфейс и давать студенту возможность сохранять модель созданной нейрон-ной сети и загружать ее для дальнейших исследований. Также программа должна иметь локальную базу данных для хранения информации, необходимой для обучения сети.

Содержание работы

Перечень условных обозначений 3
Введение 5
1 Анализ технологии обработки информации в предметной области и определение требований к АСОИ 6
1.1 Сбор и анализ исходной информации 6
1.2 Определение требований к проектируемой АСОИ 17
1.2.1 Диаграмма вариантов использования 21
1.2.2 Диаграмма деятельности 33
1.2.3 Модель данных 34
Выводы 37
2 Создание модели АСОИ 38
2.1 Диаграмма классов 38
2.2 Диаграмма последовательности 45
2.3 Диаграмма состояний 46
2.4 Диаграмма деятельности 54
2.5 Диаграмма компонентов 54
2.6 Диаграмма размещения 57
Выводы 58
3 Разработка программного обеспечения 59
3.1 Выбор среды программирования 59
3.2 Разработка таблиц баз данных АСОИ 59
3.3 Разработка запросов 59
3.4 Разработка форм 61
3.5 Разработка вычислительных процедур обработки данных 62
3.6 Тестирование программного обеспечения 65
Заключение по проекту 69
4 Экономическая часть 70
4.1 Общая постановка к технико-экономическому обоснованию 70
4.2 Расчет трудоемкости (производительности) 71
4.3 Расчет единовременных затрат 76
4.4 Расчет годовых текущих издержек 80
4.5 Расчет показателей экономической эффективности 83
4.6 Организация внедрения системы и рекомендации по ее эксплуатации 84
4.7 Выводы и рекомендации 85
5 Охрана труда 86
5.1 Идентификация и анализ вредных и опасных факторов в проектируемом объекте 86
5.2 Технические, технологические, организационные решения по устранению опасных и вредных факторов, разработка защитных средств 89
5.3 Разработка мер безопасности при эксплуатации объекта проектирования 93
6 Энерго- и ресурсосбережение 96
Список использованных источников 104

Файлы: 1 файл

Дипломный проект Мельников И.И. гр. АСОИ-052искуст.doc

— 2.22 Мб (Скачать файл)

 

Таблица 27 – Свойства и методы класса Neuron.

Свойства и  методы

Описание

ActivationFunctionName() string Public

Свойство, возвращающее наименование типа используемой активационной функции.

ActivationFunctionType() ActivationFunctionTypes

Public

Свойство, возвращающее или принимающее вид активационной функции.

InputSignalsSum() double

Public

Свойство, возвращающее сумму сигналов, подаваемых на вход нейрона.

Neuron()

Public

Конструктор по умолчанию.

OutputSignal() double

Public

Свойство, возвращающее значение выходного  сигнала.

Synapses() List<Synapse>

Public

Свойство, возвращающее или принимающее список синапсов.

Threshold() double

Public

Свойство, возвращающее или принимающее значение порога.


 

Synapse

Синапс нейрона

Таблица 28 – Атрибуты класса Synapse.

Атрибут

Описание

m_id Guid

Private

Уникальный номер синапса


Продолжение таблицы 28

Атрибут

Описание

m_weight  double

Private

Вес синапса

m_x double

Private

Сигнал, подаваемый на синапс

m_delta decimal

Private

Величина изменения веса.

m_newWeight double

Private

Модифицированное значение веса.


 

Таблица 29 – Свойства и методы класса Synapse.

Свойства и  методы

Описание

Delta() decimal

Public

Свойство, возвращающее или принимающее значение величина изменения веса.

NewWeight() double

Public

Свойство, возвращающее или принимающее модифицированное значение веса.

Synapse()

Public

Конструктор по умолчанию

WeighedX() decimal

Public

Свойство, возвращающее значения взвешенного сигнала синапса.

Weight() double

Public

Свойство, возвращающее или принимающее значение веса синапса.

X() double

Public

Свойство, возвращающее или принимающее значение входного сигнала.


 

Классы-обертки для таблиц базы данных.

Данные классы предназначены для представления таблиц базы данных в программе. Это позволяет работать с таблицами, как с объектами классов, облегчая тем самым доступ к ним. Основным классом здесь является класс NNTrainingDBDataSet, который содержит в качестве элементов объекты классов-оберток таблиц.

  • LearningArrayDataTable – класс, представляющий таблицу LearningArray.
  • LearningPairDataTable – класс, представляющий таблицу LearningPair.
  • InputSignalDataTable – класс, представляющий таблицу InputSignal.
  • OutputSignalDataTable – класс, представляющий таблицу OutputSignal.

Классы-адаптеры для управления классами-обертками.

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

2.2 Диаграмма последовательности

Работа студента с  программой начинается с открытия основной формы программы. Студент может загрузить модель нейронной сети из файла (выбрав пункт меню «Файл\Открыть…») или создать новую модель нейронной сети (выбрав пункт меню «Файл\Новый»).

Далее студент разрабатывает структуру  нейронной сети. Для этого ему необходимо ввести количество слоев в сети (от 1 до 3), затем для каждого слоя задать количество нейронов и выбрать типа активационной функции для всех нейронов сети. Если будет выбрана линейная активационная функция, то программа автоматически сделает доступным для редактирования поле порога.

Если студент введет некорректное число нейронов в слое, то программа  автоматически выставит предыдущее значение. В качестве элементов для ввода ряда параметров (количество слоев в сети, значение порога и т.д.) используется элемент управления NumericUpDown, который предназначен специально для ввода числовых значений и не позволяет пользователю вводить некорректные числа.

Изменения структуры нейронной сети сохраняются автоматически. После окончания внесения изменений программа выдаст сообщение об успехе операции или возникшей ошибке.

Студент может просмотреть схему  сети, нажав на кнопку «Схема нейронной сети». После чего откроется форма со схемой сети.

Студент может перейти на форму  создания и редактирования обучающих массивов (пункт меню «Обучение\Редактор обучающих массивов…» или кнопка «Обучение нейронной сети»). На данной форме пользователь может создать новый массив, при этом ему необходимо ввести описание массива, выбрать массив из таблицы для его редактирования или удаления. После того как студент выбирает массив из таблицы, программа автоматически загружает все обучающие пары данного массива. Студент может создать новую пару или изменить тип уже созданной пары, а также добавить, удалить или изменить значения входных и выходных сигналов. На данной форме также расположена уменьшенная схема текущей нейронной сети и кнопа «Обучить», по нажатию на которую открывается форма обучения нейронной сети. На данной форме он может выбрать обучающий массив из списка массивов, выставить дополнительные настройки алгоритма обучения и запустить алгоритм обучения. Элемент ProgressBar, расположенный на данной форме будет отображать ход выполнения процесса обучения.

После окончания процесса обучения программа сообщит о результатах (достигнута ли заданная точность и если нет, то какова погрешность). Студент может опросить сеть. Для этого ему надо нажать  на кнопку «Опрос нейронной сети» на главной форме приложения, после чего откроется форма для ввода значений входных сигналов. На этой форме будет расположена схема нейронной сети, таблица для ввода значений входных сигналов и таблица для вывода значений выходных сигналов после опроса.

Диаграмма последовательности действий приведена в графической части.

2.3 Диаграмма состояний

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

Форма NeuralNetForm является основной. На ней студент может задать структуру нейронной сети, сохранить модель нейронной сети или загрузить ранее сохраненную модель. Также все остальные формы (работа с обучающими массивами, обучение сети, просмотр схемы сети) доступны из основной формы.

Форма NeuralNetVizForm используется для просмотра схемы нейронной сети.

Форма LearningArraysEditorForm используется для работы с обучающими массивами и обучающими парами. С помощью нее студент может создать обучающий массив, редактировать, удалить. Выбирая конкретный обучающий массив, на форму из базы данных загружается список обучающих пар данного массива, а, выбирая конкретную обучающую пару, на форму загружается список входных и выходных сигналов. Обучающие пары, входные и выходные сигналы также можно редактировать, добавлять и удалять.

Форма CreateLearningArrayForm является вспомогательной и служит для ввода описания создаваемого обучающего массива.

Форма LearningNeuralNetForm предназначена для обучения нейронной сети.

Форма LearningSettingsForm предназначена для задания дополнительных настроек алгоритма обучения.

Форма UseNeuralNetForm используется для опроса сети.

Диаграмма состояний программы приведена в графической части.

Ниже представлены таблицы  с описанием всех событий приводящих к переходу программы из одного состояния  в другое (Connections), а также вызываемых внутри форм (Operations) (во время нахождения программы в определенном состоянии).

CreateLearningArrayForm

Таблица 30 – Connections

Связь

Источник

Цель

Описание

Transition btnSave_Click

Source -> Destination

Public

CreateLearningArrayForm

Public

LearningArraysForm

Закрытие формы с последующим сохранением массива

Transition btnSave_Click

Source -> Destination

Public

CreateLearningArrayForm

Public

CreateLearningArrayForm

Сохранение массива без описания

 


 

 

Продолжение таблицы 30

Связь

Источник

Цель

Описание

Transition

Source -> Destination

Public

LearningArraysForm

Public

CreateLearningArrayForm

Открытие формы для ввода  описания обучающего массива


 

Таблица 31 – Operations

Метод

Описание

Параметры

txtDescription_TextChanged() do

Public

Поверка вводимого описания массива

object [in] sender

EventArgs [in] e


 

LearningArraysEditorForm

Таблица 32 – Connections

Связь

Источник

Цель

Описание

Transition Close

Source -> Destination

Public

LearningArraysForm

Public

NeuralNetForm

Закрытие формы для работы с обучающими массивами

Transition createArrayToolStripMenuItem_Click

Source -> Destination

Public

NeuralNetForm

Public

LearningArraysForm

 

Открытие формы для работы с обучающими массивами

Transition btnSave_Click

Source -> Destination

Public

CreateLearningArrayForm

Public

LearningArraysForm

Закрытие формы с последующим сохранением массива

Transition

Source -> Destination

Public

LearningArraysForm

Public

CreateLearningArrayForm

Открытие формы для ввода описания обучающего массива


 

 

 

 

 

 

Таблица 33 – Operations

Метод

Описание

Параметры

LearningArraysForm_Load() entry

Public

Загрузка элементов формы (таблицы  обучающих массивов)

object [in] sender

EventArgs [in] e

 

dgrLearningArrays_RowHeaderMouseClick() do

Public

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

object [in] sender

DataGridViewCellMouseEventArgs [in] e

btnCreateLearningPair_Click() do

Public

Создание новой обучающей пары

object [in] sender

EventArgs [in] e

 

dgrLearningPairs_RowHeaderMouseClick() do

Public

Выбор обучающей пары и загрузка всех значений входных и выходных сигналов данной пары

object [in] sender

DataGridViewCellMouseEventArgs [in] e

 

btnSaveArrays_Click() do

Public

Сохранение изменений в обучающих массивах

object [in] sender

EventArgs [in] e

btnSaveLearningPair_Click() do

Public

Сохранение изменений значений входных и выходных сигналов в обучающей паре

object [in] sender

EventArgs [in] e

btnSavePairs_Click() do

Public

Сохранение изменений в обучающих  парах

object [in] sender

EventArgs [in] e

 


 

LearningNeuralNetForm

Таблица 34 – Connections

Связь

Источник

Цель

Описание

Transition Close

Source -> Destination

Public

LearningNeuralNetForm

Public

NeuralNetForm

Закрытие формы обучения нейронной сети

 


 

 

 

Продолжение таблицы 34

Связь

Источник

Цель

Описание

Transition learningNetToolStripMenuItem_Click

Source -> Destination

Public

NeuralNetForm

 

Public

LearningNeuralNetForm

 

Открытие формы обучения нейронной  сети

 

Transition btnOK_Click

Source -> Destination

Public

LearningSettingsForm

 

Public

LearningNeuralNetForm

 

Закрытие формы настроек алгоритма обучения нейронной сети

Transition btnSettings_Click

Source -> Destination

Public

LearningNeuralNetForm

 

Public

LearningSettingsForm

 

Открытие формы с настройками алгоритма обучения нейронной сети

 


 

Таблица 35 – Operations

Метод

Описание

Параметры

LearningNeuralNetForm_Load() entry

Public

Загрузка элементов формы и (схемы  сети до обучения и списка обучающих массивов)

object [in] sender

EventArgs [in] e

 

cbLearningArrays_SelectedIndexChanged() do

Public

Выбор обучающего массива из списка

object [in] sender

EventArgs [in] e

 

dgrLearningPairs_RowHeaderMouseClick() do

Public

Выбор обучающей пары массива для просмотра значений входных и выходных сигналов

object [in] sender

DataGridViewCellMouseEventArgs [in] e

btnLearning_Click() do

Public

Запуск процесса обучения сети

object [in] sender

EventArgs [in] e

btnSettings_Click() do

Public

Открытие формы для ввода  дополнительных настроек алгоритма обучения

object [in] sender

EventArgs [in] e


 

 

LearningSettingsForm

Таблица 36 – Connections

Связь

Источник

Цель

Описание

Transition btnOK_Click

Source -> Destination

Public

LearningSettingsForm

 

Public

LearningNeuralNetForm

 

Закрытие формы настроек алгоритма обучения нейронной сети

 

Transition btnSettings_Click

Source -> Destination

Public

LearningNeuralNetForm

 

Public

LearningSettingsForm

 

Открытие формы с настройками алгоритма обучения нейронной сети

 

Информация о работе Разработка программного модуля для моделирования и исследования нейронных сетей по дисциплине «Системы искусственного интеллекта» для Б