49919

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

Курсовая

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

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

Русский

2014-01-12

509 KB

24 чел.

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

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

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

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

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

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

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

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

 С.В. Русаков

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

 


 

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

19469. Понятие и виды юридических лиц 23.5 KB
  Понятие и виды юридических лиц. Юридическое лицо́ организация имеющая в собственности хозяйственном ведении или оперативном управлении обособленное имущество в соответствии с которым отвечают по обязательствам. Виды. Юр.Лица бывают: Коммерческие Тов...
19470. Понятие и классификация вещей 30.5 KB
  Понятие и классификация вещей Вещи – объекты гражданских прав имеющие материальную осязаемую форму товара – имеют следующую классификацию: – недвижимые объекты перемещение которых затруднено в связи с их особой связью с землей земельные участки леса здания...
19471. Основні види архітектури ВМ 14.02 KB
  Основні види архітектури ВМ. По разрядности интерфейсов и машинных слов: 8 16 32 64 128 разрядные ряд ЭВМ имеет и иные разрядности По особенностям набора регистров формата команд и данных: CISC RISC VLIW; По количеству центральных процессоров: однопроцессорные многопроцесс
19472. Основные характеристики ЭВМ 15.34 KB
  Основные характеристики ЭВМ быстродействие. Оно часто измеряется в единицах которые называются ФЛОПС – количество арифметических операций в секунду. Первые ЭВМ имели быстродействие в несколько сотен ФЛОПС современные суперЭВМ достигают скорости в несколько десят...
19473. Режим роботы компьютеров 14.84 KB
  Существует несколько режимов работы ЭВМ эти режимы имеют свои преимущества и недостатки. Монопольный режим – один пользователь решает одну задачу. Это исторически первый режим работы ЭВМ. Первые машины были спроектированы только на такую работу. Этот режим отличаетс
19474. Арифметико-логічний пристрій (АЛП) 13.06 KB
  Арифметикологічний пристрій АЛП. Так називається пристрій для цілочислових операцій. Арифметичні операції такі як додавання множення і ділення а також логічні операції OR AND ASL ROL і ін. обробляються за допомогою АЛП. Ці операції складають переважну більшість програмн...
19475. Структура центрального процессора 14.1 KB
  Центральный процессор основное устройство ЭВМ которое наряду с обработкой данных выполняет функции управления системой: инициирование вводавывода обработку системных событий управление доступом к сновной памяти и т.п. Организация центрального процессора ЦП опр
19476. Архітектура системи команд(АСК) 26 KB
  Архітектура системи командАСК Архітекту́ра систе́ми кома́нд електронної обчислювальної машини складова частина архітектури ЕОМ яка включає інформацію про: 1.набір машинних команд перелік та семантику операцій які здатна виконувати обчислювальна машина 2.дос
19477. Архітектура шин 28 KB
  Архітектура шин Компю́терна ши́на англ. computer bus служить для передачі даних між окремими функціональними блоками компютера і є сукупністю сигнальних ліній які мають певні електричні характеристики і протоколи передачі інформації. Шини можуть розрізнятися розрядніст...