49919

Разработка инструментальной среды для проектирования и выполнения нейропроектов

Курсовая

Информатика, кибернетика и программирование

В течение последних 10 лет искусственные нейронные сети получили широкое распространение в качестве инструмента для решения различных задач анализа данных и распознавания образов. Разработать универсальный инструментарий при помощи которого можно создавать различные нейропроекты приложения использующие нейронные сети как универсальные так и специализированные. Модули для работы сетями включают в себя модуль для работы со структурой сети модули реализующие различные алгоритмы обучения а также модули содержащие...

Русский

2014-01-12

509 KB

25 чел.

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РОССИЙСКОЙ ФЕДЕРАЦИИ

Государственное образовательное учреждение высшего профессионального образования

"Пермский государственный университет"

Кафедра прикладной математики и информатики

Разработка инструментальной среды для проектирования и выполнения нейропроектов

(курсовая работа)

«К ЗАЩИТЕ ДОПУСТИТЬ»

Зав. кафедрой прикладной математики и информатики, д. ф.-м. н., профессор

 С.В. Русаков

«_____» 20__ г.

Работу выполнил студент
группы 3,4-03
IV курса механико-математического факультета

                     Ф.М. Черепанов

Научный руководитель,  д. т. н.,  профессор:


        
                 Л.Н. Ясницкий

«_____» 20__ г.

Пермь 2007

Содержание

[0.1] Содержание

[0.2] ВВЕДЕНИЕ

[0.3] 1. Нейросетевая библиотека  для Delphi (DNNL)

[0.3.1] 1.1 Структура библиотеки

[0.3.2] 1.2 Формат описания нейросетевой модели

[0.3.3] 1.3 Визуализация

[0.3.4] 1.4 Функциональные возможности

[0.3.5]
1.5. COM – ориентированный вариант библиотеки DNNL

[0.4]
2. Нейропроекты с использованием библиотеки DNNL

[0.4.1] 2.1. Лабораторные работы

[0.4.2]
2.2. Нейросимулятор

[0.4.3] 2.3 Практическое применение

[0.5]
ЗАКЛЮЧЕНИЕ

[0.6]
Библиографический список

[0.7]  


ВВЕДЕНИЕ

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

Существующие решения можно разделить на три группы:

1. Надстройки для программ прикладных вычислений, такие как:

Matlab_Neural_Network  – набор нейросетевых расширений для пакета прикладных вычислений Matlab.

Разработчик: MathWorks, Inc.

Statistica_Neural_Networks – набор нейросетевых расширений для пакета прикладной статистики Statistica.

Разработчик: StatSoft, Inc.

Excel_Neural_Package – набор библиотек и скриптов для электронных таблиц Excel, реализующие некоторые возможности нейросетевой обработки данных.

Разработчик: ООО «НейрОК»

2. Универсальные нейросетевые пакеты:

NeuroSolutions – нейропакет  предназначен для моделирования широкого круга искусственных нейронных сетей.

Разработчик: NeuroDimension, Inc.

NeuroPro – менеджер обучаемых искусственных нейронных сетей.

Разработчик: Институт вычислительного моделирования СО РАН, Красноярск. Россия; Царегородцев В. Г.

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

Разработчик: NeuralWare, Inc.

3. Специализированные:

Neuroshell Trader – самая известная программа создания нейронных сетей для анализа рынков.

Разработчик: Ward Systems Group, Inc.

Глаз – используется для обработки аэрокосмической информации.
Разработчик: НейроКомп

К недостаткам приложений первой группы можно отнести:

- высокую стоимость самой среды, в которую включены функции, которые очень маловероятно понадобятся при работе с нейронной сетью.

- необходимость приобретения самой надстройки.

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

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

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

Цель работы:

1. Разработать универсальный инструментарий, при помощи которого можно создавать различные нейропроекты  (приложения, использующие нейронные сети), как универсальные, так и специализированные.

2. При помощи разработанного инструментария создать и применить на практике универсальный и специализированный нейропроекты.


1. Нейросетевая библиотека  для Delphi (DNNL)

1.1 Структура библиотеки

Для достижения первой цели было решено дополнить интегрированную среду разработки Delphi библиотекой  процедур и функций для работы с нейронными сетями. Назовем эту библиотеку DNNLDelphi Neural Net Library. Учитывая требования разнородности решаемых задач, библиотеку DNNL  целесообразно разделить на модули.

