49919

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

Курсовая

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

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

Русский

2014-01-12

509 KB

27 чел.

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

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

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

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

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

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

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

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

 С.В. Русаков

«_____» 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 с.

 


 

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

78869. Концепция социальной рациональности Макса Вебера 29 KB
  Концепция социальной рациональности Макса Вебера. Вебер внёс существенный вклад в такие области социального знания как общая социология методология социального познания политическая социология социология права социология религии экономическая социология теория капитализма. Свою концепцию Вебер называл понимающей социологией. Вебер в этом плане решительно расходится с Дюркгеймом полагая что реальным действующим лицом может быть не мифическое коллективное сознание государство или класс а конкретный индивид.
78870. Феноменологическая программа исследования знания 32.5 KB
  Феномен и логос учение о феноменах явлениях это обозначение философского движения появившегося в начале 20 века а также своеобразной практики осмысления пытающейся проникнуть к истокам человеческого опыта и познания. Ее отличительными чертами являются: нацеленность на вскрытие и приведение к непосредственной очевидности тех пластов нашего опыта которые в обыденной жизни остаются незримыми зачастую будучи основанием зримых; экспликация и истолкование смыслового содержания этого опыта и его сущностных структур; преимущественно...
78871. Герменевтический подход в социально-гуманитарном познании 29 KB
  Рикер понимает теорию операций понимания в их соотношении с интерпретацией текстов; слово герменевтика означает не что иное как последовательное осуществление интерпретации. Таким образом нужно установить соотношение между понятиями интерпретации и понимания. Цель понимания совершить переход от этого выражения к тому что является основной интенцией знака и выйти вовне через выражение. Согласно Дильтею виднейшему после Шлейермахера теоретику герменевтики операция понимания становится возможной благодаря способности которой наделено...
78872. Марксистский подход к исследованию социальной реальности 31.5 KB
  Базис или способ производства материальных благ или экономическая формация = производительные силы производственные отношения. Производительные силы ресурсы и средства обеспечивающие процесс производства. Производственные отношения выражается в различных формах собственности на средства производства. Классы в узком смысле слова социальные группы различающиеся по отношению к средствам производства.
78873. Образ науки в постмодернизме 13.99 KB
  Постмодернизм эту проблему пытается решить посвоему быть может осознавая себя не как конец философии а как переходное состояние между закатом и рассветом. На первый план в этой философии выходят проблемы языка новой субъективности иронии культуры цитат и кавычек. Понимание мира как хаоса сопряжено в философии постмодернизма с отказом от установки на целостность закономерность мира. Картина реальности в философии постмодерна состоит из симулякров не имеющих оснований во внешней реальности симулякры точные копии оригинал...
78874. Роль социально-гуманитарных наук в процессе соц трансформаций 13.58 KB
  Напротив ей присуща роль разрушителя мнимого всезнания и фиктивной уверенности. Используя науку по образу обыденного сознания мир с ее помощью заколдовывается вновь. Задача же социального теоретика на сегодняшний день состоит не только в производстве нового знания доставляющего новые возможности но и в разрушении фиктивных ожиданий обыденного сознания от сферы управления. Только разрушая мнимое всезнание наука может осуществить свою функцию производства нового знания.
78875. Жизнь как кактегория наук об обществе и культуре 13.83 KB
  Для Дильтея философия это рефлексия жизни на самое себя а переживание чувство жизни жизненный опыт жизненное отношение обозначают внутреннее восприятие нашей души самодостоверность внутреннего опыта единственный прочный и неприкосновенный фундамент. Он руководствовался главным принципом познать жизнь из нее самой и стремился представить мышление и познание как внутренне присущие жизни полагая что в ней самой формируются объективные структуры и связи с помощью которых осуществляется ее саморефлексия. Не менее значимым...
78876. Проблема истины в социально-гуманитарных науках 13.21 KB
  Проблема истины в социально-гуманитарных науках. При рассмотрении проблемы истины важно уяснить специфику ее классической неклассической и пост-неклассической трактовки а также особенности современного понимания ряда частных вопросов: ситуативность и объективный характер истин социально-гуманитарных наук; их взаимосвязь с социальной реальностью; экзистенциально-антропологический подход к истине в гуманитарном знании. Классическая концепция во-первых понимает под истиной соответствие наших знаний объекту; во-вторых предполагает возможность...
78877. Соц философия и ее методологическое значение для соц-гум наук 13.38 KB
  Соц философия и ее методологическое значение для соцгум наук Социальная философия составная часть любой философской системы важнейшая философская дисциплина которая оказывала огромное влияние на эволюцию общественного сознания и социальной практики на всех этапах исторического развития общества. Значение социальной философии как общей методологии познания общественных явлений определяется следующими тремя основными функциями: вопервых социальная философия ориентирует познание с субъектной стороны то есть ценностей потребностей целей...