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

5.4. Нейропакет Neural Planner

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

Neural Planner - программная оболочка, позволяющая моделировать нейронные сети различной конфигурации Может работать под Windows как в сети, так и на локальном компьютере и не предъявляет особых требований к оборудованию Neural Planner предназначен для решения различных задач классификации объектов, обработки значений случайных процессов, решения некоторых математических задач, создания эффективных экспертных систем

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

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

Условно-бесплатная (shareware) версия пакета доступна в Интернет по адресу http //www simtel net/simtel net/win3/neural-pre html (файл Разработчик - S Wolstenholme (18 Seymour Road, Cheadle Hulme, Cheshire, SK8 6LR, UK, e-mail steve@tropheus demon со

5.4.2. Форматы файлов

Создаваемый пакетом файл, в котором хранится графическое изображение нейронной сети, имеет расширение ппр Кроме этого, в процессе обучения Neural Planner автоматически создает дополнительные файлы: сеть с самой низкой ошибкой (с расширением Мпр) и сеть с наилучшим результатом теста (с расширением .bnр). Обучение, опрос и тестирование сети осуществляется при помощи отдельного файла, имеющего расширение .tti (от первых букв английских слов training, testing, interrogating - обучение, тестирование, опрос). Этот файл состоит из трех разделов, в которых содержатся соответствующие векторы обучения, опроса и тестирования сети (в табличной форме). Каждый раздел создается и редактируется отдельно в своем диалоговом окне

Кроме этого, автоматически создается резервная копия сетевого файла, имеющего расширение .tbu.

5.4.3. Команды основного меню программы

Основное меню программы включает в себя следующие пункты: File (Файл), Edit (Редактирование), View (Просмотр), Control (Управление), Action (Действие), Display (Дисплей), Options (Опции). Окно, появляющееся при запуске Neural Planner, приведено на рис. 5.36.

Рис. 5.36 (см. скан) Основное окно программы

Пункт меню File (Файл) содержит стандартные базовые операции с файлами: New (Новый), Open (Открыть), Save... (Сохранить.,.),_Save As... (Сохранить как ..), Exit (Выход).

Команды пункта меню Edit (Редактирование)

• Add Input Neuron(s)

- добавить входной нейрон.

Add Hidden Neuron(s) - добавить скрытый нейрон.

• Add Output Neuron(s) - добавить выходной нейрон.

• Delete Neuron(s) - удалить нейрон.

• Add Synapse(s) - добавить синапс.

• Deletes Synapse(s) - удалить синапс.

• Connect Layers_- соединить слои (команда применяется для полного соединения двух слоев нейронов).

• Disconnect Layers - разъединить слои (команда применяется для полного разъединения двух слоев нейронов).

• Add Zones(s) - добавить зоны (команда добавляет прямоугольные зоны).

• Delete Zones(s) - удалить зоны (команда удаляет зоны).

• Call associated tti editor - вызвать ассоциированный tti редактор Команда вызывает какой-либо текстовый редактор или систему электронных таблиц для редактирования tti файлов

Пункт меню View (Просмотр) содержит команды для увеличения/уменьшения размеров отображаемых нейронов и синапсов Zoom In/Zoom Out), а также для задания максимального/минимального масштабов изображений (Max Zoom/Min Zoom).

Команда Control (Управление) вызывает диалоговое окно, позволяющее наблюдать за процессом обучения сети и управлять им (рис. 5.37).

Рассмотрим опции окна.

• Learning rate - коэффициент скорости обучения, параметр алгоритма обучения по методу обратного распространения ошибки.

• Momentum - импульс (или коэффициент импульса) определяет изменение веса синапса в текущем цикле обучения относительно изменения в предыдущем цикле.

• Target Error - целевая ошибка.

Следующие три опции активируются, если предусматривается тестирование сети.

• Cycles Per Test - определяет количество циклов обучения после каждого цикла теста нейронной сети.

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

• Target % Correct or in Range +/- % - обучение остановится, если полученный в процессе обучения процент правильных результатов больше заданного в данной опции теста.

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

Рис. 5.37 Диалоговое окно задания параметров процесса обучения