Будем использовать три группы модулей:

- модули для работы с данными

- модули для работы с сетями

- модули визуализации

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

Модули для работы сетями включают в себя модуль для работы со структурой сети, модули, реализующие различные алгоритмы обучения, а также, модули, содержащие различные функции активации.

Модули визуализации служат для построения графиков, отображения структуры сети, отображения зависимости входных и выходных сигналов.

Таким образом, чтобы добавить в приложение какую либо функцию активации или алгоритм обучения достаточно подключить к нему соответствующий модуль.

1.2 Формат описания нейросетевой модели

Первое что необходимо было сделать – это разработать формат описания нейросетевой модели, который бы служил для следующих целей:

- для обмена информацией между модулями библиотеки.

- для обмена информацией между приложениями, использующими данную библиотеку, а также для обмена информацией со сторонними приложениями.

- для сохранения и загрузки.

 Таким образом под форматом описания нейросетевой модели понимается формализованный язык, который позволяет записывать в явном виде всю информацию о модели, необходимую для ее корректного сохранения, восстановления и последующего использования. Этот же формат используется и в качестве обменного, т.е. позволяющего осуществлять обмен информации между модулями приложений и самими приложениями.  

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

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

Укажем причины выбора именного языка XML.

XML (eXtensible Markup Language) — предназначен для хранения структурированных данных для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки, иногда называемых словарями.

Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет.

Ниже перечислены его основные возможности:

  •  XML - это язык, одновременно понятный и человеку и компьютеру;
  •  XML широко используется для хранения и обработки документов;
  •  иерархическая структура XML подходит для описания практически любых типов документов;
  •  XML представляет собой простой текст, свободный от лицензирования и каких-либо ограничений, и  не зависит от платформы;
  •  Уже накоплен большой опыт работы с языком и созданы специализированные приложения, см. например рис. 1.

Рис. 1. Редактор XML встроенный в Delphi

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

1.3 Визуализация

Библиотека DNNL предоставляет пользователю широкие графические возможности, такие как отображение структуры сети в реальном времени в 2-х и 3-х мерных вариантах; визуализация процесса обучения посредствам графического изображения различных характеристик, таких как средняя ошибка обучения, максимальная ошибка обучения, ошибки классификации и др. ; визуализация выхода сети; вывод графиков активационных функций. Для вывода графики используется библиотека OpenGL входящая в стандартную поставку Windows.

1.4 Функциональные возможности

Таким образом, библиотека DNNL добавляет в среду Delphi следующие функции, предназначенные для использования при разработке нейропроектов:

  •  Подключение к базам данных.
  •  Поддержка распространенных форматов файлов хранения данных.
  •  Предварительный статистический анализ данных.
  •  Анализ данных при помощи нейросети.
  •  Создание нейронной сети произвольной архитектуры с любым числом слоев, и числом нейронов в слое.
  •  Обучение сети встроенными алгоритмами.
  •  Тестирование нейронной сети на файле данных, получение статистической информации о точности решения задачи.
  •  Вычисление показателей значимости входных сигналов сети.
  •  Визуализация нейронной сети.
  •  Выбор алгоритма обучения, назначение требуемой точности прогноза, настройка нейронной сети.
  •  Возможность назначения различных функции активации, не только на каждый слой сети, но и на каждый отдельный нейрон.
  •  Возможность назначения различных функции рандомизации, на каждый слой и нейрон.
  •  Задание собственных функций активации.
  •  Возможность остановки и возобновления процесса обучения.
  •  Отслеживание состояния сети, как во время обучения, так и после его завершения.
  •  Единый формат хранения данных, сетевых конфигураций, параметров обучения.


1.5. COM – ориентированный вариант библиотеки DNNL

Библиотека DNNL наряду с достоинствами имеет и ряд недостатков:

  •  Возможно, использовать только с Delphi.
  •  Для использования библиотеки в Delphi нужна предварительная настройка самой среды, а также настройка использующего её приложения.
  •  Увеличение размера исполняемого файла.
  •  При изменении библиотеки необходима перекомпиляция всех использующих ее приложений.

Для устранения этих недостатков было решено создать COM – ориентированный вариант библиотеки, который назовем СOM_NNL (COM Neural Net Library).

