Автор работы: Пользователь скрыл имя, 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
Рассмотрим более подробно этот алгоритм.
Наиболее распространен среди
неиерархических методов
Алгоритм -средних строит кластеров, расположенных на возможно больших расстояниях друг от друга. Основной тип задач, которые решает алгоритм -средних, - наличие предположений (гипотез) относительно числа кластеров, при этом они должны быть различны настолько, насколько это возможно. Выбор числа может базироваться на результатах предшествующих исследований, теоретических соображениях или интуиции.
Общая идея алгоритма: заданное фиксированное число кластеров наблюдения сопоставляются кластерам так, что средние в кластере (для всех переменных) максимально возможно отличаются друг от друга.
Выбирается число , и на первом шаге эти точки считаются «центрами» кластеров. Каждому кластеру соответствует один центр.
Выбор начальных центроидов может осуществляться следующим образом:
В результате каждый объект назначен определенному кластеру.
Вычисляются центры кластеров, которыми
затем и далее считаются
Процесс вычисления центров и перераспределения объектов продолжается до тех пор, пока не выполнено одно из условий:
На рисунке 1.10 приведен пример работы алгоритма -средних для равного двум.
Выбор числа кластеров является сложным вопросом. Если нет предположений относительно этого числа, рекомендуют создать 2 кластера, затем 3, 4, 5 и т.д., сравнивая полученные результаты.
Рисунок 1.10 – Пример работы алгоритма
Следующим шагом является проверка качества кластеризации.
После получения результатов
Достоинства алгоритма -средних:
На основании этого алгоритма активизируются центры RBF-сети, инициализируются функции [14].
После того, как подобраны центры радиальных элементов (по вышеописанному алгоритму), необходимо провести настройку синаптических весов нейронной сети. Одним из наиболее распространенных алгоритмов является алгоритм обратного распространения ошибки.
Градиентный метод обучения с учителем,
в котором используется алгоритм
обратного распространения
(1.6)
где – реальное выходное состояние нейрона выходного слоя;
– идеальное (желаемое) выходное состояние этого нейрона.
Функция - одна из функций активации нейронов скрытого слоя, рассмотренных в разделе 1.1 дипломного проекта и представленных в формулах (1.1), (1.2) и (1.3).
Минимизация ведется методом градиентного спуска, что означает подстройку весовых коэффициентов следующим образом:
(1.8)
Здесь – весовой коэффициент синаптической связи, соединяющей -ый нейрон скрытого слоя с -ым нейроном выходного слоя;
– коэффициент скорости обучения, .
На рисунке 1.9 представлена структура нейронной сети с одним выходным нейроном, в данном случае формула 1.8 приводится к виду
(1.9)
Для перерасчета коэффициентов в радиально-базисной сети воспользуемся следующими формулами [15].
Пусть – номер нейрона во входном векторе;
– номер нейрона в выходном векторе;
– номер нейрона в скрытом слое;
– номер вектора в обучающей выборке.
Тогда – входной вектор в обучающей выборке,
– выходной вектор в обучающей выборке.
На выходе нейрона скрытого слоя получим
Для примера подставим (1.1) в (1.9), получим:
На выходе нейрона выходного слоя получим:
В процессе обучения веса меняются следующим образом:
Сети на шаге 1 попеременно в
случайном порядке
Рассматриваемый алгоритм обучения нейронной
сети имеет несколько «узких мест».
Во-первых, в процессе обучения может
возникнуть ситуация, когда большие
положительные или
Доказательство сходимости обучения в процессе обратного распространения основано на вычислении производных, то есть приращении весов и, следовательно, скорость обучения должна быть бесконечно малой, однако в этом случае обучение будет происходить неприемлемо медленно. С другой стороны, слишком большие коррекции весов могут привести к постоянной неустойчивости процесса обучения.
Рисунок 1.11 наглядно демонстрирует процесс обучения при различных значениях скорости обучения.
В связи с этим в качестве обычно выбирается число меньше 1, но не очень маленькое (больше 0.1, поскольку слишком маленькое усугубит проблему нахождения локальных, а не глобальных экстремумов), и оно, в общем случае, может постепенно изменяться в процессе обучения [16]. Кроме того, для исключения случайных попаданий в локальные минимумы иногда, после того как значения весовых коэффициентов стабилизируются, кратковременно сильно увеличивают, чтобы начать градиентный спуск из новой точки. Если повторение этой процедуры несколько раз приведет алгоритм в одно и то же состояние нейронной сети, можно более или менее уверенно сказать, что найден глобальный минимум.
Рисунок 1.11 – Процесс обучения
при различных значениях
а)
UML (сокр. от англ. Unified Modeling Language — унифицированный язык моделирования) — язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML моделью. UML был создан для определения, визуализации, проектирования и документирования в основном программных систем.
В рамках языка UML все представления о модели сложной системы фиксируются в виде специальных графических конструкций – диаграмм. Процесс объектно-ориентированного анализа и проектирования неразрывно связан с процессом построения диаграмм. При этом совокупность построенных диаграмм является самодостаточной в том смысле, что в них содержится вся информация, которая необходима для реализации проекта сложной системы [17].
В процессе разработки UML-проекта осуществляется постепенный переход от анализа и проектирования к описанию реализации программы.
Построение диаграмм нейроимитатора
радиально-базисной сети для проведения
лабораторных работ по курсу «ОЭС»
было произведено с помощью CASE-
Диаграмма вариантов использования
описывает функциональное назначение
системы, то есть то, что система
будет делать в процессе своего функционирования.
Диаграмма вариантов
Разработка диаграммы
Суть данной диаграммы состоит в следующем: проектируемая система представляется в виде множества сущностей или актантов(actor), взаимодействующих с системой с помощью так называемых вариантов использования. При этом актантом (actor) или действующим лицом называется любая сущность, взаимодействующая с системой извне. Это может быть человек, техническое устройство, программа или любая другая система, которая может служить источником воздействия на моделируемую систему так, как определит сам разработчик. В свою очередь, вариант использования (use case) служит для описания сервисов, которые система предоставляет актанту. Другими словами, каждый вариант использования определяет некоторый набор действий, совершаемый системой при диалоге с актантом. При этом ничего не говорится о том, каким образом будет реализовано взаимодействие актантов с системой.
Помимо актантов и вариантов использования, данная диаграмма содержит:
Отношения – описывающие взаимодействия экземпляров одних актантов и вариантов использования с экземплярами других актантов и вариантов. В языке UML имеется несколько стандартных видов отношений между актантами и вариантами использования:
Отношение ассоциации – служит для обозначения специфической роли актанта в отдельном варианте использования.
Отношение расширения – определяет взаимосвязь экземпляров отдельного варианта использования с более общим вариантом, свойства которого определяются на основе способа совместного объединения данных экземпляров. Отношение расширения является направленным и отмечает тот факт, что один из вариантов использования может присоединить к своему поведению некоторое дополнительное поведение, определенное для другого варианта использования.