Главная > Искусственные нейронные сети. Теория и практика
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

5.2. Нейропакет НейроПро (NeuroPro)

5.2.1. Общая характеристика

Программа NeuroPro является свободно распространяемой альфа-версией нейросетевого программного продукта для работы с искусственными нейронными сетями и извлечения знаний из таблиц данных с помощью нейронных сетей в среде Windows Разработчик - В. Г. Царегородцев, Институт вычислительного моделирования СО РАН, 660036, Красноярск-36, Академгородок, e-mail tsar@cc krascience rssi ru Возможности программы

1) Работа (чтение, запись, редактирование) с файлами данных, представленными в форматах dbf (СУБД dBase, FoxPro, Clipper) и db (СУБД Paradox)

Создание слоистых нейронных сетей для решения задач прогнозирования

• число слоев нейронов - до 10;

• число нейронов в слое - до 100;

• нейроны: с нелинейной сигмоидной функцией активации , крутизна сигмоиды может задаваться отдельно для каждого слоя нейронов

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

2) Обучение нейронной сети производится по принципу двойственного функционирования с применением одного из следующих методов оптимизации

• градиентного спуска;

• модифицированного РагТап-метода;

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

3) Тестирование нейронной сети.

4) Вычисление и вывод значимости входных сигналов сети.

5) Внесение случайных возмущений в веса синапсов сети.

6) Упрощение (контрастирование) нейронной сети:

• сокращение числа входных сигналов сети;

• сокращение числа синапсов сети;

• сокращение числа неоднородных входов (порогов) нейронов сети;

• равномерное прореживание структуры синапсов сети;

• бинаризация весов синапсов сети;

• генерация вербального описания нейронной сети.

Установка нейропакета производится после распаковки