Как известно, аббревиатура COM расшифровывается как "Component Object Model" – Модель Компонентных Объектов. Это стандарт, описывающий как должны работать интерфейсы объекта, включая такие вопросы, как, например, работа с памятью или многопоточностью, и каким образом приложения могут использовать компоненты, созданные в стандарте COM. COM является стандартом, независимым от языка программирования и независимым от аппаратного окружения.

СOM_NNL – это библиотека, которая представляет собой объектную оболочку для произвольного набора функций библиотеки DNNL. Она может быть использована в приложениях, написанных на Delphi, Microsoft Visual Studio, VBA и других средствах программирования, поддерживающих COM расширения.

Ниже на рис.2 представлен пример использования COM-библиотеки в электронных таблицах Excel.

Рис. 2. Пример на использование COM – библиотеки в VBA.


2. Нейропроекты с использованием библиотеки DNNL

2.1. Лабораторные работы

Примером создания специализированного нейропроекта является комплекс лабораторных работ, для школьников и студентов, изучающих основы искусственного интеллекта. Цель лабораторных работ –  изучение классической теории нейронных сетей.

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

На рис.3 приведено рабочее окно лабораторной работы №1.

Рис. 3. Рабочее окно лабораторной работы №1

При нажатии клавиши «Задание» выводится страница, содержащая тему работы, задание и интерфейс, пользуясь которым школьник выполняет лабораторную работу. При необходимости школьник может вызвать необходимый для выполнения работы теоретический материал.

 

Лабораторная работа №1

 

Тема

Моделирование логических функций с помощью однонейронного персептрона

 

Задание

Подобрать параметры персептрона (w1, w2, θ), моделирующего функции:

·          Логическое И (AND),

·          Логическое ИЛИ (OR),

·          Исключающее ИЛИ (XOR).

Для каждой логической функции подобрать два различных набора параметров персептрона (w1, w2, θ), обеспечивающих её моделирование.

 

Входы и выходы нейронной сети

Входной вектор содержит два элемента x1 и x2, над которыми производятся логические операции. Выходной вектор содержит один элемент y – результат операции.

 

Интерфейс

1.     Выбор типа моделируемой функции

2.     Кнопка запуска выполнения вычислений

3.     Поле, содержащее  сообщение о результате решения задачи;

4.     Таблица значений логической функции, соответствующей выбранному типу решаемой задачи; Таблица с выходными данными и ошибкой. Таблица формируется после выполнения вычислений

5.     Параметры персептрона:

·     w1 – первый весовой коэффициент

·     w2 – второй весовой коэффициент

·     θ – порог;

6.     Иллюстрация решаемой задачи, содержит схему персептрона, график функции активации и суммирующую формулу, по которой персептрон выполняет вычисления

 

    На рис. 4 приведено рабочее окно лабораторной работы №2: «Моделирование логических функций при помощи многослойного персептрона», а на рис.5 – пример решения проблемы «Исключающее ИЛИ» выполненного в рамках лабораторной работы.

Рис. 4. Рабочее окно Лабораторной работы №2.

Рис. 5. Проблема «Исключающее ИЛИ», решенная при помощи многослойного персептрона (Лабораторная работа №2).


2.2. Нейросимулятор

“Нейросимулятор” – программа, которая была разработана на замену устаревшему Neuro-simulator. Это небольшая программа для проведения практических лабораторных работ с широкой номенклатурой названий. По существу, она представляет собой оболочку для некоторых функций библиотеки DNNL. Несмотря на кажущуюся простоту Нейросимулятор может быть применен не только в образовательных целях, но и в решении широкого круга практических задач.

Интерфейс Нейросимулятора представляет собой окно с тремя вкладками:

  •  Проектирование сети”.
  •  Обучение”.
  •  Вычисления”.

Первая вкладка “Проектирование сети” предназначена для  проектирования сети. На ней же расположена панель управления проектом (Рис. 6).

На панели “Управление проектом” расположены кнопки

  •  “Сохранить проект”.
  •  “Загрузить проект”.
  •  “Сбросить настройки”.

При нажатии кнопки “Сохранить проект”  сохраняется конфигурация сети, весовые коэффициенты обученной сети, данные обучающей и тестовой выборки, и прочие настройки.

Для загрузки ранее сохраненного проекта  используется кнопка “Загрузить проект”.

Кнопка “Сбросить настройки” служит для возврата к стандартным настройкам.

На панели “Входной слой” задается количество  нейронов входного слоя, а также активационная функция этого слоя.

Содержание и назначение панели “Выходной слой” аналогично предыдущей, но она предназначена для настройки выходного слоя.