Команды пункта меню Action (Действия).

• Interrogate - позволяет опросить обученную сеть.

• Learn from File... -позволяет обучить сеть на основе векторов обучения, записанных в разделе Training tti файла.

• Smart-Start - интеллектуальный старт. Эта команда аналогична предыдущей, но здесь Neural Planner автоматически устанавливает параметры обучения, при которых средняя ошибка после одного цикла обучения будет наименьшей

• Create Network - создать сеть на основе существующего tti файла.

• Forget Learning - забыть обучение. Эта команда используется, если необходимо переобучить сеть, задав другие параметры обучения.

• Reset - сброс. При выполнении этой команды сбрасываются опции Lowest Error (Наименьшая ошибка) и Best Test (Наилучший тест).

Команды пункта меню Display (Дисплей) рассмотрены ниже.

Команды пункта Options фпции).

• Auto Refresh Display - автообновление дисплея, т. e. автоматическая регенерация дисплея при редактировании сети. Если эта опция отключена, результаты каких-либо действий не будут отображаться, пока не будут сохранены результаты изменений.

• Auto Delete Synapses - автоматическое удаление синапсов (входов), веса которых близки к нулю. - остановка, если 100% случаев меньше целевой ошибки Эту опцию необходимо установить, если векторы обучения сети должны совпадать с векторами опроса, например, когда все возможные задачи, решаемые такой сетью использовались и для ее обучения, в частности, при решении логических задач Когда сеть решает задачи одного класса, но не все возможные варианты вопросов входят в обучающую выборку, опция должна быть отключена.

• Learning Algorithm - алгоритм обучения. Опция позволяет выбрать один из двух обучающих алгоритмов, реализованных в Neural Planner: On-Line Back Propagation и Batch Back Propagation.

• Training Set Defaults - обучающая последовательность умолчанию. Если установлена эта опция, то при пропуске каких-либо компонент векторов обучения или опроса, они автоматически заменяются на минимальные, максимальные или средние значения из существующих компонентов.

• Graph - график. Опции этого пункта определяют вид графика изменения средней ошибки при обучении сети.

• Plot from start of learning - рисовать с начала обучения. Если установлена эта опция, график начинает изменяться как только начинается процесс обучения (установлена по умолчанию).

• Restart if scale change - перезапуск при изменении масштаба. Эта опция позволяет в процессе обучения автоматически перезапустить график, если изменился его масштаб. При этом предыдущие значения стираются. Если эта опция не установлена, то изменение масштаба показывается вертикальной линией от места его изменения.

• Step «X» only if «Y» changes - шаг по «X», если изменилось Если установлена эта опция движение по оси «X» осуществляется только в том случае, если изменилось значение

5.4.4. Работа с пакетом

1) Создание и редактирование нейронной сети.

Создать сеть в Neural Planner можно двумя способами. В первом, сначала создается -файл, а затем на его основе tti-файл. Второй способ позволяет сделать наоборот, сначала

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

Для того, чтобы воспользоваться первым способом, необходимо выбрать команду New/Network file из меню File. Для более удобного расположения нейронов, можно включить линии сетки на экране командой Background Grid из меню Display. Для непосредственного построения или редактирования сети необходимо далее воспользоваться командами меню Edit. Все действия по редактированию сети выполняются левой кнопкой мыши.

Пример сети приведен на рис. 5.38.

Рис. 5.38 (см. скан) Пример нейронной сети

При помощи команды Add Input Neuron(s) можно добавить входной нейрон (маркируется красным цветом). После выполнения этой команды нажатием левой кнопкой мыши добавляется входной нейрон на место, указанное курсором.

Аналогично при помощи команды Add Hidden Neuron(s) можно добавить нейрон скрытого слоя (маркируется зеленым цветом), а при помощи команды Add Output Neuron(s) - выходной нейрон (маркируется синим цветом).

Для удаления любого нейрона используется команда Delete Neuron(s). При этом для удаления нейрона сначала необходимо выбрать данную команду а затем пометить удаляемый нейрон.

