Универсальный нейропакет
Графический нейросетевой редактор-имитатор
Александр Кириченко

© Александр Кириченко, 2019

ISBN 978-5-0050-9645-6

Создано в интеллектуальной издательской системе Ridero

Универсальный  нейросетевой редактор – имитатор

MemBrain – мощный графический нейросетевой редактор – имитатор для Microsoft Windows, поддерживающий искусственные нейросети произвольного размера и архитектуры. Редактор-имитатор выполнен в виде программы freeware. Тексты нейропакета доступны в Интернет на немецком и английском языках. Его адрес:

http://www.membrain-nn.de/english/download_en.htm.

Назначение и возможности пакета MemBrain

Основные характеристики пакета MemBrain позволяют:

– Передачу подготовленных нейросетей в промышленные программные системы (динамические библиотеки dll) или автоматическую генерацию C-Code обученной нейросети.

– Формирование «на-лету» результатов обучения нейросети на заранее подготовленных данных;

– Обучение «с учителем» и «без учителя»;

– Моделирование сложных нейросетей с учётом временных связей и динамики их изменения;

– Внедрение объектов высокой сложности с учётом языка сценариев.

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

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

Большинство приложений связано с отображением корреляции между входами и выходами неизвестных или недостаточно известных данных в искусственных нейронных сетях. Целью является способность предсказания выходов системы на основе тестирования входов без знания передаточной функции. Знание этих функций часто невозможно совсем, или по крайней мере недоступно для получения законными средствами.

Исключительно важное требование для достижения этой цели – достаточное количество вводимых и выходных пар данных, которые могли быть получены из реальной системы или могли уже быть доступны из исторических записей. Эти данные могут быть импортированы в MemBrain и могут быть использованы для обучения искусственных нейронных сетей.

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

Используя MemBrain, такая сеть может легко быть преобразована в промышленные системы, независимо от того, являются они основными или вложенными системами.

Основные системы могут использовать dll – версию MemBrain для загрузки и обучения нейросетей из файлов. Dll так же позволяет проводить обучение сетей вместе с пользовательскими приложениями.

Для вложенных систем MemBrain даёт возможность использовать встроенный исходный кодовый генератор C, который позволяет генерировать код, ограниченый типичными требованиями вложенных систем: небольшой объём используемой памяти и отказ от динамического распределения памяти.

Из-за своих гибких дисплейных свойств MemBrain применим как для больших сетей, использующих много нейронов и связей, так же и для небольших сетей, состоящих только из нескольких нейронов и может быть использован для подробного обследования, которое производится на самом низком уровне.

MemBrain использует мощный язык C++, как язык описания, который позволяет описать всё – от простых пакетных процессов до сложных управляющих программ для того, чтобы автоматически запускать часто используемые последовательности операторов или чтобы достигать определённого потребителем поведения.

Программа MemBrain и все связанное с ней вспомогательное программное обеспечение включая MemBrain DLL, распространяются по принципу «как есть». Никакая гарантия, любого типа, ни – явная или неявная, не даётся.

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

Учебные материалы

Основной учебник MemBrain находится в файлах MemBrain_Help. pdf и MemBrain.chm. Его оглавление содержит следующие разделы:

Кроме того, учебные материалы есть и в других файлах: MemBrain Examples.chm и Popko MEMBRAIN ARTIFICIAL NEURON NETWORK. pdf.

Сетевые возможности пакета

Пакет MemBrain предусматривает работу с различными видами нейросетей:

И может реализовать работу с нестандартными нейросетями, например:

Перевод базовых разделов документации

Документация находится в файле MemBrain. pdf и MemBrain.chm. Сайт нейропакета: http://www.membrain-nn.de/

Установка настроек пакета

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

Следующие установки задаются в меню <View> при начале работы:

– <View> <Show Links>: checked

– <View> <Show Activation Spikes On Links>: unchecked

– <View> <Show Fire Indicators>: unchecked

– <View> <Use Display Cache>: checked

– <View> <Black Background>: unchecked (тёмный фон нужен лишь для демонстрации активационных шипов)

– <View> <Snap To Grid>: checked

– В меню <Teach> щёлкнуть функцию <Set Teach Speed…>. Установить 0 ms <OK>

