Автор работы: Пользователь скрыл имя, 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
Рассмотрим наиболее яркиех примеры подобных программ.
STATISTICA Neural Networks предоставляет разнообразные функциональные возможности, для работы с очень сложными задачами, включающие не только новейшие архитектуры нейронных сетей и алгоритмы обучения, но также и новые подходы в отборе входных данных и построении сети. В системе STATISTICA Neural Networks реализованы все основные типы нейронных сетей, используемые при решении практических задач, в том числе:
В системе представлено множество алгоритмов обучения, таких как:
Как видно, STATISTICA – это мощный аппарат для исследования нейронных сетей, но его сложность и излишняя загруженность делают его неприменимым для решения поставленной задачи. Интерфейс данной системы представлен на рисунке 1.2.
Стоимость версии STATISTICA Base for Windows v.9: Коробочная
версия (однопользовательская, английская
версия) для образовательных
Другим примером подобных проектов может служить NeuroIterator.
По сравнению с STATISTICA NeuroIterator имеет гораздо менее наглядный интерфейс, представленный на рисунке 1.3.
Основное назначение нейроимитатора NeuroIterator - исследование нейронных сетей, однако, он может найти свое применение и в качестве нейросетевого классификатора или нейросетевой системы прогнозирования.
Рисунок 1.2 – Пример интерфейса системы STATISTICA Neural Networks
Рисунок 1.3 – Пример интерфейса системы NeuroIterator
Данный нейроимитатор написан на Borland C++ 5.02 с использованием библиотеки классов OWL 2.X и является приложением Windows 95/98. Нейроимитатор позволяет исследовать формируемые нейронные сети, нейронные сети с формируемой матрицей межнейронных связей и обучаемые нейронные сети.
Нейроимитатор NeuroIterator позволяет обучить нейронную сеть с прямыми связями распознавать образы методом обучения с обратным распространением ошибки (back propagation online и back propagation randomized) либо научить сеть выделять устойчивые признаки во входных образах по методу Хебба или по методу конкуренций [6].
Для обучения нейронной сети одним
из вышеуказанных методов
В свободном доступе находится только демонстрационная версия программы, стоимость полной версии разработчиками не указана.
Пакет NeuroSolutions предназначен для моделирования большого набора нейронных сетей. Основное его достоинство состоит в гибкости: помимо традиционных нейросетевых парадигм (полносвязных и многослойных НС, самоорганизующихся карт Кохонена) нейропакет включает в себя мощный редактор визуального проектирования нейронных сетей, позволяющий создавать любые нейронные структуры и алгоритмы их обучения, а также вводить собственные критерии обучения. NeuroSolutions имеет хорошие средства визуализации структур, процессов и результатов обучения и функционирования нейронных сетей. Это ставит данный нейропакет на уровень CAD-систем (систем автоматизированного проектирования) проектирования и моделирования НС [6].
В пакете реализуется большой
перечень нейронов, включая взвешенный
сумматор (нейрон первого порядка),
нейроны высших порядков (с перемножением
входов), а также непрерывный
Встроенные конверторы данных поддерживают графические изображения в формате BMP, текстовые файлы с числовыми или символьными данными, а также функции непрерывного аргумента (например, времени), заданные в аналитическом виде или в виде выборки значений.
На этапе обучения может быть использован широкий круг критериев обучения, как дискретных, так и непрерывных. Помимо этого можно вводить собственные критерии. Можно использовать как встроенный алгоритм обучения типа back-propagation или дельта-правила, так и использовать собственный. Система визуализации процесса обучения позволяет проводить анализ изменения весов непосредственно в процессе обучения и вносить коррективы. Может быть введена шумовая характеристика как при тестировании, так и при обучении нейронной сети. Можно задать аддитивный белый шум, шум произвольной природы, а также любой заданный тип шума (например, белый мультипликативный). NeuroSolutions содержит генератор (мастер) стандартных нейросетевых архитектур (Neural Wizard, с помощью которого быстро задается архитектура, подбирается обучающая выборка, критерии и методы обучения нейронной сети.
Интерфейс данного пакета представлен на рисунке 1.4.
Рисунок 1.4 – Пример интерфейса системы NeuroSolutions
Как видно из рисунка, без специального обучения работа с данным пакетом представляет некоторую сложность.
Стоимость пакета NeuroSolutions составляет в среднем 6000р.
Нейропакет NeuralWorks Professional II/Plus
NeuralWorks Professional является мощным средством для моделирования нейронных сетей. В нем реализованы 28 нейронных парадигм, а также большое количество алгоритмов обучения. Дополнительный модуль UDND (User Define Neural Dynamics) позволяет создавать собственные нейронные структуры.
Как и NeuroSolutions, NeuralWorks Professional
имеет хорошую систему
Способ представления
Стоимость пакета NeuralWorks Professional варьируется в пределах 9000р.
Рисунок 1.5 – Пример интерфейса системы NeuralWorks Professional
BrainMaker Pro является простым нейропакетом для моделирования многослойных нейронных сетей, обучаемых с помощью алгоритма обратного распространения ошибки. Основным его достоинством является большое число параметров настройки алгоритма обучения. Интерфейс данного пакета представлен на рисунке 1.6 и является, пожалуй, самым неудобным из всех рассмотренных пакетов.
В Москве частично русифицированный BrainMaker продается в «ТОРА-Центре» за 795 у.е
Вывод: ни один из рассмотренных нейроимитаторов не удовлетворяет требованиям для проведения лабораторных работ, таким образом, разработка Нейроимитатора радиально-базисной сети для проведения лабораторных работ по курсу «ОЭС» является актуальной.
Рисунок 1.6 – Пример интерфейса системы BrainMaker Pro
При решении задач классификации
необходимо отнести имеющиеся статические
образцы (характеристики ситуации на рынке,
данные медосмотра, информация о клиенте)
к определенным классам. Возможно несколько
способов представления данных. Наиболее
распространенным является способ, при
котором образец представляется
вектором. Компоненты этого вектора
представляют собой различные характеристики
образца, которые влияют на принятие
решения о том, к какому классу
можно отнести данный образец. Например,
для медицинских задач в
Прежде всего, нужно определить
уровень сложности системы. В
реальных задачах часто возникает
ситуация, когда количество образцов
ограничено, что осложняет определение
сложности задачи. Возможно выделить
три основных уровня сложности. Первый
(самый простой) – когда классы
можно разделить прямыми
Рисунок 1.7 – Линейно и нелинейно разделимые классы
Пусть задано некоторое множество из U объектов: ,
и задано его разбиение на К непересекающихся подмножеств, называемых в дальнейшем классами:
Пусть каждый из объектов представляется набором числовых характеристик, называемым вектором признаков: x = (х1,x2,...,xV}Т .
Задача классификации
Сети с прямой связью являются универсальным
средством аппроксимации
К сожалению, в применении нейронных сетей в практических задачах возникает ряд проблем. Во-первых, заранее не известно, какой сложности (размера) может потребоваться сеть для достаточно точной реализации отображения. Эта сложность может оказаться чрезмерно высокой, что потребует сложной архитектуры сетей. Так Минский в своей работе "Персептроны" доказал, что простейшие однослойные нейронные сети способны решать только линейно разделимые задачи [9].