На панели «Скрытые слои» можно задать количество скрытых слоев и их функцию активации.

По умолчанию каждый скрытый слой содержит по два нейрона. Изменить количество нейронов на любом скрытом слое позволяет панель “Количество нейронов”

Рис. 6. Вкладка “Проектирование сети”

Каждая функция активации снабжена окном конфигурации, на котором приводится её формула и график. Также это окно позволяет настроить параметры функции, при их наличии (Рис. 7).

Рис. 7. Настройка функции активации

Второй по счету вкладкой является вкладка “Обучение”, предназначенная для управления процессом обучения спроектированной сети.

Рис. 8. Настройка функции активации

Вкладка “Обучение” позволяет:

  •  Задать, или загрузить из файла обучающее множество.
  •  Экспортировать данные в EXCEL.
  •  Выбрать алгоритм обучения и задать его параметры.
  •  Задать правило нормализации данных.
  •  Задать правило начальной инициализации весов сети (Рис. 9).

Рис. 9. “Настройка функции рандомизации”.

После нажатия кнопки “Обучить сеть” производиться обучение сети и вывод графиков максимальной и средней ошибки по эпохам, с возможностью трассировки. Существует возможность сохранения графиков для последующего сравнения (Рис.10).

Рис. 10. Анализ ошибки обучения

После успешного обучения сеть можно протестировать, как на примерах используемых при обучении, так и на примерах, которые в обучении не использовались.

Рис. 11. Вкладка “Вычисления”

2.3 Практическое применение

В настоящее время комплекс лабораторных работ находится на стадии разработки и апробации. Апробация проводилась при проведении лабораторных занятий при изучении дисциплины “Искусственный интеллект”, который читается студентам специальности «прикладная математика» ПГУ, а также при изучении дисциплины «Интеллектуальные информационные системы», который читается студентам специальности «прикладная информатика в экономике» ПГПУ.

Кроме того, программа Нейросимулятор использовалась в качестве основного инструмента при выполнении курсовых работ студентами указанных специальностей ПГУ и ПГПУ:

    ● «Нейросетевой детектор лжи» – К.Лупало, студент 4-го курса ПГУ,

     «Оценка риска выдачи кредита населению» – Н.Федосеева, студентка 3-го кураса ПГУ.

    ● «Оценка недвижимости» – М.Лукина, студентка 3-го курса ПГУ.

    ● «Оценка банковского риска» – Е Волегова, студентка 4-го курса ПГПУ.

    ● «Прогнозирование курса Евро» – О.Костарева, студентка 4-го курса ПГПУ.

        ● «Выбор профессии» – Е.Кочева, студентка 4-го курса ПГПУ.

        ● «Оценка стоимости подержанных автомобилей» – Н.Леонтьева, студентка 4-го курса ПГПУ.

        ● «Оценка эффективности бизнес-плана» – Е.Росторгуева, студентка 4-го курса ПГПУ.

        ● «Прогнозирование котировок акций «Лукойл» – И.Чумакова, студентка 4-го курса ПГПУ.

        ● «Выбор супружеской пары» –  Дашкевич, студентка 3-го курса ПГПУ.

        ● «Оценка стоимости ноутбуков» – Аторкина, студентка 3-го курса.


ЗАКЛЮЧЕНИЕ

1. Разработан универсальный инструментарий «Библиотека DNNL», при помощи которого можно создавать различные нейропроекты  (приложения, использующие нейронные сети), как универсальные, так и специализированные.

2. При помощи разработанного инструментария созданы и применены на практике:

- cпециализированный нейропроект: Лабораторные работы для проведения практических занятий для школьников и студентов, изучающих основы искусственного интеллекта;

- универсальный нейропроект: Нейросимулятор, являющийся оболочкой для создания нейросетей персептронного типа.

- Лабораторные работы и Нейросимулятор применяются при проведении лабораторных и курсовых работ студентами ПГУ и ПГПУ.


Библиографический список

  1.  Ясницкий Л.Н. Введение в искусственный интеллект./ Л.Н.   Ясницкий // М.: Издательский центр «Академия», 2005. – 176 с.
  2.  Хайкин С. Нейронные сети: полный курс, 2-е издание. Пер. с анг.. / С.  Хайкин //  М.: Издательский дом “Вильямс”, 2006. 1104 с.
  3.  Каллан Р. Основные концепции нейронных сетей. Пер. с анг.. / Р.  Каллан //  М.: Издательский дом “Вильямс”, 2001. 287 с.

 


 