содержимого архива NeuroPro.zip на жесткий диск (доступен в Интернет по адресу: http//www.bmstu.ru/facult/iu/iu4/rus/stat/book4/ NEUROPRO ZIP). Для установки программы необходимо запустить программу-инсталлятор Setup ехе, после чего будет произведено копирование следующих файлов:

• NeuroPro.exe - исполняемый файл,

• NeuroPro.hlp - файл справки;

• NeuroPro.cnt - служебный файл для справки;

• Readme.doc - краткое описание программы;

• UserGuide.doc - руководство пользователя;

• Boltz db - демонстрационный файл данных;

• Election.db - демонстрационный файл данных;

• Распространяемые файлы Borland Database Engine.

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

5.2.2. Главное меню

Меню программы содержит следующие пункты, относящиеся к нейронным сетям и работе с ними (рис. 5.7):

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

Рис. 5.7 (см. скан) Интерфейс программы NeuroPro

Нейросеть - операции с нейронными сетями. Операция выполняется над активной в данный момент в нейропроекте нейронной сетью (рис. 5.8) и включает в себя следующие опции.

• Обучение - обучение нейронной сети;

• Тестирование - тестирование нейронной сети;

• Сокращение числа входных сигналов - удаление наименее значимых входных сигналов;

• Сокращение числа синапсов - удаление наименее значимых синапсов сети;

• Сокращение числа неоднородных входов - удаление наименее значимых неоднородных входов нейронов сети,

• Равномерное упрощение сети - сокращение числа при ходящих на нейроны сети сигналов до заданного пользователем,

• Бинаризация синапсов сети - приведение значений весов синапсов и неоднородных входов нейронов к значениям -1 и 1,

• Вербализация - генерация вербального описания нейронной сети,

• Значимость входов - подсчет и отображение значимости входных сигналов нейронной сети,

• Возмущение весов синапсов - добавление случайных поправок к весам синапсов сети

Рис. 5.8 Операции пункта Нейросеть главного меню

Настройка - операции по настройке нейронной сети Настройки действуют в пределах нейропроекта, сохраняются в файле нейропроекта и восстанавливаются при его чтении программой (рис 5 9 и рис 5 10)

Опции данного пункта меню

• Метод оптимизации - выбор метода оптимизации для обучения сети Из трех реализованных в настоящее время в программе методов (градиентный спуск, модифицированный партан-метод (РагТап) и метод сопряженных градиентов) при создании нейропроекта автоматически предлагается РагТап (см прил 3)

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

Рис. 5.9 Опции пункта Настройка главного меню

Рис. 5.10 Опции пункта Настройка главного меню

5.2.3. Создание нейропроекта

Работа с нейронными сетями возможна только в рамках некоторого нейропроекта Для того, чтобы создать нейропроект, необходимо выбрать пункт меню Файл/Создать или нажать кнопку Создать на панели После создания нейропроекта в него можно вставлять нейронные сети и работать с ними Созданный нейропроект может быть сохранен при помощи команд меню Файл/Сохранить, Файл/Сохранить как, или нажатием кнопки Сохранить (рис 5 11)

Рис. 5.11 Окно сохранения нейропроекта

В дальнейшем возможна работа с сохраненными файлами нейропроекта Для этого необходимо выбрать пункт меню

Файл/Открыть или нажать кнопку Открыть и далее выбрать в диалоговом окне имя нужного нейропроекта (рис 5 12)

Рис. 5.12 Окно открытия нейропроекта

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

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

5.2.4. Создание нейронной сети

Для создания новой нейронной сети необходимо нажать кнопку Новая сеть в окне нейропроекта и заполнить Диалог создания нейронной сети

Диалог создания нейронной сети предназначен для задания спецификаций для создаваемой нейронной сети Элементы диалога (рис 5 13)

Рис. 5.13 (см. скан) Окно создания нейронной сети

Входы и выходы - окно для определения использования нейронной сетью имеющихся в файле данных полей

Поля в файле данных - список полей в файле данных

Использование поля - использование текущего поля нейронной сетью

• поле не числовое и недоступно сети - поле не является числовым и не может обрабатываться нейронной сетью,

• поле не используется сетью - данное числовое поле не используется сетью,

• поле является входным для сети - значения данного поля подаются на входы сети,

• поле является выходным для сети - нейронная сеть обучается прогнозировать значения этого поля

Диапазон изменения значений поля - минимальное и максимальное значение поля в файле данных

Оценивание поля - способ оценивания выходного поля при обучении сети

• МНК - используется оценка МНК,

• МНК с люфтом - используется оценка НК вида

где

- соответственно, выход по обучающей выборке и выход нейронной, - параметр алгоритма (люфт)

Люфт может изменяться от 0 до границ диапазона изменения значений этого поля По умолчанию люфт определяется в 10% от диапазона, при этом сеть должна обучиться предсказывать значения данного поля с точностью ±10% от диапазона изменения значений Чем меньше величина люфта, тем более точно должна сеть предсказывать известные значения

Параметры, автоматически определяемые программой

• Число входных полей - число полей в файле данных, используемых сетью в качестве входных

• Число входов сети - число входных сигналов сети

• Число выходных полей - число полей в файле данных, используемых сетью в качестве выходных

• Число выходов сети - число выходных сигналов сети

• Структура сети - окно для задания структуры нейронной сети (рис 5 14) Характеризуется следующими параметрами


Рис. 5.14 (см. скан) Окно Структура сети

• Число слоев нейронов - число слоев нейронов в сети Изменяется от 1 до 10 Дополнительно после последнего слоя нейронов создается слой выходных сумматоров с числом сумматоров, равным числу выходных сигналов сети По умолчанию предлагается 3 слоя нейронов Для каждого слоя нейронов возможно задание ниже рассмотренных характеристик

• Число нейронов - число нейронов в слое Изменяется от 1 до 100 По умолчанию предлагается 10 нейронов в слое

• Нелинейность - вид функции активации нейронов данного слоя На данный момент реализована только сигмоидная нелинейность вида где с - характеристика нейрона

• Характеристика - значение не обучаемой константы с, используемой нелинейным преобразователем Может изменяться в диапазоне от 0,0001 до 1 для описанной выше сигмоидной нелинейности По умолчанию предлагается значение характеристики, равное 0,1 Чем больше значение характеристики, тем лучше интерполяционные и экстраполяционные способности обученной сети но, как правило, это требует более длительного обучения

За последним слоем нейронов строится слой выходных сумматоров по числу выходных сигналов сети

• Монотонность - создание сети монотонной структуры

• Имя сети - имя нейронной сети в списке нейропроекта

Опции Создать/Изменение и Отменить позволяют соответственно создать нейронную сеть или внести изменения в ее параметры, или же отменить эти действия

После создания нейронной сети она появляется в списке сетей нейропроекта и становится активной Созданную нейронную сеть можно далее обучать, тестировать, упрощать и сохранять на диске вместе с нейропроектом

5.2.5. Обучение нейронной сети

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

завершить обучение нажатием кнопки Завершить, заменяющейся в случае удачного обучения кнопкой Готово (рис. 5.15).

Рис. 5.15 Окно обучения нейронной сети

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

Окно обучения и упрощения сети отображает следующие характеристики (рис. 5.16)

Рис. 5.16 Окно упрощения нейронной сети

• Число проходов задачника - общее число просмотров обучающего множества

• Число циклов обучения - общее число шагов обучения (шагов градиентного спуска, РагТап-шагов или шагов метода сопряженных градиентов)

• Действие - текущее действие.

• Градиент - вычисление градиента функции оценки.

• Increase - увеличение шага в направлении оптимизации.

• Decrease - уменьшение шага в направлении оптимизации

• Zero step - нулевой шаг в направлении оптимизации, прекращает процесс обучения или контрастирования сети

• Zero divide - нулевой делитель при параболической аппроксимации, прекращает процесс обучения или контрастирования сети

• Шаг - величина шага в направлении оптимизации

• Средняя оценка - средняя оценка на обучающем множестве

• Отконтрастировано входов - число отконтрастирован-ных входных сигналов сети. Здесь и далее информация выводится в виде из где X - число отконтрастированных входных сигналов (синапсов, нейронов) на текущем этапе упрощения, У - общее число отконтрастированных входных сигналов (синапсов, нейронов) у сети, Z - число имеющихся у сети входных сигналов (синапсов, нейронов)

• Отконтрастировано синапсов - число отконтрастированных синапсов и неоднородных входов нейронов сети.

• Бинаризовано синапсов - число бинаризованных синапсов и неоднородных входов нейронов сети.

• Отконтрастировано нейронов - число отконтрастированных в сети нейронов.

Завершить/Готово - кнопка принудительного завершения или подтверждения прекращения процесса обучения, или упрощения сети.

5.2.6. Тестирование нейронной сети

После обучения нейронной сети можно провести тестирование ее прогностических возможностей. Для этого нужно выбрать пункт меню Нейросеть/Тестирование Результат тестирования сети выводится в Окно тестирования сети (рис. 5.17) и

представляет собой выходные данные для нейронной сети, а также значения прогноза этих полей нейронной сетью Если для какой-либо строки в файле неизвестно значение выходного поля, то для этой записи будет выведен только прогноз сети Если у строки отсутствует хотя бы одно входное поле, прогноз сети будет отсутствовать

Рис. 5.17 Окно тестирования нейронной сети

5.2.7. Вычисление показателей значимости входных сигналов сети

Для вычисления показателей значимости входных сигналов нейронной сети необходимо выбрать пункт меню Нейросеть/Значимость входов Вычисленные показатели значимости выводятся в Окно значимости входов (рис 5 18)

Данное окно отображает текущую значимость входных сигналов для принятия сетью правильного решения Значимость (в относительных единицах) отображается в виде гистограммы, где наиболее значимому входу соответствует наиболее длинный столбец гистограммы Для отконтрастированных входных сигналов значимость равна О

Если отмеченное окно отображено на экране, и для данной нейронной сети запускается процесс упрощения, то это окно динамически изменяет отображаемые данные после каждого пересчета показателей значимости входных сигналов (на каждом шаге упрощения, т. е. при исключении входного сигнала или контрастировании/бинаризации синапса)

Рис. 5.18 Окно значимости входов нейронной сети

5.2.8. Упрощение нейронной сети

Не все входные сигналы сети и синапсы нейронов необходимы для правильного решения сетью задачи Часто можно достаточно существенно упростить сеть без ухудшения точности решения задачи Основными результатами проведения процесса упрощения сети являются следующие

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

• нейронную сеть более просто можно будет реализовать на аппаратной платформе,

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

Для упрощения нейронной сети имеются следующие операции в меню Нейросеть

• Сокращение числа входных сигналов - удаление наименее значимых входных сигналов

• Сокращение числа синапсов - удаление наименее значимых синапсов сети

• Сокращение числа неоднородных входов - удаление наименее значимых неоднородных входов нейронов сети.

• Равномерное упрощение сети - сокращение числа приходящих на нейроны сети сигналов до задаваемого пользователем.

• Бинаризация синапсов сети - приведение значений весов синапсов и неоднородных входов нейронов к значениям -1 и 1.

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

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

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

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

Диалог равномерного упрощения сети содержит следующие элементы:

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

• Упрощение - запускает процесс равномерного упрощения сети с заданным максимальным числом сигналов.

• Отменить - отменяет запуск процесса упрощения.

5.2.9. Вербализация нейронной сети

Для получения вербального описания текущей нейронной сети необходимо выбрать пункт меню Нейросеть/Вербализация. Вербальное описание сети выводится в Окно вербального описания сети (рис. 5.19). На основе вербального описания можно попытаться восстановить набор правил, используемых сетью для правильного решения задачи.

Рис. 5.19. Окно вербального описания нейронной сети

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

• поля базы данных БД (исходные симптомы) - имена полей файла данных, которые используются сетью в качестве входных;

• поля базы данных (конечные синдромы) - имена полей БД, значения которых прогнозирует нейронная сеть;

• предобработка входных полей БД для подачи сети - правила нормирования входных сигналов в диапазон [-1, 1] для подачи нейронной сети;

• функциональные преобразователи - описания используемых на каждом слое сети функциональных преобразователей нейронов;

• синдромы первого уровня - описание преобразования входных сигналов сети нейронами первого слоя сети;

• синдромы второго уровня - описание преобразования входных сигналов сети нейронами второго слоя сети (если у сети два и более слоев нейронов),

• конечные синдромы - описание вычисления значений прогнозируемых полей файла данных,

• постобработка конечных синдромов - правила нормирования выходных сигналов сети из диапазона [-1, 1] в диапазон истинных значений

Данное вербальное описание нейронной сети может быть сохранено на диске в текстовом файле

5.2.10. Правила работы с нейропакетом

Рассмотрим теперь правила работы с нейропакетом на примере задачи «Исключающее ИЛИ» Последовательность действий при этом такова

1) Подготовка исходных данных (обучающей выборки, задачника) Ранее отмечалось, что пакет NeuroPro использует данные, представленные в виде электронных таблиц форматов dbf (СУБД dBase, FoxPro, Clipper) и db (СУБД Paradox) А что делать, если отмеченные СУБД на компьютере пользователя не установлены? Срочно устанавливать? Необходимости в этом нет при наличии Excel Подготовим исходные данные в Excel, снабдив все столбцы соответствующими именами (рис 5 20)

