Читать книгу Нейросетевое программирование. Инструментарий нейрокомпьютинга - Александр Кириченко - Страница 5
Инструментарий нейрокомпьютинга
Экспорт нейросети
ОглавлениеЧто собой представляет нейросеть?
С внутренним устройством нейросети можно познакомиться, произведя экспорт созданной нейросети (Exporting a Net) в csv-файл.
В MemBrain есть возможность экспортировать сетевой список текущей нейронной сети через файл csv, содержащий значения, разделенные запятыми. Этот файл в дальнейщем можно использовать для импорта нейронной сети, созданной и, обученной с помощью MemBrain, в другое прикладное программное обеспечение.
С помощью следующего диалога можно выбрать уровень детализации, который вы хотите включить в файл экспорта.
Чтобы экспортировать сеть, выберите <File> <Export …>. Появится:
Рис.12 Настройка экспорта нейросети
Этот диалог позволяет выбрать свойства нейронов и ссылок, которые нужно экспортировать в файл. Когда вы сделали свой выбор, нажмите ОК. Вам будет предложено выбрать местоположение и имя файла для сохранения экспортированного файла.
Структура и состав экспортируемого CSV файла (Net CSV File)
Когда вы экспортируете сеть, MemBrain создает для этой цели секционированный CSV-файл. Этот файл состоит из разделов данных, которые идентифицируются несколькими ключевыми словами, каждое из которых включено в начальный и конечный теги '<' и '>' соответственно. Точный формат файла зависит от свойств, которые вы выбрали для экспорта и может выглядеть следующим образом:
/*
MemBrain, Version XX. XX
(<Month> <Day> <Year>)
Секционированный CSV-файл
Стартовые ключевые слова для сети
[<NET START>]
Дополнительная информация о содержимом файла
[<INFO HEADER>]
Этот файл представляет собой нейронную сеть MemBrain.
Информация о формате, используемом для экспорта нейронов – это своего рода «заголовок» для объяснения данных, содержащихся в разделе [<NEURONS <], который следует далее.
[<NEURON FORMAT INFO>]
ID; LAYER; NAME = Идентификатор; Слой; Название
Этот раздел содержит все нейроны в сети. Один нейрон всегда представлен одной строкой в CSV-файле.
[<NEURONS>]
1;I; In1
2;I; In2
3;O; Out
Информация о формате, используемом для экспорта ссылок – это своего рода «заголовок» для объяснения данных, содержащихся в раздел [<LINKS <], который будет следующим.
[<LINK FORMAT INFO>]
SOURCE_ID; TARGET_ID; WEIGHT
Этот раздел содержит все ссылки в сети.
Одна ссылка всегда представлена одной строкой в CSV-файле.
[<LINKS>]
1;3;0,263535
2;3;0,178995
Конец ключевых слов.
[<END>]
*/
Покажем на реальном примере:
Пример.
Создадим нейросеть для анализа принадлежности точки одному из двух множеств: синему или жёлтому.
Для обучения покажем нейросети смешанный файл с точками circle1.csv (374 записей):
csv-файл
Файл circle1.csv
Для контроля хода обучения создадим файл с точками, которые не показываются нейросети при обучении:
Файл circle2.csv (21 запись)
Оба эти файла получены из полного исходного файла «circle. csv», содержащего 394 записи:
Файл «circle. csv»
Загружаем нейросеть из «Circle_1.mbn»
Рис.13 Нейросеть загружена
Загружаем «circle1.csv»
Рис.14 Загружен обучающий файл
Загружаем «circle2.csv»
Рис.15 Загружен контролирующий файл
После настройки Lesson Editor для обучения:
Рис.16 Подготовка обучения нейросети
Согласуем нейросеть с настройкой нейропакетаMemBrain.
После согласования нейросети с Lesson Editor (Names from Net) надо нормализовать Wizard через Extras. Теперь можно обучать нейросеть:
Рис.17 Ход обучения виден в окне Pattern Error Viewer:
Рассмотрим подробнее ход обучения.
Рис.18 Ход обучения нейросети
Для ознакомления с полученной структурой и составом обученной нейросети экспортируем нейросеть в csv-файл «экспорт 1. csv». Для этого определим состав выводимой информации:
Рис.19 Подготовка экспорта обученной нейросети
Экспорт произведём нажатием кнопки «Export» в меню «File».
Обученная нейросеть будет выведена в файл «Export Circle. csv»:
Рис.20 Характеристики нейросети после обучения
Таблица состоит из 3 частей.
1 часть – заголовок.
2 часть – [<NEURON FORMAT INFO>]
В этой части содержится информация о нейронах (№; Название слоя, в котором нейрон находится; Имя; Тип нейрона; Характеристики…):
Рис.21 Информация о нейронах
3 часть – информация о связях нейронов:
Рис.22 Веса связей нейронов
Подробное знакомство с нейросетью
Подробное знакомство с тем, что представляют собой и что можно делать с нейронными сетями, можно получить по справочнику команд (Command Reference), в котором перечислены все доступные специфичные для MemBrain команды языка сценариев MemBrain в соответствии со следующими подкатегориями:
Команды языка сценариев MemBrain
В этих разделах можно познакомиться с такими командами, как:
//Открыть файл MemBrain net (*.mbn)
[void OpenNet (постоянная строка & в файле fileName)]
//Сохранить текущую сеть MemBrain в файл (*.mbn)
[void SaveNet (const string &in fileName)]
//Получить имя файла текущей загруженной сети
[void GetCurrentNetFileName (string& out fileName)]
//Экспорт текущей сети MemBrain в CSV-файл
[void ExportNet (const string &in fileName)]
//Получить количество входных нейронов в сети
[uint GetInputCount ()]
//Получить количество выходных нейронов в сети
[uint GetOutputCount ()]
//Получить имя входного нейрона
[bool GetInputName (uint inNeuronNum, string &out name)]
//Получить имя выходного нейрона
[bool GetOutputName (uint outNeuronNum, string &out name)]
//Получить текущую активацию выходного нейрона
[bool GetOutputAct (uint outNeuronNum, double &out activation)]
// Получить свойства выбранного в настоящее время нейрона
bool GetSelectedNeuronProp (SNeuronProp &out prop)
// Установите свойства всех выбранных в настоящее время нейронов
void SetSelectedNeuronProp (SNeuronProp &in prop)
// prop – Структура данных SLinkProp для считывания параметров ссылки:
Рис.23 Веса нейронов
//По команде ViewSetting (EViewSetting setting, bool on) можно получить подробную информацию о конструктивных особенностях нейросети:
Рис.24 Конструктивные особенности нейросети
Разобравшись в технологии создания скрипта, используемой системе команд, получив необходимую информацию о составе, структуре, устройстве нейросети, можно модернизировать нейросетевую конструкцию, программно корректировать свойства нейросетей