Читать книгу Нейросетевое программирование. Инструментарий нейрокомпьютинга - Александр Кириченко - Страница 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 Конструктивные особенности нейросети


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

Нейросетевое программирование. Инструментарий нейрокомпьютинга

Подняться наверх