Рис. 5.20 Таблица с данными обучающей выборки

Теперь выделим все ячейки, укажем их формат как числовой, например, с двумя знаками после запятой и после этого

сохраним таблицу, используя опцию меню Файл/Сохранить как, в формате dBase, например, под именем Xor dbf

2) Создание проекта Запустим нейропакет В появившемся окне программы с помощью опции меню Файл/Создать перейдем к окну вида рис. 5.21

Рис. 5.21 Окно создание новой нейронной сети

Нажмем кнопку Открыть файл данных и выберем файлы с расширением dbf и среди них - файл Xor dbf Откроем его, при том открытые окна приобретают вид рис. 5.22

Рис. 5.22 Вид окон нейропакета при подключении файла данных

Нажмем кнопку Новая сеть, подтвердим, что входы, выход сети, выберем МНК для оценивания поля, присвоим новой сети имя Хог и нажмем кнопку Структура сети В появившемся окне укажем число слоев нейронов - 1, число нейронов в слое - 2, после чего нажмем кнопку Создать Окно программы примет вид рис. 5.23

3) Обучение нейронной сети Теперь с помощью опции меню Нейросеть/Обучение или путем нажатия клавиши F9 запустим режим обучения нейронной сети По его окончании увидим окно, аналогичное показанному на рис 5 15 Нажмем кнопку Готово