При помощи команды Add Synapse(s) добавляется синапс между парой нейронов. Для этого сперва выбирается первый (левый) нейрон из пары, после этого помечается другой нейрон, и производится соединение. Любой нейрон остается выбранным, до тех пор, пока он не помечен второй раз.

Для удаления синапса необходимо воспользоваться командой Delete Synapse(s). При удалении синапса сначала помечается нейрон-источник, затем нейрон, с которым он соединен.

Если необходимо осуществить полносвязное соединение двух слоев нейронов, то можно воспользоваться командой Connect Layers. Для нормального, без обратной связи, соединения сначала выбирается предыдущий слой, затем последующий. Синапсы, обеспечивающие обратную связь, могут соединять слои только справа налево и только между скрытыми или выходными нейронами.

Для разъединения слоев нужно воспользоваться командой Disconnect Layers. Для разъединения нормального соединения сначала выбирается правый уровень, для разъединения обратной связи - левый уровень.

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

Для удаления зоны используется команда Delete Zones(s). После выбора этой команды достаточно щелкнуть мышью внутри зоны и она автоматически удалится.

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

Для того, чтобы создать сеть вторым способом, необходимо воспользоваться командой Create Network из меню Action. Для этого предлагается выбрать какой-либо tti-файл (как создавать такие файлы будет рассмотрено ниже). После выбора файла на его основе автоматически будет создана сеть, по умолчанию содержащая только один слой скрытых нейронов. Созданную таким образом сеть необходимо сохранить под тем же именем, что и tti-файл.

Заметим, что всю необходимую информацию о сети в целом и по каждому нейрону и синапсу в отдельности можно при помощи команд меню Display:

• Neuron Labels - метки нейронов. При выборе этой команды на экране появляются метки всех нейронов в текущей загруженной сети, но при этом обязательно должен существовать соответствующий tti файл.

• Neuron Activations - активации нейронов. При выборе этой команды появляются уровни активации всех нейронов. Чем длиннее полоса, тем выше уровень активации.

• Neuron Details - позволяет отобразить всю информацию о любом выбранном в сети нейроне (рис 5.39). Для того, чтобы это сделать, необходимо сначала выбрать команду, затем выбрать нейрон. Кроме того, можно, не покидая окна, выбрать другой нейрон, соединенный с предыдущим синапсом, нажав кнопку Next Synapse, или соседний нейрон кнопкой Next Neuron.

Рис. 5.39. Диалоговое окно Neuron Details

В окне отображается следующая информация:

• Туре - тип выбранного нейрона (input - входной, output - выходной, hidden - скрытый);

• Net Input - уровень входного сигнала;

• Activation - уровень активации в относительных единицах;

• Error - ошибка вычисления;

• Delta - разность между полученным выходом и требуемым (целевым);

• Bias - смещение нейрона;

• Zone - в какой зоне расположен выбранный нейрон;

• Weight - вес синапса в относительных единицах;

• Input - сумма всех весов синапсов, умноженных на входы нейрона;

• Product - вес синапса умноженный на входное значение.

• Synapse Weights - веса синапсов (входов). При выборе этой команды отображаются веса всех синапсов сети. При этом

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

• Network Details - детали сети. Эта команда позволяет в отдельном диалоговом окне отобразить всю информацию о любом выбранном нейроне (рис. 5.40):

• Neurons - количество нейронов;

• Synapse connections - количество соединений;

• Average error - средняя ошибка;

• Lowest error - наименьшая ошибка;

• Best test results - лучший результат тестирования;

• Total cycles - количество циклов обучения.

Рис. 5.40 Окно Network Details

• Network Zones - зоны сети. При выборе этой команды показываются все зоны, если сеть на них разбита.

Warning Messages - предупреждающие сообщения. При выборе этой команды подавляются все предупреждающие сообщения, выводимые программой.

2) Обучение нейронной сети

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

файл с расширением .tti. Файл состоит из четырех разделов: обучения, опроса, тестирования и ограничений.