– В меню <Edit> щёлкните по <Default Properties…> и проверьте. Это будут установки по умолчанию при старте MemBrain впервые.

– В <Edit Neuron Properties> желательна начальная установка:

После щелчка по <Appearance…>:

– Выделить: Показывать имя и активацию

В <Normalization…> выбрать, использовать или нет Нормализацию:

В <Edit Link Properties> определить, нужно ли показывать веса связей:

В <Customize Activation Functions> устанавливается активационная функция:

Настройки экрана

MemBrain предлагает несколько вариантов отображения, доступных через меню <View>. Галочка под опциями в меню показывает их текущее состояние активации.

– <Вид> <Показать ссылки> Если активирован, то ссылки отображаются на экране. В противном случае ссылки и порты подключения нейронов скрыты. Вы можете выбрать ссылки, только если они отображаются. Тем не менее, вы можете соединить нейроны всеми способами, которые не требуют ручных операций подключения, даже если ссылки в настоящее время не отображаются.

– <Вид> <Показать шипы активации в ссылках> Если активирован, то активационные шипы отображаются по ссылкам.

– <Вид> <Показать индикаторы огня> Если активировано, то нейроны показывают желтую точку на своем выходном разъеме каждый раз, когда они запускаются (выдают сигнал <> 0).

На следующих рисунках показан нейрон, который в данный момент работает.

– На первом рисунке опция <Вид> <Показать ссылки> деактивирована, поэтому входной разъем не отображается.

– Второе изображение – это результат отображения, если опция активирована.

– <View> <Show Winner Neuron>

Если Show Winner Neuron активирован, то выходной нейрон с наивысшей (нормализованной) активацией указывается после каждого шага Think следующим образом:

Это может использоваться, например, для определения нейрона-победителя на самоорганизующейся карте (SOM).

• <Вид> <Рисовать ссылки на переднем плане> Если эта опция установлена, то ссылки отрисовываются перед нейронами. Иначе они отображаются как находящиеся позади нейронов. Этот параметр также применяется к отображаемым шипам активации в ссылках.

• <Вид> <Показать информацию о слое> Информация о слое для каждого нейрона может быть отображена и скрыта с помощью этого пункта меню. Смотрите здесь для более подробной информации.

• <Вид> <Использовать кэш отображения> Когда вы активируете эту опцию, MemBrain подготавливает содержимое экрана к следующему обновлению экрана во внутреннем кэше и перетаскивает его на экран за один раз. Это обеспечивает обновление дисплея без мерцания, но может быть немного медленнее в некоторых ситуациях. Тем не менее, иногда лучше не использовать кэш дисплея, потому что при работе с большими сетями вам может потребоваться увидеть прогресс в обновлении дисплея, чтобы увидеть, что происходит.

• <Вид> <Черный фон (только с дисплеем кэша)>

Эта опция выбирает черный фон для дисплея, который может улучшить визуальный внешний вид некоторых сетей, особенно когда отображаются пики активации и сеть моделируется в режиме Auto Think.

Auto Think – эта опция доступна только при использовании кеша отображения.

• <Вид> <Показать сетку>

Показывает / скрывает сетку размещения нейронов.

• <Просмотр> <Просмотр обновления во время обучения>

Если флажок установлен, то вид обновляется в процессе обучения после каждого урока в сети.

• <Вид> <Обновить вид во время Think>

Если этот флажок установлен, то вид обновляется во время процесса Auto Think после каждого шага Think сети.

Отображение панелей инструментов на верхней границе главного окна MemBrain

Вы можете управлять состоянием видимости каждой панели инструментов с помощью команды меню <Вид> <Панели инструментов>.

Если вы хотите автоматически отображать и переупорядочивать все панели инструментов, выберите команду меню <Вид> <Панели инструментов> <Прикрепить и показать все> или нажмите клавиши <Ctrl> + «T» на клавиатуре. Эта команда организует отображение всех панелей инструментов на верхней границе главного окна MemBrain.

Вы также можете выполнить эту команду после изменения размера главного окна MamBrain.

Использование сетки

При использовании MemBrain вы можете работать на основе сетки размещения нейронов или работать со свободным размещением нейронов. Чтобы изменить текущую настройку, используйте команду <View> <Snap To Grid> из главного меню.

