Учебное пособие по курсу «Нейроинформатика»
Шрифт:
Остальные запросы
Ниже приведен список запросов к компоненту предобработчик, исполнение которых описано в разделе «Общий стандарт»:
prSetCurrent — Сделать предобработчик текущим
prAdd — Добавление нового предобработчика
prDelete — Удаление предобработчика
prWrite — Запись предобработчика
prGetStructNames — Вернуть имена структурных единиц предобработчика
prGetType — Вернуть тип структурной единицы предобработчика
prGetData — Получить параметры предобработчика
prGetName — Получить имена параметров предобработчика
prSetData — Установить параметры предобработчика
prEdit —
OnError — Установить обработчик ошибок
GetError — Дать номер ошибки
FreeMemory — Освободить память
В запросе prGetType в переменной TypeId возвращается значение одной из предопределенных констант, перечисленных в табл. 23.
Ошибки компонента предобработчик
В табл. 24 приведен полный список ошибок, которые могут возникать при выполнении запросов компонентом предобработчик, и действия стандартного обработчика ошибок.
Таблица 24. Ошибки компонента предобработчик и действия стандартного обработчика ошибок.
№ | Название ошибки | Стандартная обработка |
---|---|---|
201 | Неверное имя предобработчика | Занесение номера в Error |
202 | Ошибка считывания предобработчика | Занесение номера в Error |
203 | Ошибка сохранения предобработчика | Занесение номера в Error |
204 | Ошибка предобработки | Занесение номера в Error |
Стандарт первого уровня компонента сеть
Данный раздел посвящен описанию стандарта хранения компонента сеть на внешних носителях.
Структура компонента
Рассмотрим более подробно структуры данных сети. Как уже было описано ранее, сеть строится иерархически от простых подсетей к сложным. Простейшими подсетями являются элементы. Подсеть каждого уровня имеет свое имя и тип. Существуют следующие типы подсетей: элемент, каскад, слой, цикл с фиксированным числом тактов функционирования и цикл, функционирующий до тех пор, пока не выполнится некоторое условие. Последние четыре типа подсетей будем называть блоками. Имена подсетей определяются при конструировании. В разделе «Имена структурных единиц компонентов» приведены правила построения полного и однозначного имен подсети. В качестве примера рассмотрим сеть, конструирование которой проиллюстрировано в главе «Описание нейронных сетей» на рис. 2. В описании сети NW однозначное имя первого нейрона второго слоя имеет вид K[2].SN.N[1]. При описании слоя однозначное имя первого нейрона записывается как N[1]. В квадратных скобках указываются номер экземпляра подсети, входящей в непосредственно содержащую ее структуру в нескольких экземплярах.
Сигналы и параметры
При использовании контрастирования для изменения структуры сети и значений обучаемых параметров другим компонентам бывает необходим прямой доступ к сигналам и параметрам сети в целом или отдельных ее подсетей. Для адресации входных и выходных сигналов используются имена InSignals и OutSignals, соответственно. Таким образом, для получения массива входных сигналов второго слоя сети, приведенной
• NW.OutSignals;
• NW.N.OutSignals.
Для получения конкретного сигнала из массива сигналов необходимо в конце в квадратных скобках указать номер сигнала. Например, для получения третьего входного сигнала второго слоя сети нужно указать следующее имя — NW.K[2].InSignals[3].
Для получения доступа к параметрам нужно указать имя подсети, к чьим параметрам нужен доступ и через точку ключевое слово Parameters. При необходимости получить конкретный параметр, его номер в квадратных скобках записывается после ключевого слова Parameters.
Обучаемые и не обучаемые параметры и сигналы
При обучении параметров и сигналов (использование обучения сигналов описано во введении) возникает необходимость обучать только часть из них. Так, например, при описании обучения персептрона во второй части главы «Описание нейронных сетей» было отмечено, что обучать необходимо только веса связей второго слоя. Для реализации этой возможности используются два массива логических перемен-ных — маска обучаемых параметров и маска обучаемых входных сигналов.
Дополнительные переменные
При описании структуры сетей необходимо учитывать следующую дополнительные переменные, доступные в методах Forw и Back. Для каждой сети при прямом функционировании определен следующий набор переменных:
• InSignals[K] — массив из K действительных чисел, содержащих входные сигналы прямого функционирования.
• OutSignals[N] — массив из N действительных чисел, в которые заносятся выходные сигналы прямого функционирования.
• Parameters[M] — массив из M действительных чисел, содержащих параметры сети.
При выполнении обратного функционирования сети доступны еще три массива:
• Back.InSignals[K] — массив из K действительных чисел, параллельный массиву InSignals, в который заносятся выходные сигналы обратного функционирования.
• Back.OutSignals[N] — массив из N действительных чисел, параллельный массиву OutSignals, содержащий входные сигналы обратного функционирования.
• Back.Parameters[M] — массив из M действительных чисел, параллельный массиву Parameters, в который заносятся вычисленные при обратном функционировании поправки к параметрам сети.
При обучении (модификации параметров или входных сигналов) доступны все переменные обратного функционирования и еще два массива:
• InSignalMask[K] — массив из K логических переменных, параллельный массиву InSignals, содержащий маску обучаемости входных сигналов.
• ParamMask[M] — массив из M логических переменных, параллельный массиву Parameters, содержащий маску обучаемости параметров.
Стандарт языка описания сетей
Язык описания нейронных сетей предназначен для хранения сетей на диске. Следует отметить, что в отличии от таких компонентов, как предобработчик входных сигналов, оценка или задачник описание даже простой сети имеет большой размер. С другой стороны, многие подсети являются стандартными для большинства сетей. Для компонента сеть нет смысла вводить небольшой набор стандартных элементов и подсетей, поскольку этот набор может легко расширяться. Более эффективным является выделение часто употребляемых подсетей в отдельные библиотеки, подключаемые к описаниям конкретных сетей. В приведенных в этом разделе примерах описания нейронных сетей выделен ряд библиотек.