49919

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

Курсовая

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

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

Русский

2014-01-12

509 KB

29 чел.

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

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

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

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

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

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

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

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

 С.В. Русаков

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

 


 

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

84488. Механізми і закономірності передачізбудження в центральних синапсах 44.76 KB
  Аксосоматичні Аксоаксональні Аксодендритні Дендродендритичні Збудливі Гальмівні Хімічні Електричні Механізм передачі збудження через центральний аксосоматичний хімічний синапс полягає в наступному: ПД поширюється по мембрані аксона далі по мембрані пресинаптичній підвищення проникності пресинаптичної мембрани для іонів С2 вхід їх в нервове закінчення за градієнтом концентрації вихід медіатора в синаптичну щілину дифузія медіатора до постсинаптичної мембрани взаємодія з мембранними циторецепторами збільшення...
84489. Види центрального гальмування. Механізми розвитку пре- та постсинаптичного гальмування 43.78 KB
  Механізми розвитку пре та постсинаптичного гальмування. Гальмування активний фізіологічний процес. Гальмування в ЦНС Постсинаптичне Пресинаптичне За локалізацією За електрофізіологічною природою Гіперполяризаційне Деполяризаційне За будовою нейронних ланцюгів Зворотнє Пряме Постсинаптичне гіперполяризаційне гальмування.
84490. Сумація збудження і гальмування нейронами ЦНС 48.02 KB
  Взаємодія збудження та гальмування на тілі кожного окремого нейрона відбувається шляхом сумації просторової та часової. В залежності від переважання сумації ЗПСП чи ГПСП нейрон може перебувати в трьох станах: збудження характеризується генерацією ПД на мембрані аксонного горбика в результаті переважання сумації ЗПСП деполяризація мембрани дійшла до критичного рівня: чим інтенсивніше протікає сумація ЗПСП тим швидше деполяризація доходить до Екр тим частіше ПД в РРН тобто тим сильніше збудження нейрона. Таким чином за допомогою...
84491. Рухові рефлекси спинного мозку, їх рефлекторні дуги, фізіологічне значення 45.37 KB
  У складі задніх рогів спинного мозку переважають вставні нейрони. Біла речовина спинного мозку представлена волокнами висхідних та низхідних шляхів. Контроль на рівні спинного мозку Рецептори шкіри Вісцерорецептори ангіорецептори.
84492. Провідникова функція спинного мозку. Залежність спінальних рефлексів від діяльності центрів головного мозку. Спінальний шок 43.05 KB
  Біла речовина спинного мозку передні бокові та задні канатики складається з нервових волокон які формують провідні шляхи. Основними висхідними шляхами є: 1. Шлях Голя розташований в медіальній частині заднього канатика. Шлях Бурдаха розташований в латеральній частині заднього канатика.
84493. Рухові рефлекси заднього мозку, децеребраційна ригідність 48.79 KB
  Вони носять назву надсегментарних утворень так як впливають на мязи не прямо а через мотонейрони сегментарних структур рухові ядра спинного мозку і черепномозкових нервів. Задній мозок отримує і переробляє всю аферентну інформацію що надходить від спинного мозку оскільки всі специфічні висхідні шляхи від спинного мозку входячи в стовбур мозку задній та середній мозок віддають коллатералі гілочки до ретикулярної формації тут продовжується обробка аферентної інформації. В задньому мозку розміщені 4 вестибулярні ядра медіальне...
84494. Рухові рефлекси середнього мозку, їх фізіологічне значення 44.55 KB
  Середній мозок СрМ за участі сітчастої речовини опрацьовує аферентну інформацію яка поступає в спинний та задній мозок. Нова інформація поступає в СрМ від зорових та слухових рецепторів. На основі опрацьовання інформації від усіх цих рецепторів СрМ здійснює контроль за станом зовнішнього та внутрішнього середовища організма. Важливими надсегментарними руховими ядрами СрМ є: 1 червоні ядра від них інформація від нейронів спинного мозку передається по шляхах що перехрещуються руброспінальні шляхи елемент ЛНС; 2 ретикулярна формація;...
84495. Мозочок, його функції, симптоми ураження 44.3 KB
  Від вестибулорецепторів через вестибулярні ядра контроль за збереженням рівноваги при русі. Від всіх рухових ядер стовбуру ретикулярна формація краєві ядра. З руховими ядрами стовбуру ретикулярна формація вестибулярні ядра червоні ядра через які Мз здійснює вплив на мотонейрони і на мязи. З базальними ядрами.
84496. Таламус, його функції 43.44 KB
  Сенсорні перемикаючі специфічні ядра вони отримують інформацію від специфічних сенсорних шляхів переробляють її і передають в сенсорні зони КГМ. Неспецифічні вони отримують інформацію від ретикулярної формації стовбура мозку по шляхах больової чутливості. Вони передають інформацію до всіх зон КГМ здійснюючи на неї неспецифічний активуючий вплив. Асоціативні отримують інформацію від специфічних сенсорних перемикаючих ядер і від неспецифічних ядер таламуса.