Автор работы: Пользователь скрыл имя, 25 Ноября 2013 в 21:24, дипломная работа
Сегодняшний уровень теоретического понимания и практического использования нейронных сетей в мировой информационной индустрии все явственнее требует профессиональных знаний в этой области.
Быстрыми темпами растет использование искусственных нейронных сетей для решения задач в самых различных областях:
– промышленность (например, управление процессами, в частности, мониторинг процессов производства с непрерывным регулированием управляющих параметров);
– маркетинг (например, прогнозирование цен на сырье, золото, ценные бумаги);
– финансы (например, оценка кредитоспособности – по анкетным данным определить, надежен ли данный заемщик);
– другие отрасли (например, распознавание символов, звуков, лингвистический анализ) [1].
ВВЕДЕНИЕ 10
1 СИСТЕМОТЕХНИЧЕСКАЯ ЧАСТЬ 12
1.1 Постановка задачи 12
1.2 Анализ существующих нейроимитаторов 14
1.3 Выбор нейросетевой модели для решения задач классификации и прогнозирования 20
1.3.1 Классификация 20
1.3.2 Использование нейронных сетей в качестве классификатора 21
1.3.3 Прогнозирование 22
1.3.4 Достоинства и недостатки прогнозирования с помощью нейронных сетей 23
1.3.5 Выбор нейросетевой модели 23
1.3.5.1 Классификация нейронных сетей по распространению сигнала. 23
1.3.5.2 Классификация по методу обучения. 24
1.4 Обучение радиально-базисной сети 25
1.4.1. Алгоритм k-средних 28
1.4.2. Алгоритм обратного распространения ошибки 30
2 РАЗРАБОТКА ЛОГИЧЕСКОГО ПРОЕКТА 34
2.1 Введение в UML 34
2.2 Диаграмма вариантов использования 34
2.3 Сценарии 37
2.3.1 Сценарий варианта использования «Выбрать архитектуру» 37
2.3.2 Сценарий варианта использования «Настроить функцию активации» 38
2.3.3 Сценарий варианта использования «Задать параметры обучения» 39
2.4 Диаграмма классов 41
2.4.1 Граничные классы 42
2.4.2 Классы прикладной логики 43
2.4.3 Классы реализации 43
2.5 Диаграмма состояний 46
2.6 Диаграмма последовательности 48
2.7 Диаграмма кооперации 48
2.8 Диаграмма деятельности 50
2.9 Диаграмма компонентов системы 52
3 КОНСТРУКТОРСКО-ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ 53
3.1 Выбор средств реализации Нейоримитатора радиально-базисной сети 53
3.1.1 Выбор и обоснование среды разработки проекта 53
3.1.2 Выбор операционной системы 53
3.1.3 Обоснование выбора среды разработки и языка программирования 54
3.2 Ресурсные расчеты 55
3.2.1 Расчет емкости внешней памяти 55
3.2.2 Расчет емкости ОЗУ 56
3.2.3 Расчет быстродействия 57
3.3 Разработка и описание модулей 58
3.4 Основные алгоритмы 59
3.4.1 Алгоритм обучения нейронной сети градиентным методом 59
3.4.2 Алгоритм настройки центров скрытых нейронов с помощью метода k-средних 62
3.5 Разработка методики испытаний 64
3.6 Описание контрольного примера 67
3.7 Анализ зависимости качества обучения от параметров сети 73
4 ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ СОЗДАНИЯ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ 76
4.1 Планирование и организация процесса разработки 76
4.2 Технико-экономическое обоснование нейроимитатора 79
4.3 Расчет затрат на разработку нейроимитатора 79
4.4 Расчет прогноз минимальной цены разработки нейроимитатора 81
4.5 Оценка безубыточности и расчет целесообразного объема продаж 81
4.6 Расчет единовременных затрат на внедрение нейроимитатора. 86
4.7 Расчет текущих затрат на функционирование нейроимитатора 86
4.8 Эффекты при внедрении системы 87
4.9 Оценка экономической эффективности инвестиционных (капитальных) затрат 87
5. БЕЗОПАСНОСТЬ ЖИЗНЕДЕЯТЕЛЬНОСТИ 90
5.1 Обеспечение безопасности нейроимитатора радиально-базисной сети 90
5.2 Обеспечение безопасности пользователя 93
5.2.1 Нагрузки интеллектуального характера 93
5.2.2 Сенсорные нагрузки 94
5.2.3 Эмоциональные нагрузки 97
5.2.4 Монотонность нагрузок 98
5.2.5 Режим работы 99
5.2.6 Общая оценка напряженности трудового процесса 99
ЗАКЛЮЧЕНИЕ 103
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 104
РЕФЕРАТ
Пояснительная записка: 138 с., 53 рис., 3 табл., 23 источникa, 4 приложения.
Графическая часть: 8 листов формата А1.
НЕЙРОННАЯ СЕТЬ, АРХИТЕКТУРА НЕЙРОННОЙ СЕТИ, НЕЙРОИМИТАТОР, ОБУЧЕНИЕ НЕЙРОННОЙ СЕТИ, АЛГОРИТМ К-СРЕДНИХ, РАДИАЛЬНО-БАЗИСНАЯ ФУНКЦИЯ
В дипломном проекте разработан нейроимитатор радиально-базисной нейронной сети, позволяющий генерировать сеть с заданными параметрами, а также настраивать параметры сети для решения задач классификации и прогнозирования.
Разработан логический проект системы по методологии UML в среде разработки Rational Rose Enterprise Edition 2003.
Реализован алгоритм построения нейронных сетей на языке Object Pascal в среде Borland Delphi 7.0. Для инициализации центров нейронов скрытого слоя использованы алгоритмы К-средних и случайной выборки. Для обучения сети реализован алгоритм наискорейшего спуска и метод обратного распространения ошибки.
Разработан контрольный пример работы нейроимитатора. Приведено технико-экономическое обоснование создания нейроимитатора радиально-базисной сети для проведения лабораторных работ по курсу «Основы экспертных систем», а также рассмотрены вопросы безопасности жизнедеятельности при работе с нейроимитатором.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 10
1 СИСТЕМОТЕХНИЧЕСКАЯ ЧАСТЬ 12
1.1 Постановка задачи 12
1.2 Анализ существующих нейроимитаторов 14
1.3 Выбор нейросетевой модели для решения задач классификации и прогнозирования 20
1.3.1 Классификация 20
1.3.2 Использование нейронных сетей в качестве классификатора 21
1.3.3 Прогнозирование 22
1.3.4 Достоинства и недостатки прогнозирования с помощью нейронных сетей 23
1.3.5 Выбор нейросетевой модели 23
1.3.5.1 Классификация нейронных сетей по распространению сигнала. 23
1.3.5.2 Классификация по методу обучения. 24
1.4 Обучение радиально-базисной сети 25
1.4.1. Алгоритм k-средних 28
1.4.2. Алгоритм обратного распространения ошибки 30
2 РАЗРАБОТКА ЛОГИЧЕСКОГО ПРОЕКТА 34
2.1 Введение в UML 34
2.2 Диаграмма вариантов использования 34
2.3 Сценарии 37
2.3.1 Сценарий варианта использования «Выбрать архитектуру» 37
2.3.2 Сценарий варианта использования «Настроить функцию активации» 38
2.3.3 Сценарий варианта использования «Задать параметры обучения» 39
2.4 Диаграмма классов 41
2.4.1 Граничные классы 42
2.4.2 Классы прикладной логики 43
2.4.3 Классы реализации 43
2.5 Диаграмма состояний 46
2.6 Диаграмма последовательности 48
2.7 Диаграмма кооперации 48
2.8 Диаграмма деятельности 50
2.9 Диаграмма компонентов системы 52
3 КОНСТРУКТОРСКО-
3.1 Выбор средств реализации Нейоримитатора радиально-базисной сети 53
3.1.1 Выбор и обоснование среды разработки проекта 53
3.1.2 Выбор операционной системы 53
3.1.3 Обоснование выбора среды разработки и языка программирования 54
3.2 Ресурсные расчеты 55
3.2.1 Расчет емкости внешней памяти 55
3.2.2 Расчет емкости ОЗУ 56
3.2.3 Расчет быстродействия 57
3.3 Разработка и описание модулей 58
3.4 Основные алгоритмы 59
3.4.1 Алгоритм обучения нейронной сети градиентным методом 59
3.4.2 Алгоритм настройки центров скрытых нейронов с помощью метода k-средних 62
3.5 Разработка методики испытаний 64
3.6 Описание контрольного примера 67
3.7 Анализ зависимости качества обучения от параметров сети 73
4 ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ СОЗДАНИЯ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ 76
4.1 Планирование и организация процесса разработки 76
4.2 Технико-экономическое обоснование нейроимитатора 79
4.3 Расчет затрат на разработку нейроимитатора 79
4.4 Расчет прогноз минимальной цены разработки нейроимитатора 81
4.5 Оценка безубыточности и расчет целесообразного объема продаж 81
4.6 Расчет единовременных затрат на внедрение нейроимитатора. 86
4.7 Расчет текущих затрат на функционирование нейроимитатора 86
4.8 Эффекты при внедрении системы 87
4.9 Оценка экономической эффективности инвестиционных (капитальных) затрат 87
5. БЕЗОПАСНОСТЬ ЖИЗНЕДЕЯТЕЛЬНОСТИ 90
5.1 Обеспечение безопасности нейроимитатора радиально-базисной сети 90
5.2 Обеспечение безопасности пользователя 93
5.2.1 Нагрузки интеллектуального характера 93
5.2.2 Сенсорные нагрузки 94
5.2.3 Эмоциональные нагрузки 97
5.2.4 Монотонность нагрузок 98
5.2.5 Режим работы 99
5.2.6 Общая оценка напряженности трудового процесса 99
ЗАКЛЮЧЕНИЕ 103
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 104
ПРИЛОЖЕНИЕ А 106
А.1 Назначение нейроимитатора 108
А.2 Условия работы 108
А.3 Установка нейроимитатора 108
А.4 Работа с нейроимитатором 108
А.5 Исключительные ситуации 117
ПРИЛОЖЕНИЕ Б 118
ПРИЛОЖЕНИЕ В 120
ПРИЛОЖЕНИЕ Г 125
Сегодняшний уровень теоретического
понимания и практического
Быстрыми темпами растет использование искусственных нейронных сетей для решения задач в самых различных областях:
– промышленность (например, управление процессами, в частности, мониторинг процессов производства с непрерывным регулированием управляющих параметров);
– маркетинг (например, прогнозирование цен на сырье, золото, ценные бумаги);
– финансы (например, оценка
кредитоспособности – по
– другие отрасли (например, распознавание символов, звуков, лингвистический анализ) [1].
В связи с тем, что «нейроинформатика» на сегодняшний день во многом остается эмпирической дисциплиной, ее теоретическое изучение не может быть эффективным без одновременного приобретения практических навыков. Эмпирическими, до конца не формализованными знаниями можно успешно овладеть, только лично выполняя реальное обучение искусственных нейронных сетей.
На данный момент в курс лабораторных работ по предмету «Основы экспертных систем (ОЭС)» входит программирование собственной нейронной сети на основании теории, полученной в курсе лекций. Переход от теории к непосредственному написанию программы сопровождается резким повышением эмоциональной и интеллектуальной нагрузки на студента.
В рамках дипломного проекта поставлена задача создания программного продукта «Нейроимитатор для проведения лабораторных работ по курсу «ОЭС»», в дальнейшем именуемый «Нейроимитатор», целью которого является генерация радиально-базисной нейронной сети по параметрам, заданным пользователем, наглядная демонстрация работы нейронной сети и предоставление возможности подбора параметров для последующего использования при решении задач классификации и прогнозирования.
Тот факт, что генерируемая нейронная сеть может иметь любую архитектуру и вид функции активации, обеспечивает возможность использования программного продукта вне привязки к какой-либо конкретной предметной области
«Нейроимитатор» позволяет сгенерировать нейронную сеть по параметрам, заданным пользователем, таким образом, обеспечивается возможность использования программного продукта вне привязки к какой-либо конкретной предметной области.
Радиально-базисная сеть характеризуется тремя особенностями:
Таким образом, выбор архитектуры сети сводится к выбору количества входов, количества скрытых нейронов и количества выходных нейронов (вопрос о количестве скрытых слоев и функции активации нейронов входного слоя не возникает).
С учетом вышесказанного, тему данного дипломного проекта следует считать актуальной.
Проектирование ведётся по технологии быстрой разработки приложений (RAD), которая поддерживается методологией структурного проектирования и включает элементы объектно-ориентированного проектирования и анализа предметной области.
Поставлена задача создания программного продукта для наглядной демонстрации работы радиально-базисной нейронной сети, для произвольной предметной области, выбранной пользователем. Для решения поставленной задачи необходимо решить следующие подзадачи:
В качестве параметров выступают:
(1.1)
(1.2)
(1.3)
Выбор архитектуры сети и настройка параметра функции активации должны проходить наглядно, в доступной для студента форме.
Применительно к искусственным нейронным сетям, обучение – это целенаправленный процесс изменения межслойных синаптических связей, итеративно повторяемый до тех пор пока, сеть не приобретет необходимые свойства [3].
Для обучения необходимо для начала проверить, подходит ли выборка для обучения (соответствует дли структура заданной выборке выбранной архитектуре сети). Затем, необходимо разделить выборку на обучающую и тестирующую, причем в обучающую должно попасть не менее 70% векторов. Обучение сети проводится градиентными методами, в частности методом наискорейшего спуска с использованием алгоритма распространения ошибок для расчета компонентов вектора градиента функции ошибки. При обучении строятся график зависимости ошибки от итерации обучения и график СКО по каждому вектору.
Пользователь должен иметь возможность не только загрузить файл с готовой выборкой, но и создать собственный файл. При создании файла нужно в первую очередь учитывать целевую направленность выборки, то есть «прогнозирование» или «классификация». В случае, если целью является прогнозирование, необходимо учитывать следующие моменты:
В случае, если целью является классификация, необходимы следующие действия:
Пользователю должна быть доступна возможность проверить работу сети не только при тестировании данных, но и при вводе своих данных.
Таким образом, «Нейроимитатор» должен выполнять следующие функции:
На рисунке 1.1 представлено схематическое
представление функций «
В настоящее время известно большое количество нейропакетов, выпускаемых рядом фирм и отдельными исследователями и позволяющих конструировать, обучать и использовать нейронные сети для решения практических задач [4], но большинство из них имеют минимум два недостатка: