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

Автор работы: Пользователь скрыл имя, 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 Мб (Скачать файл)

 

Таблица 9 – Ограничения таблицы LearningPair

Name

Type

Columns

FK_LearningPair_LearningArray

Public

LearningArrayId

PK_LearningPair

Public

Id

LearningArrayId


 

Таблица 10 – Связи таблицы LearningPair

Columns

Association

(LearningPairId = Id)

 0..* OutputSignal.FK_OutputSignal_LearningPair

 1 LearningPair.PK_LearningPair

(LearningPairId = Id)

 0..* InputSignal.FK_InputSignal_LearningPair

 1 LearningPair.PK_LearningPair

(LearningArrayId = Id)

 0..* LearningPair.FK_LearningPair_LearningArray

 1 LearningArray.PK_LearningArray


 

 

 

 

3. Таблица InputSignal

Таблица для хранения значений входных  сигналов

Таблица 11 – Колонки таблицы InputSignal

PK

Name

Type

Not Null

Unique

Len

Prec

Scale

Init

Notes

True

Id

int

True

False

       

Уникальный номер входного сигнала

True

LearningPairId

int

True

False

       

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

False

Value

numeric

True

False

 

21

15

0

Значение входного сигнала


 

Таблица 12 – Ограничения таблицы InputSignal

Name

Type

Columns

FK_InputSignal_LearningPair

Public

LearningPairId

PK_InputSignal

Public

Id

LearningPairId


 

Таблица 13 – Связи таблицы InputSignal

Columns

Association

(LearningPairId = Id)

 0..* InputSignal.FK_InputSignal_LearningPair

 1 LearningPair.PK_LearningPair


 

 

 

 

 

 

 

 

 

 

4. Таблица OutputSignal

Таблица для хранения значений выходных сигналов

Таблица 14 – Колонки таблицы OutputSignal

PK

Name

Type

Not Null

Unique

Len

Prec

Scale

Init

Notes

True

Id

int

True

False

       

Уникальный номер выходного сигнала

True

LearningPairId

int

True

False

       

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

False

Value

numeric

False

False

 

21

15

0

Значение выходного сигнала


 

Таблица 15 – Колонки таблицы OutputSignal

Name

Type

Columns

FK_OutputSignal_LearningPair

Public

LearningPairId

PK_OutputSignal

Public

Id

LearningPairId


 

Таблица 16 – Связи таблицы OutputSignal

Columns

Association

(LearningPairId = Id)

 0..* OutputSignal.FK_OutputSignal_LearningPair

 1 LearningPair.PK_LearningPair


 

Выводы

В результате анализа  описаны варианты использования, выявлены основной поток событий, альтернативные потоки и поток ошибок. Определены варианты использования, разработана  диаграмма модели данных (таблиц данных) предметной области, построена диаграмма деятельности.

Собранной информации достаточно для разработки модели АСОИ (программы  для выполнения лабораторного практикума по созданию и исследованию нейронных  сетей).

2 Создание модели АСОИ

2.1 Диаграмма классов

Программа включает в  свой состав пять основынх частей.

  1. Пользовательские формы (Forms).
  2. Классы-контроллеры пользовательских форм, в которых определены все события и локальные переменные, использующиеся на соответствующих формах (Form Controllers).
  3. Классы-модели, предназначенные для описания структуры нейронной сети (Models).
  4. Классы-обертки для таблиц базы данных (Table Wrappers).
  5. Классы-адаптеры для управления классами-обертками (Table Adapters).

Класс Program является основным управялющим классом, запускающий программу на выполнение и хранящий данные о текущей нейронной сети NeuralNet и имя последнего файла, в который производилось сохранение модели текущей нейронной сети для более быстрого повторного ее сохранения.

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

Пользовательские  формы.

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

В данной программе используются следующие пользовательские формы.

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

NeuralNetVizForm – форма для отображения схемы нейронной сети.

UseNeuralNetForm – форма, предназначенная для опроса нейронной сети. Содержит схему нейронной сети и таблицу для ввода значений входных сигналов. Позволяет пользователю проверить работу нейронной сети, отображая значения выходных сигналов.

LearningNeuralNetForm – форма, предназначенная для обучения нейронной сети. Содержит схему нейронной сети до и после обучения и позволяетпользователю выбрать обучающий массив из базы данных с целью проведения обучения сети.

