Нейроконструктор кроме перечисленных задач в отличие от нейропакета предназначен ещё и для создания, исследования, моделирования различных нейросетей от элементарных до необыкновенно сложных, в пределе до создания и моделирования различных нейрокомпьютеров. Нейроконструктор является инструментом нейросетевого программирования.
Программный комплекс MemBrain удачно сочетает в себе свойства как нейропакета, так и нейроконструктора. Этот программный комплекс разработан Thomas Jetter в виде свободнораспространяемого (freeware) и размещён по адресу http://www.membrain-nn.de/.
Описание программного комплекса, как нейропакета приведено в монографии [Универсальный нейропакет] и охватывает различные стороны процесса создания нейросетевой модели, например, определяет 5 функциональных узлов для создания нейросети требуемого типа, загрузки в эту нейросеть исходных данных, обучения нейросети, и промышленного решения задач на обученной нейросети:
1. Нейроны и действия с ними (Neurons in MemBrain):
Группировка нейронов, их выравнивание (Aligning Neurons),
Экстренный выбор нейронов (Neuron Extra Selection),
Быстрая Активация (Quick Activation),
Автоматическое присваивание имён нейронам (Neuron Auto Naming))
Основные виды нейронов:
перемещаемые нейроны (Moving Neurons)
нейроны задержки (Adding Delay Neurons),
дифференциальные нейроны (Add Differential Neuron),
интегрирующие нейроны (Adding Integrator Neurons),
нейроны контекста
функции активации нейронов (Activation Functions)
логистический закон (LOGISTIC)
линейный закон (IDENTICAL)
линейный в интервале от 0 до 1 (IDENTICAL 0 TO 1)
гипертангенс (TAN HYP)
бинарный, или единичная функция Хэвисайда (BINARY)
минимальное Евклидово расстояние (MINIMUM EUCLIDEAN DISTANCE)
2. Соединение нейронов в нейросети (Полная связь, Случайная связь, связь «один к одному» (1:1), связь слоёв нейросети на основе Матрицы).
3. Моделирование связей и особенности их эксплуатации.
В MemBrain cвязи между нейронами выполняются с помощью ссылок. Ссылки имеют два основных свойства, которые определяют их функциональность (вес и логическую длину).
Вес ссылки определяет, какая величина сигнала передается на вход целевого (target) нейрона. Для этого сигнал умножается на вес ссылки. Это значение появится на входе целевого нейрона на другом конце связи. Вес ссылки не ограничен определенным диапазоном и может быть даже отрицательным.
Логическая длина характеризует продолжительность прохождения ссылки по каналу (от одного нейрона к другому). Ссылки визуализируются в MemBrain с помощью «пиков или шипов активации» (Activation Spikes), которые появляются во время каждого «шага моделирования» (<Think Step>) на схеме нейросети при активированной опции <Вид> <Показать пики активации в ссылках>.
Логическая длина ссылки определяет, сколько шагов вычисления (Think Steps) требуется, чтобы распространить сигнал от входного конца ссылки к ее выходному концу (т.е. между двумя соседними нейронами). Логическую длину (Length) можно определить в диалоге «Select net characteristics to be exported» из основного меню пакета Neural Networks -> Net Analysis -> Exporting a Net.
Для примера: канал с (логической) длиной 1 (минимально допустимое значение) распространяет сигналы так, что задержка не возникает.
4. Основные характеристики нейронов диапазоны активаций нейронов, которые обычно имеют величину, отличную от -1 до 1 или от 0 до 1, обычно устанавливаются при настройке функций активации нейронов. При нормализации нейронов они могут быть изменены (MemBrain_Help. pdf -> Normalize I/O Data).
5. Управление данными в MemBrain (Managing I/O Data)
Для управления данными в MemBrain служит Редактор уроков или разделов (The Lesson Editor).
С Редактором Разделов можно выполнить следующие функции:
Добавить-Удалить раздел;
Выбрать активный раздел/образец;
Редактировать имя раздела/образца;
Добавить комментарий;
Отредактировать данные;
Синхронизировать раздел с сетью;
Исполнить текущий/следующий входной образец или весь раздел;
Сохранить раздел в виде CSV файла;
Загрузить раздел из CSV файла;
Разделить текущий раздел;
И др.
В отличие от нейропакетов, нейроконструкторы могут содержать дополнительные разделы.
В MemBrain имеются такие разделы, которые могут рассматриваться как дополнительные:
1. Работа с нейронными сетями (Neural Networks):
2. Экспорт нейросети (Exporting a Net)
3. Объединение обученных нейросетей в единую конструкцию
В MemBrain имеются такие разделы, которые могут рассматриваться как дополнительные:
1. Работа с нейронными сетями (Neural Networks):
2. Экспорт нейросети (Exporting a Net)
3. Объединение обученных нейросетей в единую конструкцию
4. Выбор наилучшей нейросети
5. Автоматизация управления программным пакетом
6. Генерация C-кода текущей нейронной сети
7. Организация динамической библиотеки
8. Соединение различных нейросетей с использованием TCP
9. Управление произвольно большим количеством нейронных сетей
В нейроконструкторе NeuroPro в отличие от MemBrain добавлены такие разделы, как упрощение нейронной сети и вербализация нейронной сети, с помощью которых удаётся преобразовать полученные при обучении нейронной сети знания в правила продукции.
Работа с нейронными сетями (Neural Networks) предусматривает выполнение таких операций:
Провести «Анализ сети» (Net Analysis)
Проверить Архитектурную целостность (Architectural Integrity)
Провести послойный Анализ (Layer Analysis)
Отобразить информацию о слоях (Displaying Layer Information)
Вычислить активацию и выходные сигналы нейронной сети (Calculating the Output)
Обновить нейросеть (Resetting the Net)
Экспортировать нейросеть (Exporting a Net)
Провести анализ структуры экспортируемого CSV файла (Net CSV File)
Отторгнуть обученную нейросеть от нейропакета
Объединить обученные нейросети (Merging Nets)
Экспорт нейросети (Exporting a Net) может быть выполнен по-разному. В MemBrain есть возможность экспортировать сетевой список характеристик текущей нейронной сети через файл csv (содержащий значения, разделенные запятыми). Этот файл можно использовать для импорта нейронной сети, созданной и, возможно, обученной с помощью MemBrain, в другое прикладное программное обеспечение. При этом можно выбрать уровень детализации, который вы хотите включить в файл экспорта.
Чтобы экспортировать сеть, выберите <File> <Export >. Появится следующий диалог.
Выбор экспортируемых характеристик
Этот диалог позволяет выбрать свойства нейронов и ссылок, которые вы хотите экспортировать в файл. Когда вы сделали свой выбор, нажмите ОК будет предложено выбрать местоположение и имя файла для сохранения экспортированного файла.
Нейроконструкторы предусматривают выполнение весьма специфических операций. Поэтому в нейропакетах приходится производить установку настроек пакета (Getting Started Short Beginners Tutorial ), позволящую:
Настроить экран
Разрешить:
Использование сетки при работе с графическими объектами
Выбор объектов
Удаление объектов
Копировать / Вставить Активации
Симуляция запуска / остановки (Auto Think)
Некоторые нейроконструкторы имеют оперативную память нейросетей «Neural Net Stock», которая во время работы позволяет управлять произвольно большим количеством нейронных сетей. Отредактированная нейронная сеть может быть отправлена в хранилище (Stock) или извлечена из него в любой момент во время работы.
Наиболее мощной функцией «Neural Net Stock» (системы управления произвольно большим количеством нейронных сетей) является возможность автоматически использовать наиболее эффективную нейронную сеть из запаса нейронных сетей MemBrain: всякий раз, когда учитель обнаруживает новый минимум сетевой ошибки, он обновляет копию нейронной сети в хранилище, представляя её как более эффективную. Такая функция Neural Net Stok называется акцией и производится под воздействием диспетчера акций (Neural Net Stok Manager). Список сетей в диспетчере всегда представлен в хронологическом порядке, т.е. новая сеть всегда находится в верхней части списка. Neural Net Stok Manager позволяет выполнить следующие функции:
Добавить текущую сеть
Заменить текущую сеть (загрузка нетто)
Очистить контент (запас нейросетей)
Загрузить контент или его часть из файла
Сохранить контент в файл.
При объединении обученных нейросетей (Merging Nets, создание единой нейросети) можно объединить различные обученные подсети в одну большую сеть, например в следующем порядке:
a. Открывается первая сеть в MemBrain
b. Добавляется вторая сеть к первой, используя команду меню <Файл> <Добавить сеть в текущую сеть >
c. Переназначаются уже обученные выходные ссылки входных нейронов нижней сети на выходные нейроны верхней сети (Extra Selection (Выберите) выходные нейроны верхней сети. Выберите входные нейроны нижней сети. Затем выберите <Extras> <Re-назначить выходные ссылки из Selection To Extra Selection>.