Автор работы: Пользователь скрыл имя, 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.4)
Для динамических систем доказана следующая теорема Такенса: Если временной ряд порождается динамической системой, т.е. значения есть произвольная функция состояния такой системы, существует такая глубина погружения (примерно равная эффективному числу степеней свободы данной динамической системы), которая обеспечивает однозначное предсказание следующего значения временного ряда. Таким образом, выбрав достаточно большое , можно гарантировать однозначную зависимость будущего значения ряда от его предыдущих значений:
(1.5)
т.е. предсказание временного ряда сводится к задаче интерполяции функции многих переменных. Нейросеть далее можно использовать для восстановления этой неизвестной функции по набору примеров, заданных историей данного временного ряда.
Напротив, для случайного ряда знание прошлого ничего не дает с точки зрения предсказания будущего. Поэтому, согласно теории эффективного рынка, разброс предсказываемых значений ряда на следующем шаге при погружении в лаговое пространство не изменится [11].
Прогнозирование на нейронных сетях обладает рядом недостатков. Как правило необходимо не менее 100 наблюдений для создания приемлемой модели. Это достаточно большое число данных и существует много случаев, когда такое количество исторических данных недоступно.
Однако, необходимо отметить, что возможно построение удовлетворительной модели на нейронных сетях даже в условиях нехватки данных. Модель может уточняться по мере того, как свежие данные становится доступными.
Другой недостаток нейронных моделей – значительные затраты по времени и другим ресурсам для построения удовлетворительной модели, известно, что обучение сети может занимать довольно много времени. Однако, несмотря на перечисленные недостатки, модель обладает рядом достоинств. Существует удобный способ модифицировать модель по мере того как появляются новые наблюдения.
Способности нейронной сети к прогнозированию
напрямую следуют из ее способности
к обобщению и выделению
Для адекватного выбора подходящей нейросетевой модели, необходимо рассмотреть классификацию существующих моделей нейронных сетей
Можно провести следующую классификацию нейронных сетей:
Характерная особенность таких сетей - наличие блоков динамической задержки и обратных связей, что позволяет им обрабатывать динамические модели.
Эти сети применяются в системах управления движущимися объектами.
Обучение с учителем предполагает,
что для каждого входного вектора
существует целевой вектор, представляющий
собой требуемый выход. Вместе они
называются обучающей парой. Обычно
сеть обучается на некотором числе
таких обучающих пар. Предъявляется
выходной вектор, вычисляется выход
сети и сравнивается с соответствующим
целевым вектором. Далее веса изменяются
в соответствии с алгоритмом, стремящимся
минимизировать ошибку. Векторы обучающего
множества предъявляются
Примером является многослойный персептрон.
При обучении без учителя раскрывается внутренняя структура данных или корреляции между образцами в наборе данных. Выходы нейронной сети формируются самостоятельно, а веса изменяются по алгоритму, учитывающему только входные и производные от них сигналы. Это обучение называют также неуправляемым. В результате такого обучения объекты или примеры распределяются по категориям, сами категории и их количество могут быть заранее не известны. Обучение без учителя является намного более правдоподобной моделью обучения с точки зрения биологических корней искусственных нейронных сетей. Развитая Кохоненом и многими другими, она не нуждается в целевом векторе для выходов и, следовательно, не требует сравнения с предопределенными идеальными ответами. Обучающее множество состоит лишь из входных векторов. Обучающий алгоритм подстраивает веса сети так, чтобы получались согласованные выходные векторы, т. е. чтобы предъявление достаточно близких входных векторов давало одинаковые выходы. Процесс обучения, следовательно, выделяет статистические свойства обучающего множества и группирует сходные векторы в классы.
Примером сетей такого типа может служить самоорганизующаяся карта Кохонена.
Способ постановки эксперимента, в ходе которого испытуемая система (агент) обучается, взаимодействуя с некоторой средой. Откликом среды (а не специальной системы управления подкреплением, как это происходит в обучении с учителем) на принятые решения являются сигналы подкрепления, поэтому такое обучение является частным случаем обучения с учителем, но учителем является среда или ее модель.
Примером является сеть Хопфилда.
В графическом виде классификация нейронных сетей представлена на рисунке 1.8.
Рисунок 1.8 – Классификация нейронных сетей
Обучение радиально-базисных нейронных сетей осуществляется при помощи комбинированных методов. На первом этапе проводится предварительная кластеризация для определения эталонных векторов с использованием алгоритмов обучения без учителя. На втором этапе происходит вычисление значений весов связей нейронов скрытого слоя с нейронами выходного слоя в общем случае с помощью алгоритмов обучения с учителем.
Радиально-базисные сети (RBF) – это сети прямого распространения, без обратных связей, с одним промежуточным слоем.
Сети, использующие радиальные базисные функции (RBF-сети), являются частным случаем двухслойной сети прямого распространения. Каждый элемент скрытого слоя использует в качестве активационной функции радиальную базисную функцию, обычно типа гауссовой. Радиальная базисная функция (функция ядра) центрируется в точке, которая определяется весовым вектором, связанным с нейроном. Как позиция, так и ширина функции ядра должны быть обучены по выборочным образцам. Обычно ядер гораздо меньше, чем обучающих примеров. Каждый выходной элемент вычисляет линейную комбинацию этих радиальных базисных функций.
Сеть типа радиальной базисной функции имеет промежуточный слой из радиальных элементов, каждый из которых воспроизводит гауссову поверхность отклика. Поскольку эти функции нелинейны, для моделирования произвольной функции нет необходимости брать более одного промежуточного слоя [13].
Для моделирования любой функции необходимо лишь взять достаточное число радиальных элементов. Остается решить вопрос о том, как следует скомбинировать выходы скрытых радиальных элементов, чтобы получить из них выход сети.
Для этого достаточно взять их линейную комбинацию (т.е. взвешенную сумму гауссовых функций). Сеть RBF имеет выходной слой, состоящий из элементов с линейными функциями активации. Обобщенная структура сети представлена на рисунке 1.9. Таким образом, выход RBF сети является линейной комбинацией некоторого набора базисных функций.
RBF-сети имеют как ряд достоинств (компактность, быстрая обучаемость), так и недостатков. Например, с «групповым» представлением пространства модели связано неумение сетей RBF экстраполировать свои выводы за область известных данных: при удалении от обучающего множества значение функции отклика быстро падает до нуля.
Применительно к аналитическим моделям в целом, обучение – процесс подбора параметров аналитической модели, который осуществляется на экспериментальных данных. Обучение является итеративной процедурой, где на каждом шаге модели предъявляется объект данных из обучающей выборки и в соответствии с правилом, называемым алгоритмом обучения, производится корректировка свойств модели. Обучение продолжается до тех пор, пока модель не достигнет состояния, позволяющего выполнять требуемое преобразование.
Рисунок 1.9 – Обобщенная структура радиально-базисной сети
После того, как модель обучена и протестирована, ее можно использовать для практического применения.
Обычно, обучение RBF-сети происходит в несколько этапов. Сначала определяются центры и отклонения для радиальных элементов, затем оптимизируются параметры линейного выходного слоя. (В случае применения гибридного алгоритма, обучение происходит по-другому).
Расположение центров должно соответствовать кластерам, реально присутствующим в исходных данных. Рассмотрим два наиболее часто используемых метода.
– каждая обучающая точка «относилась» к одному центру кластера и лежала к нему ближе, чем к любому другому центру;
– каждый центр кластера был центроидом множества обучающих точек, относящихся к этому кластеру.
После того, как определено расположение центров, нужно найти отклонения. Величина отклонения (ее также называют сглаживающим фактором) определяет, насколько «острой» будет гауссова функция. Если эти функции выбраны слишком острыми, сеть не будет интерполировать данные между известными точками и потеряет способность к обобщению. Если же гауссовы функции взяты чересчур широкими, сеть не будет воспринимать мелкие детали. На самом деле, сказанное - еще одна форма проявления дилеммы пере/недообучения.