Если сетка отображается на экране (или нет), ее можно определить с помощью отдельной опции: используйте команду <View> <Display Grid> главного меню, чтобы отобразить / скрыть сетку.

Вы также можете установить ширину сетки в диапазоне от 5 до 500 единиц, используя <View> <Set Grid Width …>. В качестве ориентации: ширина нейрона составляет 45.

Существует также возможность перераспределить все выбранные в настоящее время нейроны в их ближайшую точку сетки: используйте <Edit> <Snap Selection to Grid> в главном меню.

Задание.

– Найдите в Интернет сайт фирмы MemBrain и загрузите пакет. Ознакомьтесь с файлами нейропакета. Найдите файлы документации.

– Проверьте настройку инсталлированной у вас версии пакета.

– Обратите внимание, что автор пакета приглашает посетить форум фирмы. Побывайте на нём.

Нейроны в MemBrain (Neurons in MemBrain)

Нейроны в MemBrain высвечиваются как:

N1 – Скрытый нейрон (Hidden Neuron)

N2 – Входной нейрон (Input Neuron);

N3 – Выходной нейрон (Output Neuron);

N4 – Нейрон с заблокированным порогом активации (activation threshold – одно из свойств (properties) нейрона), обозначен его синей границей (в чёрно-белом варианте может быть незаметна). Запертый порог активации нейрона не будет изменен в процессе обучения.

Обычно в MemBrain входной порт нейрона находится сверху нейрона, выходной порт расположен внизу. Обратите внимание, что для просмотра портов должна быть активирована опция <View> <Show Links>.

N1, N2, N3 и N4 являются названиями нейронов. Каждому нейрону может быть назначено произвольно выбираемое имя. Это одно из свойств нейронов.

Нейроны будут менять свой цвет в соответствии с их текущей активацией: нейрон с активацией 0 будет отображаться серым цветом. Отрицательная активация приведет к тому, что нейрон будет отображаться больше в направлении синего, достигая максимальной синей окраски при активации -1. Положительные значения активации приводят к красному нейрону. Максимальная красная окраска будет достигнута при активации 1:

Обратите внимание, что цвет всегда определяется на основе так называемой «нормализованной» активации нейрона.

Добавление простых нейронов (Adding Single Neurons)

Чтобы добавить новые нейроны в область рисования, просто выберите <Insert> <New Neurons> в главном меню или просто нажмите соответствующую кнопку панели инструментов:

Курсор изменится на перекрестие, и новый нейрон уже будет прикреплен к курсору.

Переместите курсор в назначенную позицию и поместите нейрон в позицию курсора, щелкнув левой кнопкой мыши. Следующий новый нейрон уже будет прикреплен к курсору. Продолжайте размещать новые нейроны таким же образом. Когда закончите, снова выберите стандартный режим работы, нажав

на панели инструментов, отменив выбор <Insert> <New Neurons> в главном меню или просто нажав <ESC> на клавиатуре.

Замечания: При добавлении нейронов вы также можете перемещаться навигацией (navigate) по области рисования. Если опция Snap to Grid активирована, размещение нейронов будет происходить автоматически только в точках сетки. В этом случае убедитесь, что ширина сетки настроена на значение, подходящее для вашей планируемой нейронной сети.

Новые нейроны всегда создаются с текущими свойствами по умолчанию, установленными с помощью <Edit> <Default Properties …> из главного меню. Имя новых нейронов будет состоять из строки, введенной для имени в свойствах по умолчанию, плюс символ <SPACE> и уникальный номер, который создается внутри MemBrain для идентификации каждого отдельного нейрона. Это имя по умолчанию может быть изменено. Изменение имени не повлияет на внутренний идентификатор MemBrain для нейрона.

Изменение свойств нейрона (Changing Neuron Properties)

Чтобы редактировать свойства одного или нескольких нейронов, выделите их мышью и выполните одно из следующих действий.

• Щелкните правой кнопкой мыши по одному из выбранных нейронов и выберите <Свойства> в контекстном меню, или

• Выберите <Edit> <Properties> в главном меню, или

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

• Нажмите <ENTER> на клавиатуре.

Откроется следующий диалог:

Если вам нужна дополнительная информация о том, как эти параметры влияют на поведение нейрона, обратитесь к разделу о модели нейрона MemBrain’s Neuron Model.