LearningSettingsForm – форма, позволяющая пользователю задавать дополнительные параметры обучения (максимальное число итераций и допустимую погрешность значений выходных сигналов по сравнению с контрольными). Вызывается из формы LearningNeuralNetForm.

LearningArraysEditorForm– форма, предназначенная для создания и редактирвания обучающих массивов и обучающих пар. Также содержит схему текущей нейронной сети.

CreateLearningArrayForm – форма, используемая для создания обучающего массива, а именно ввода его обязательного описания. Вызывается из формы LearningArraysForm.

Классы-контроллеры  пользовательских форм.

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

Классы-модели нейронной сети и ее элементов.

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

Рассмотрим данные классы более потробно.

ActivationFunctionTypes

Перечисление типов активационной  функции.

Таблица 17 – Атрибуты перечисления ActivationFunctionTypes.

Атрибут

Описание

LinearFunction

Public

Линейная активационная функция

SigmaFunction

Public

Сигмоидальная активационная функция

Tanh

Public

Гиперболический тангенс


 

Layer

Слой нейронной сети.

Таблица 18 – Атрибуты класса Layer.

Атрибут

Описание

m_neurons  List<Neuron>

Private

Список нейронов, входящих в слой.


 

 

 

 

Таблица 19 – Методы и свойства класса Layer.

Метод или свойство

Описание

Layer()

Public

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

Neurons() List<Neuron>

Public

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


 

LearningArray

Обучающий массив

Таблица 20 – Атрибуты класса LearningArray.

Атрибут

Описание

m_description string

Private

Описание обучающего массива

m_id int

Private

Уникальный номер обучающего массива

m_learningPairs List<LearningPair>

Private

Список обучающих пар, входящих в массив


 

Таблица 21 – Методы и свойства класса LearningArray.

Метод или свойство

Описание

Id()

Public

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

Description() string

Public

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

LearningPairs()

List<LearningPair>

Public

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


 

 

 

 

 

 

 

 

LearningPair

Обучающая пара

Таблица 22 – Атрибуты класса LearningPair.

Атрибут

Описание

m_id int

Private

Уникальный номер обучающей  пары

m_xValues  List<double>

Private

Список значений входных сигналов

m_yValues  List<double>

Private

Список значений выходных сигналов


 

Таблица 23 – Методы и свойства класса LearningPair.

Метод или свойство

Описание

Id()

Public

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

XValues() 

List<double>

Private

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

YValues ()

List<double>

Public

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


 

Net

Нейронная сеть

Таблица 24 – Атрибуты класса Net.

Атрибут

Описание

m_description string

Private

Описание сети.

m_id Guid

Private

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

m_layers List<Layer>

Private

Список слоев, входящих в сеть.

m_name string

Private

Наименование сети.


 

 

 

Таблица 25 – Методы и свойства класса Net.

Метод или свойства

Описание

Параметры

AddNeuron() void

Public

Добавление нейрона в сеть.

int [in] layerNum

Номер слоя.

ActivationFunctionTypes [in] activationFunctionType

Тип активационной функции.

double [in] threshold

Значение порога.

Ask() List<decimal>

Public

Опрос сети.

List<decimal> [in] inputSignals

Массив входных сигналов.

BackPropagation() decimal

Public

Обучение сети (алгоритм обратного распространения).

LearningArray [in] lArray

Обучающий массив.

decimal [in] nu

Коэффициент скорости обучения

decimal [in] inaccuracy

Допустимая погрешность.

int [in] iterationsCount

Максимальное число итераций.

string [out] message

Net()

Public

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

 

RemoveNeuron() void

Public

Удаление заданного нейрона в заданном слое.

int [in] layerNum

Номер слоя

int [in] neuronNum

Номер нейрона

RemoveNeuron() void

Public

Удаление последнего нейрона в слое.

int [in] layerNum

Номер слоя.


 

 

 

 

 

 

 

 

 

Neuron

Нейрон

Таблица 26 – Атрибуты класса Neuron.

Атрибут

Описание

m_activationFunctionType

ActivationFunctionTypes

Private

Тип активационной функции.

m_synapses List<Synapse>

Private

Список синапсов, входящих в нейрон.

m_threshold double

Private

Порог (для линейной активационной функции).

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