Е. Миркес - Учебное пособие по курсу «Нейроинформатика»
Дополнительные переменные
При описании структуры сетей необходимо учитывать следующую дополнительные переменные, доступные в методах 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 Начало списка подключаемых библиотек подсетей БНФ языка описания сетейОбозначения, принятые в данном расширении БНФ и описание ряда конструкций приведены в разделе «Описание языка описания компонентов».
<Описание библиотеки подсетей>::= <Заголовок библиотеки> <Описание подсетей> <Конец описания библиотеки>
<Заголовок библиотеки>::= NetLib<Имя библиотеки> [Used <Список имен библиотек>]
<Имя библиотеки>::= <Идентификатор>
<Список имен библиотек>::= <Имя используемой библиотеки> [,<Список имен библиотек>]
<Имя используемой библиотеки>::= <Идентификатор>
<Описание подсетей>::= <Описание подсети> [<Описание подсетей>]
<Описание подсети>::= {<Описание элемента> | <Описание блока> | <Описание функций>}
<Описание элемента>::= <Заголовок описания элемента> <Описание сигналов и параметров> [<Описание типов параметров>] [<Определение типов параметров>] [<Описание статических переменных>] [<Установление значений статических переменных>] <Описание методов> <Конец описания элемента>
<Заголовок описания элемента>::= Element<Имя элемента> [( <Список формальных аргументов>)]
<Имя элемента>::= <Идентификатор>
<Описание сигналов и параметров>::= <Описание входных сигналов> <Описание выходных сигналов> [<Описание параметров>]
<Описание входных сигналов>::= InSignals<Константное выражение типа Long>
<Описание выходных сигналов>::= OutSignals<Константное выражение типа Long>
<Описание параметров>::= Parameters<Константное выражение типа Long>
<Описание типов параметров>::= <Описание типа параметров> [<Описание типов параметров>]
<Описание типа параметров>::= ParamType<Имя типа параметра><Список>
<Имя типа параметра>::= <Идентификатор>
<Список>::= {Parameters[ <Начальный номер> [..<Конечный номер> [<Шаг>]]] | InSignals[ <Начальный номер> [..<Конечный номер> [<Шаг>]]] } [;<Список>]
<Определение типов параметров>::= <Определение типа параметра> [<Определение типов параметров>]
<Определение типа параметра>::= ParamDef<Имя типа параметра> <Минимальное значение> <Максимальное значение>
<Минимальное значение>::= <Константное выражение типа Real>
<Максимальное значение>::= <Константное выражение типа Real>
<Установление значений статических переменных>::= <Установление параметров Подсети> [;<Установление значений статических переменных>]
<Описание методов>::= <Описание функционирования вперед> <Описание функционирования назад>
<Описание функционирования вперед>::= Forw [<Описание переменных>] <Тело метода>
<Тело метода>::= Begin<Составной оператор> End
<Описание функционирования назад>::= Back[<Описание переменных>] <Тело метода>