4) Тестирование нейронной сети Через пункты меню Нейросеть/Тестирование запустим режим тестирования Результаты в появляющемся окне (рис 5 24) говорят о достаточно приемлемом качестве работы нейронной сети

Можно теперь делать что угодно выяснять значимость входов, пытаться упростить сеть, сохранить ее и т. п. Но можно перейти и к режиму ее использования, все же вначале сохранив обученную сеть (например, под именем Хог прр)

5) Использование обученной сети Подготовим какой-либо набор входных данных, также используя Excel, столбец для выходных данных снабдим только названием, но заполнять не будем (рис 5 25) Сохраним файл под именем Xortest в формате dbf

Рис. 5.23 Вид окна программы после создания структуры нейронной сети

Рис. 5.24 Результаты тестирования обученной нейронной сети

Рис. 5.25 Данные для опроса обученной нейронной сети

Запустим, далее, нейропакет и откроем (как описано выше) сохраненный нейропроект В появившемся окне нажмем кнопку Открыть файл данных и далее откроем файл Xortest dbf Перейдем в окно Нейронные сети и в меню выберем пункт Нейросеть/Тестирование Полученный результат приведен на рис. 5.26

Рис. 5.26 Результаты опроса нейронной сети

Как видно, данные результаты также можно считать удовлетворительными по точности

5.2.11. Общее суждение о нейропакете

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

• является русскоязычным,

• прост в изучении,

• имеет такие достоинства, как возможности упрощения сети и выявление наиболее (или наименее) значимых входов

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

<< Предыдущий параграф Следующий параграф >>
Оглавление