Автор работы: Пользователь скрыл имя, 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
Таблица 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, который содержит в качестве элементов объекты классов-оберток таблиц.
Классы-адаптеры для управления классами-обертками.
Данные классы предназначены для работы с классами-обертками. Они позволяют осуществлять вставку, удаление и обновление данных, а также позволяют расширять свой функционал, добавляя новые запросы. Для каждого класса-обертки создается свой класс-адаптер.
Работа студента с программой начинается с открытия основной формы программы. Студент может загрузить модель нейронной сети из файла (выбрав пункт меню «Файл\Открыть…») или создать новую модель нейронной сети (выбрав пункт меню «Файл\Новый»).
Далее студент разрабатывает
Если студент введет некорректное число нейронов в слое, то программа автоматически выставит предыдущее значение. В качестве элементов для ввода ряда параметров (количество слоев в сети, значение порога и т.д.) используется элемент управления NumericUpDown, который предназначен специально для ввода числовых значений и не позволяет пользователю вводить некорректные числа.
Изменения структуры нейронной сети сохраняются автоматически. После окончания внесения изменений программа выдаст сообщение об успехе операции или возникшей ошибке.
Студент может просмотреть схему сети, нажав на кнопку «Схема нейронной сети». После чего откроется форма со схемой сети.
Студент может перейти на форму создания и редактирования обучающих массивов (пункт меню «Обучение\Редактор обучающих массивов…» или кнопка «Обучение нейронной сети»). На данной форме пользователь может создать новый массив, при этом ему необходимо ввести описание массива, выбрать массив из таблицы для его редактирования или удаления. После того как студент выбирает массив из таблицы, программа автоматически загружает все обучающие пары данного массива. Студент может создать новую пару или изменить тип уже созданной пары, а также добавить, удалить или изменить значения входных и выходных сигналов. На данной форме также расположена уменьшенная схема текущей нейронной сети и кнопа «Обучить», по нажатию на которую открывается форма обучения нейронной сети. На данной форме он может выбрать обучающий массив из списка массивов, выставить дополнительные настройки алгоритма обучения и запустить алгоритм обучения. Элемент ProgressBar, расположенный на данной форме будет отображать ход выполнения процесса обучения.
После окончания процесса обучения программа сообщит о результатах (достигнута ли заданная точность и если нет, то какова погрешность). Студент может опросить сеть. Для этого ему надо нажать на кнопку «Опрос нейронной сети» на главной форме приложения, после чего откроется форма для ввода значений входных сигналов. На этой форме будет расположена схема нейронной сети, таблица для ввода значений входных сигналов и таблица для вывода значений выходных сигналов после опроса.
Диаграмма последовательности действий приведена в графической части.
Программа для моделирования и исследования нейронной сети имеет несколько форм, которые может использовать студент при выполнении лабораторной работы.
Форма NeuralNetForm является основной. На ней студент может задать структуру нейронной сети, сохранить модель нейронной сети или загрузить ранее сохраненную модель. Также все остальные формы (работа с обучающими массивами, обучение сети, просмотр схемы сети) доступны из основной формы.
Форма NeuralNetVizForm используется для просмотра схемы нейронной сети.
Форма LearningArraysEditorForm используется для работы с обучающими массивами и обучающими парами. С помощью нее студент может создать обучающий массив, редактировать, удалить. Выбирая конкретный обучающий массив, на форму из базы данных загружается список обучающих пар данного массива, а, выбирая конкретную обучающую пару, на форму загружается список входных и выходных сигналов. Обучающие пары, входные и выходные сигналы также можно редактировать, добавлять и удалять.
Форма CreateLearningArrayForm является вспомогательной и служит для ввода описания создаваемого обучающего массива.
Форма LearningNeuralNetForm предназначена для обучения нейронной сети.
Форма LearningSettingsForm предназначена для задания дополнительных настроек алгоритма обучения.
Форма UseNeuralNetForm используется для опроса сети.
Диаграмма состояний программы приведена в графической части.
Ниже представлены таблицы с описанием всех событий приводящих к переходу программы из одного состояния в другое (Connections), а также вызываемых внутри форм (Operations) (во время нахождения программы в определенном состоянии).
Таблица 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_ 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_ Public |
Выбор обучающего массива и загрузка всех обучающих пар данного массива |
object [in] sender DataGridViewCellMouseEventArgs [in] e |
btnCreateLearningPair_Click() do Public |
Создание новой обучающей пары |
object [in] sender EventArgs [in] e
|
dgrLearningPairs_ 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
|
Таблица 34 – Connections
Связь |
Источник |
Цель |
Описание |
Transition Close Source -> Destination |
Public LearningNeuralNetForm |
Public NeuralNetForm |
Закрытие формы обучения нейронной сети
|
Продолжение таблицы 34
Связь |
Источник |
Цель |
Описание |
Transition learningNetToolStripMenuItem_ 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_ Public |
Выбор обучающего массива из списка |
object [in] sender EventArgs [in] e
|
dgrLearningPairs_ 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 |
Таблица 36 – Connections
Связь |
Источник |
Цель |
Описание |
Transition btnOK_Click Source -> Destination |
Public LearningSettingsForm
|
Public LearningNeuralNetForm
|
Закрытие формы настроек алгоритма обучения нейронной сети
|
Transition btnSettings_Click Source -> Destination |
Public LearningNeuralNetForm
|
Public LearningSettingsForm
|
Открытие формы с настройками алгоритма обучения нейронной сети
|