Для того, чтобы создать новый файл обучения, тестирования и опроса, необходимо выбрать команду New/Training, Testing, Interrogating file (Новый файл обучения, тестирования, опроса) из меню File. После этого появится диалоговое окно, приведенное на рис. 5.41, в котором необходимо указать метки входных и выходных нейронов (разделы Inputs и Outputs).

Рис. 5.41. Диалоговое окно ввода меток нейронов

Метками могут служить любые символы или группы символов. После ввода каждой метки нажимается кнопка Add Input или Add Output. Удалить метку можно при помощи кнопки Remove. После ввода всех меток необходимо нажать кнопку Finish и сохранить файл. Кнопка Save используется, если редактируется уже существующий файл. В итоге формируется каркас tti-файла.

Для ввода в tti-файл векторов обучения нужно открыть требуемый раздел командой Open/Training File Section из меню File. В левую часть появившегося диалогового окна (рис 5.42) необходимо занести имя вводимого вектора, а в правую - значения его компонентов. Порядок ввода следующий: вводится имя вектора, нажимается кнопка New, затем в правой части окна символы «?» заменяются на значения компонентов, после ввода всех компонентов нажимается кнопка Replace. Кнопка Сору создает копию текущего вектора, указанного курсором. Кнопка Delete удаляет текущий вектор. После ввода всех векторов необходимо нажать кнопку Finish, и ввод будет завершен.

Рис. 5.42 Диалоговое окно ввода векторов обучения

Следует обратить внимание на автоматически появляющиеся вектора с именами Highs (Верхний), Lows (Нижний) и Dummy (Шаблон, Болванка). Компонентами двух первых векторов будут присвоены максимальные и минимальные значения из всех введенных, а компоненты вектора Dummy по умолчанию - нулевые (данный вектор следует удалить).

Перед началом процесса обучения необходимо выбрать один из двух обучающих алгоритмов. Алгоритм On-Line Back Propagation предусматривает вычисление ошибки после предъявления каждого вектора обучающей выборки внутри цикла обучения. Алгоритм Batch Back Propagation предусматривает вычисление ошибки после завершения каждого цикла обучения. Общих рекомендаций по выбору того, или иного алгоритма не существует.

Процессом обучения можно достаточно эффективно управлять при помощи опций диалогового окна Control (см. рис. 5.37). Рассмотрим эти опции и их влияние на процесс обучения.

Опция Learning rate (коэффициент скорости обучения) определяет скорость изменения веса синапсов в течение каждого цикла обучения сети. Значение Learning rate может изменяться в пределах от 0,1 до 1. Например, если задано значение 0,5, а первоначальное значение веса какого-либо синапса было 5, то в следующем цикле обучения значение веса может измениться не более, чем на или не менее, чем на Малый коэффициент замедляет процесс обучения, но делает его более

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

Опция Momentum (импульс) определяет величину изменения веса синапса относительно изменения в предыдущем цикле обучения. Значение Momentum может изменяться в пределах от О до 1. Например, если задано значение 0,5, а в предыдущем цикле обучения вес синапса изменился на 2,5, то в следующем цикле вес не может измениться более чем на 1,25. Маленький импульс будет замедлять обучение, но также повышает надежность сходимости процесса обучения, в то время как высокий импульс может приводить к колебаниям относительно оптимального направления спуска к нулевой ошибке. Очень большой импульс может иногда привести процесс обучения к локальному минимуму. Импульс может быть изменен в течение обучения

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

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

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

После того, как установлены все опции окна Control и выбран обучающий алгоритм, необходимо запустить процесс обучения сети при помощи команды Learning From File из меню Action. При выполнении команды появляется стандартное диалоговое окно, в котором необходимо выбрать соответствующий tti-файл. Перед началом обучения сеть автоматически проверяется на совместимость с tti-файлом. Критерием совместимости служат метки нейронов. Если метки в сети и в файле не совпадают, выдается сообщение об ошибке.

Одновременно с запуском процесса обучения на экране появляется окно, в котором отражаются все процессы, протекающие в сети при обучении (рис. 5 43).

Рассмотрим опции окна. В заголовке приводится тип обучающего алгоритма, далее - имя сетевого файла и имя обучающего файла. Ниже показывается график средней ошибки Ось «X» графика является безразмерной, ось «У» соответствует величине

