Учебное пособие по курсу «Нейроинформатика»
Шрифт:
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, соответственно. Таким образом, для получения массива входных сигналов второго слоя сети, приведенной на рис. 2, необходимо запросить массив NW.K[2].InSignals, а для получения выходного сигнала всей сети можно воспользоваться любым из следующего списка имен:
• 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, содержащий маску обучаемости параметров.
Стандарт языка описания сетей
Язык описания нейронных сетей предназначен для хранения сетей на диске. Следует отметить, что в отличии от таких компонентов, как предобработчик входных сигналов, оценка или задачник описание даже простой сети имеет большой размер. С другой стороны, многие подсети являются стандартными для большинства сетей. Для компонента сеть нет смысла вводить небольшой набор стандартных элементов и подсетей, поскольку этот набор может легко расширяться. Более эффективным является выделение часто употребляемых подсетей в отдельные библиотеки, подключаемые к описаниям конкретных сетей. В приведенных в этом разделе примерах описания нейронных сетей выделен ряд библиотек.
В табл. 25 приведен список ключевых слов специфических для языка описания сетей.
Таблица 25. Ключевые слова языка описания сетей.
Идентификатор | Краткое описание |
---|---|
Back | Метод, осуществляющий обратное функционирование подсети. Префикс сигналов обратного функционирования. |
Block | Тип аргумента подсети. Означает, что аргумент является подсетью. |
Cascad | Тип подсети — каскад. |
Connections | Начало блока описания связей подсети. |
Contents | Начало блока описания состава подсети. |
DefaultType | Тип параметров по умолчанию. |
Element | Тип подсети — элемент. |
Forw | Метод, осуществляющий прямое функционирования подсети. |
InSignalMask | Имя, по которому адресуются маски обучаемости входных сигналов подсети. |
InSignals | Имя, по которому адресуются входные сигналы подсети; начало блока описания входных сигналов. |
Layer | Тип подсети — слой. |
Loop | Тип подсети — цикл, выполняемый указанное число раз. |
MainNet | Начало описания главной сети |
NetLib | Начало описания библиотеки подсетей. |
NetWork | Начало описания сети |
NumberOf | Функция (запрос). Возвращает число параметров или сигналов в подсети. |
OutSignals | Имя, по которому адресуются выходные сигналы подсети; начало блока описания выходных сигналов. |
ParamDef | Заголовок определения типа параметров. |
Рarameters | Имя, по которому адресуются параметры подсети; начало блока описания параметров. |
ParamMask | Имя, по которому адресуются маски обучаемости параметров подсети. |
ParamType | Заголовок описания типа параметров. |
Until | Тип подсети — цикл, выполняемый до тех пор пока не выполнится условие. |
Used | Начало списка подключаемых библиотек подсетей |
Обозначения, принятые в данном расширении БНФ и описание ряда конструкций приведены в разделе «Описание языка описания компонентов».