Нейросетевые модели

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

Записка.docx

— 2.62 Мб (Скачать файл)
  • это коммерческие проекты, стоимость которых превышает уровень допустимого для оснащения учебной лаборатории;
  • эти проекты рассчитаны на профессионального пользователя, следовательно, только обучение использованию предлагаемых пакетов займет слишком много времени в учебном процессе.

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

STATISTICA Neural Networks предоставляет разнообразные функциональные возможности, для работы с очень сложными задачами, включающие не только новейшие архитектуры нейронных сетей и алгоритмы обучения, но также и новые подходы в отборе входных данных и построении сети. В системе STATISTICA Neural Networks реализованы все основные типы нейронных сетей, используемые при решении практических задач, в том числе:

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

В системе представлено множество  алгоритмов обучения, таких как:

    • обратное распространение ошибки;

    • Левенберга-Марквардта;

    • сопряженных градиентов;

    • быстрое распространение;

    • псевдо-обратный;

    • обучение Кохонена;

    • пометка ближайших классов;

    • обучающий векторный квантователь;

    • радиальная (под)выборка;

    • метод K-средних;

    • установка изотропных отклонений;

    • установка явных отклонений [5].

Как видно, STATISTICA – это мощный аппарат для исследования нейронных сетей, но его сложность и излишняя загруженность делают его неприменимым для решения поставленной задачи. Интерфейс данной системы представлен на рисунке 1.2.

Стоимость версии STATISTICA Base for Windows v.9: Коробочная версия (однопользовательская, английская версия) для образовательных учреждений, годовая подписка 15545.25 руб.

Другим примером подобных проектов может служить 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].

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

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

Пакет NeuroSolutions предназначен для моделирования большого набора нейронных сетей. Основное его достоинство состоит в гибкости: помимо традиционных нейросетевых парадигм (полносвязных и многослойных НС, самоорганизующихся карт Кохонена) нейропакет включает в себя мощный редактор визуального проектирования нейронных сетей, позволяющий создавать любые нейронные структуры и алгоритмы их обучения, а также вводить собственные критерии обучения. NeuroSolutions имеет хорошие средства визуализации структур, процессов и результатов обучения и функционирования нейронных сетей. Это ставит данный нейропакет на уровень CAD-систем (систем автоматизированного проектирования) проектирования и моделирования НС [6].

В пакете реализуется большой  перечень нейронов, включая взвешенный сумматор (нейрон первого порядка), нейроны высших порядков (с перемножением  входов), а также непрерывный интегрирующий  нейрон. Функция активации нейрона  может быть выбрана из пяти стандартных (кусочно-линейная, функция знака  и три типа сигмоидальных) функций, а также задана пользователем. Связи  между нейронами задаются произвольно  на этапе проектирования и могут  быть изменены в процессе работы. Поддерживаются все, типы связей: прямые, перекрестные и обратные. При этом хорошо реализована  схема организации связей: можно  задать одну векторную связь с  заданной весовой матрицей, а не набор скалярных связей с весовыми коэффициентами. Нейропакет NeuroSolutions содержит мощные средства для организации обучающих выборок.

Встроенные конверторы данных поддерживают графические изображения  в формате 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 имеет хорошую систему визуализации данных: структуры нейронной сети, изменения ошибки обучения, изменения  весов и их корреляции в процессе обучения. Последнее является уникальным свойством пакета и полезно при  анализе поведения сети [7].

Способ представления информации незначительно отличается от NeuroSolutions. На рисунке 1.5 представлен интерфейс данного пакета.

Стоимость пакета NeuralWorks Professional варьируется в пределах 9000р.

Рисунок 1.5 – Пример интерфейса системы NeuralWorks Professional

BrainMaker Pro является простым нейропакетом для моделирования многослойных нейронных сетей, обучаемых с помощью алгоритма обратного распространения ошибки. Основным его достоинством является большое число параметров настройки алгоритма обучения. Интерфейс данного пакета представлен на рисунке 1.6 и является, пожалуй, самым неудобным из всех рассмотренных пакетов.

В Москве частично русифицированный BrainMaker продается в «ТОРА-Центре» за 795 у.е

Вывод: ни один из рассмотренных нейроимитаторов не удовлетворяет требованиям для проведения лабораторных работ, таким образом, разработка Нейроимитатора радиально-базисной сети для проведения лабораторных работ по курсу «ОЭС» является актуальной.

 Рисунок 1.6 – Пример интерфейса системы BrainMaker Pro

    1. Выбор нейросетевой модели для решения задач классификации и прогнозирования

1.3.1 Классификация

При решении задач классификации  необходимо отнести имеющиеся статические  образцы (характеристики ситуации на рынке, данные медосмотра, информация о клиенте) к определенным классам. Возможно несколько  способов представления данных. Наиболее распространенным является способ, при  котором образец представляется вектором. Компоненты этого вектора  представляют собой различные характеристики образца, которые влияют на принятие решения о том, к какому классу можно отнести данный образец. Например, для медицинских задач в качестве компонентов этого вектора могут  быть данные из медицинской карты  больного. Таким образом, на основании  некоторой информации о примере, необходимо определить, к какому классу его можно отнести. Классификатор  относит объект к одному из классов  в соответствии с определенным разбиением N-мерного пространства, которое называется пространством входов, и размерность этого пространства является количеством компонент вектора.

Прежде всего, нужно определить уровень сложности системы. В  реальных задачах часто возникает  ситуация, когда количество образцов ограничено, что осложняет определение  сложности задачи. Возможно выделить три основных уровня сложности. Первый (самый простой) – когда классы можно разделить прямыми линиями (или гиперплоскостями, если пространство входов имеет размерность больше двух) – так называемая линейная разделимость. Во втором случае классы невозможно разделить линиями (плоскостями), но их возможно отделить с помощью  более сложного деления – нелинейная разделимость. В третьем случае классы пересекаются и можно говорить только о вероятностной разделимости [8]. На рисунке 1.7 представлены линейно и нелинейно разделимые классы.

 


 

 

 

 

 

 

Рисунок 1.7 – Линейно и нелинейно разделимые классы

Пусть задано некоторое множество  из U объектов: ,

и задано его разбиение на К непересекающихся подмножеств, называемых в дальнейшем классами:

Пусть каждый из объектов представляется набором числовых характеристик, называемым вектором признаков: x = (х1,x2,...,xV}Т .

Задача классификации заключается  в отыскании решающего правила, которое по заданному вектору  признаков x указывает, какому классу Ωi принадлежит соответствующий объект ω. Построение такого решающего правила эквивалентно разбиению метрического пространства признаков Х={х} на множество непересекающихся областей:

1.3.2 Использование нейронных  сетей в качестве классификатора

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

К сожалению, в применении нейронных  сетей в практических задачах  возникает ряд проблем. Во-первых, заранее не известно, какой сложности (размера) может потребоваться сеть для достаточно точной реализации отображения. Эта сложность может оказаться  чрезмерно высокой, что потребует  сложной архитектуры сетей. Так  Минский в своей работе "Персептроны" доказал, что простейшие однослойные нейронные сети способны решать только линейно разделимые задачи [9].

1.3.3 Прогнозирование

Информация о работе Нейросетевые модели