средней ошибки. График можно отключить при помощи кнопки Graph.

Еще ниже в числовом виде отображаются средняя и целевая ошибки (Neural Planner периодически запоминает в файле с расширением Iпр сеть с наименьшей к текущему моменту ошибкой, показанной в опции Lowest Saved), процент векторов обучения, при прогнозе которых средняя ошибка меньше заданной целевой (Cases < Target).

Рис. 5.43 Окно, отображающее процесс обучения

Отметим, что для обучения сети можно воспользоваться также командой Smart-Start из меню Action Эта команда аналогична команде Learning From File, но здесь Neural Planner автоматически установит такие параметры окна Control, при которых обеспечивается минимальная средняя ошибка за один цикл обучения.

Редактирование tti-файла при помощи системы электронных таблиц MS Excel.

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

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

Таблица 5.1 (см. скан) Пример редактирования tti-файла

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

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

Напомним, что тестирование нейронной сети - это ее кратковременный опрос в процессе обучения. В процессе такого опроса сети предъявляются векторы тестирования, вычисляются

выходные значения и находится текущая ошибка на данном шаге обучения. Тестирование осуществляется при помощи векторов, занесенных в раздел теста tti-файла. Векторы тестирования могут совпадать с векторами обучения или быть другими, но с заранее известными выходными значениями. Раздел теста открывается при помощи команды Open/Testing File Section из меню File. Ввод векторов в этот раздел аналогичен вводу векторов обучения и опроса. Управлять процессом тестирования можно при помощи опций окна Control (рис. 5.37). Опция Cycles Per Test определяет количество циклов обучения, между каждым циклом теста нейронной сети (данной опции должно быть присвоено значение ноль, если тестирование не предусматривается). Опция Cycles Before Test определяет количество циклов обучения, которое должно быть завершено перед первым циклом теста нейронной сети (значение опции желательно устанавливать достаточно высоким, чтобы позволить сети находить оптимальное направление спуска к нулевой ошибке прежде, чем будет проведено тестирование; в противном случае тестирование не даст положительных результатов). Опция Target % Correct or in Range +/- % устанавливает целевой процент правильных результатов, при достижении которого обучение останавливается.

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

4) Опрос нейронной сети.

Для того, чтобы опросить сеть, необходимо предварительно ввести входные значения в специальный раздел tti-файла. Данный раздел открывается при помощи команды Open/Interrogating File Section из меню File. Ввод векторов опроса аналогичен вводу векторов обучения, но в разделе выходных значений сети необходимо оставить символ «?».

Опрос сети осуществляется командой Interrogate из меню Action. Перед опросом нужно загрузить раздел Interrogating (Опрос) tti-файла при помощи стандартного окна Open File, появляющегося при выборе команды. Результаты опроса, отображаются в соответствующем диалоговом окне, приведенном на рис. 5.44.

Окно содержит средства управления, позволяющие переключаться между входными векторами и изменять их значения. Входные значения сети можно изменить, используя опции Increase (Увеличение), Decrease (Уменьшение), Change (Изменение), Min (Минимальное) и Мах (Максимальное) значение. Переключаться между векторами опроса можно при помощи кнопок Next (Следующий)

Back (Предыдущий), First (Первый) и Last (Последний) Кнопки Seek High и Seek Low позволяют найти входные значения текущего вектора опроса, приводящие к самому высокому или низкому значению компонентов выходных векторов (при такой операции необходимо установить флажки в опциях Cycle (Цикл) и Real (Действительное значение).

Рис. 5.44. Диалоговое окно Interrogating

Любой протокол опроса можно записать в отдельный текстовый файл при помощи команды Save as.

5.4.5. Впечатления от работы с нейропакетом

Нейропакет Neural Planner 4.52 обладает некоторыми преимуществами по сравнению с ранее рассмотренными, в частности, он позволяет создавать нейронную сеть достаточно сложной структуры (в том числе, с обратными связями). Более простыми являются организация опроса нейронной сети и подготовка данных для обучения и тестирования.

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

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

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