Рис.27 Схема преобразователя последовательного кода в параллельный
Анализ созданной нейросети показывает:
Рис.28 Характеристики нейросети
всего нейронов – 15. Из них: 2 входных, 7 выходных, 6 скрытых нейронов (1 DLY 2 – 1 DLY 7) в 6 скрытых слоях (H1 – H6).
Для демонстрации работы преобразователя кодов было предусмотрено два файла.
В первом файле (SdvReg0.csv) нейрон In1 всегда равен 0. По In2 поступают последовательные сигналы, накапливающиеся в параллельные группы по 7 сигналов.
Рис.29 Основной файл для проверки преобразователя кодов
Используем этот файл для обучения:
Рис.30 Ход обучения преобразователя кодов
Ошибка обучения имеет достаточно малую величину и показывает, что нейросеть постепенно приблизилась к правильному результату (это видно по голубой линии. на Pattern Error Viewer):
Рис.31 Процесс обучения нейросети
После 6 точки голубая линия совпадает с Target. По клавише Export Graph выводится исполненный пример после обучения:
Рис.32 Максимальное количество колонок
Здесь содержится предупреждение о структуре выводимой информации.
Содержимое файла «SdvReg00.csv», полученного по клавише Export Graph:
Рис.33 Правильный результат после обучения.
Файл SdvReg2.csv имеет другое строение:
Нейрон In1 может исполнять разные функции: он может сигнализировать момент окончания превращения последовательного кода в параллельный и включать перепись сформированного параллельного кода с выходных нейронов в ячейку памяти для накопления. Если In1 отмечает момент, когда закончено формирование одной строки параллельного кода, то по сигналу In1=1 полученный код нужно считать с выходных нейронов нейросети. При исполнении такого действия нужно будет сформировать и вывести только одно число 1111000 (см. рисунок 34).
Но может быть In1=1 и сигналом, запускающим сохранение в памяти в виде csv-кода исполняемого (текущего) фрагмента обучающей выборки MemBrain. Тогда выводиться должно будет не одно число, а ряд чисел, составляющих текущую обучающую последовательность. Разница – в программах, которые будут работать по зажиганию нейрона In1.
In2 фиксирует символы поступающего последовательного кода.
Для демонстрации процесса зажигания управляющего нейрона подготовлен новый файл: 090720.csv:
Рис.34 Файл, вызывающий зажигание нейрона In1
После загрузки этого файла выведем на экран одновременно часть нейросети с нейроном In1 и часть редактора уроков Lesson Editor, содержащую нейрон In1. До тех пор, пока In1 = 0, нейрон не зажигается (это видно по выходному порту этого нейрона. Одновременно в редакторе уроков видно, что нейрон In1=0):
Рис.35 Нейрон In1 не зажжён
Как только In1 стал 1, нейрон зажёгся и начал работать…
Рис.36 Нейрон In1 зажёгся
В нашем случае по команде из программы «230620.as» выводится весь последний пример, а не одна строка. Нейрон In1 = 1 будем использовать как команду считать в csv-файл содержимое выполненного примера. Считывание это должно производиться по команде ExportLessonRaw раздела LessonEditor, которая записана в скрипте «230620.as».
Программа «230620.as» :
void main ()
{
SelectLesson (3);
ExportLessonRaw(C:\ProgramData\MemBrain\”230620-3.as»);
}
Последовательность запуска управляющего нейрона:
– Включить View -> «Show Fire Indicator».
– Средствами Windows записать в ячейку «SdvReg_111.csv» ноль.
Активизировать запуск программы при появлении огня (Fire):
– Пометить нейрон In1 на графической схеме нейросети свойством (Properties) «Executable When Firing» или: через Extras -> Executable when Firing.
– Заполнить диалог:
Рис.38 Выполняемая программа при зажигании нейрона
– Нажать «Think on Lesson» на Lesson Editor.
Lesson Editor настроен на запись по скриптовой команде из файла ”230620-3.as” в 3 урок:
Рис.39 Вывод результата из 3 урока
Выводим из 3 урока информацию в файл SdvReg_111.csv.
На экране появляется:
Рис.40 Выводимая информация
В результате срабатывания управляющего нейрона In1, в файл SdvReg_111.csv выведена информация из 3 урока.
Таким образом:
В демонстрационной папке этого примера должно содержаться:
Рис.41 Содержимое папки, необходимое для зажигания нейрона