А также другие работы, которые могут Вас заинтересовать

25246. Поняття трансцендентальної єдності аперцепції у Канта 25.5 KB
  Зв’язок багатоманітного не міститься в чистій формі чуттєвого споглядання це дія виключно розсуду. – вищий принцип всякого застосування розсуду і об’єктивна умова всякого пізнання – це те завдяки чому все дане в спогляданні багатоманітне об’єднується в понятті про об’єкт.Ап застосування категорій розсуду до чуттєвого споглядання призводить до конструювання для люд. – другий вид синтезу чуттєвого матеріалу поруч з категоріями який є властивим розсуду.
25247. Поняття трансцендентальної єдності апперцепцій у філософії Канта 21.5 KB
  – є трансцендентальна єдність самосвідомості тобто така що передує досвіду і утв можливість апріорногодо досвідного пізнання. Кант поєднує в нову структуру суть якої – коли б свідомість була не єдиною а мозаїчною то окремі властивості об’єкта потрапляли б у різні її незалежні частини і синтез їх став би неможливим а саме в ньому і полягає пізнання. Синтетична єдність свідомості є об’єктивною умовою будьякого пізнання.
25248. Принципи і основні положення екзистенційної діалектики Кіркегора 27.5 KB
  Принципи і основні положення екзистенційної діалектики Кіркегора. Субєктивна екзистенціальна діалектика Кіркегора виростає як протиставлення системі Гегеля де людина підвладна анонімному принципу історичного розвитку втрачає свою індивідуальність. ЕД виявляється у Кіркегора способом зберегти особистісне відношення людини і Бога на шляху до якого людина проходить три стадії: естетичну етичну та релігійну.
25249. Філософія та світогляд 24 KB
  Філософія – форма теоретичного розвитку світогляду. Три типи світогляду: Буденний формується умовами життя та передається з покоління в покоління за допомогою досвіду. Отже філософія певний тип світогляду хоча всі люди мають світогляд але не кожна людина виходить на філософських рівень у світоглядних орієнтуваннях. Звідси випливає що філософія постає як теоретична форма світогляду.
25250. Філософія неокантіанства: основні течії 28 KB
  Основна його мета – розвиток і перетворення трансцендентальної філософії Канта. Розпочався близько 1860х років ініціаторами були представники академічних кіл зокрема: Герман Гольмгольц фізіолог та фізик Куно Фішер історик філософії Отто Літман професор філософії та ін. Зокрема Віндельюандт ґрунтуючись на філософії Канта зазначає що критична філософія – це наука про необхідні та загально значимі визначення цінностей. Вона запитує: чи існує наука якій із загальною значимістю притаманна цінність істини Чи існує мораль якій із...
25251. Основні форми теорії та принципи її побудови 28 KB
  Основні форми теорії та принципи її побудови. У більш вузькому розумінні – вища найрозвинутіша форма організації наукового знання що дає цілісне уявлення про закономірності та суттєві звязки певної області дійсності – предмету даної теорії. Інші форми наукового знання – закони класифікації типології первинні пояснювальні схеми – можуть передувати та складати базу теорії. Сукупність певних тверджень та понять аксіом та методологічних принципів їх взаємодії складають певний базис теорії.
25252. Суперечка між універсалістами та комунітаристами в сучасній політичній філософії 23.5 KB
  Якщо ж переходити до сучасності то Роулз намагався реконструювати кантіанські принципи де є пріоритет права над благом. Тобто Роулз та його прибічники ліберали намагаються відшукати загальний консенсус та розмірковують над зародками світового громадянського правового ладу. Метою Роулза є втілити принципи всезагальної справедливості у реальне життя та зробити суспільство стабільним. Роулз у Теорії справедливості€ навіть пропонує у вихідній позиції представити що не знаєте свого віку статі соціального походження.
25253. Соціальна філософія Франкфуртської школи 27 KB
  Подібну думки висловлює і Маркузе в роботі Одномірна людина. Одномірна людина керується такою ж бідною та плоскою філософією. На думку Еріха Фрома людина народжується тоді коли він розриває первісні зв’язки з природою що характеризують тваринне існування. Розірвавши їх людина стає одинокою що змушує її обрати 1 із 2х можливих шляхів: скоритися іншому або скорити іншого.