Нейросетевое программирование. Инструментарий нейрокомпьютинга - Александр Кириченко 6 стр.


Начинается работа этой скриптовой группы с «Using Net Editor Example as». Затем по мере необходимости к нему подключаются ещё два скрипта.

В начале скрипта «Using Net Editor Example as» содержится раздел «Константы», определяющий значения наиболее важных параметров создаваемой нейросети с помощью команды const. Затем создаётся список глобальных переменных, уточняются параметры создаваемой нейросети, после чего начинается сборка нейросети..

При необходимости выяснить количество скрытых слоёв в создаваемой нейросети проводится следующий диалог:

// Determine how many normal hidden layers there shall be in the net
void DetermineHidLayerCount ()
{
int count;

if (UserInput («Please enter the number of hidden layers for the net.»,
DEFAULT_HID_LAYER_COUNT, count) == IDOK)
{
if (count> gMaxHidLayerCount)
{
MessageBox («Too many hidden layers!»);
AbortScript ();
}

// Success. Adjust the size of the hidden layer array now.

gHidLayers.resize (count);

}
else
{
AbortScript ();
}
}

Создание входных нейронов по данным, содержащимся в mbl-файле

// Create the I/O neurons of the net using a MemBrain lesson file
void CreateIOFromMbl ()
{
string lessonFileName;

if (FileOpenDlg («Select Lesson File», «mbl», «», lessonFileName) == IDOK)
{
// Load the lesson into #1 (delete all other lessons)
SetLessonCount (1);
LoadLesson (lessonFileName);
gInputCount = GetLessonInputCount ();
gOutputCount = GetLessonOutputCount ();
if (gInputCount> gMaxCountPerLayer)
{
MessageBox («Too many input columns in lesson!»);
AbortScript ();
}
else if (gOutputCount> gMaxCountPerLayer)
{
MessageBox («Too many output columns in lesson!»);
AbortScript ();
}

// Now we tell the editor to actually create the input and output neurons.
// The number of hidden layers is required here to leave space for them.

Это пример дискуссии с компьютером о способе создания базового компьютера с использованием mbl-файла

// Create net based on lesson or manual input?
if (MessageBox («Do you want to create the net based on a MemBrain lesson file?», MB_YESNO) == IDYES)
{
gUseLesson = true;
CreateIOFromMbl ();
}
else
{
CreateIOFromUserInput ();

}

Здесь выводится сообщение с запросом ответа Да или Нет.


При проверке очередного условия может проявиться превышение ожидаемого параметра:

{
if (count> gMaxHidLayerCount)
{
MessageBox («Too many hidden layers!»);
AbortScript ();

}

Тогда выводится сообщение о чрезмерном количестве скрытых файлов.


При удовлетворительном ответе:

// Success. Adjust the size of the hidden layer array now.
gHidLayers.resize (count);
}

Группирование нейросетей в нейроконструкции

(Перевод фрагментов архива «MemBrainExamples». )

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

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

Рассмотрим последовательно возникающие при этом проблемы :

 Что такое групповые отношения

 Как групповые отношения создаются и редактируются

 Доступные типы групповых отношений

 Использование групповых отношений для работы с подсетями

Назад