Е. Миркес - Учебное пособие по курсу «Нейроинформатика»
В табл. 32 приведен список ключевых слов специфических для языка описания оценок. Наиболее часто встречающиеся частные оценки объявлены стандартными. Для стандартных оценок описание частных оценок отсутствует. Список стандартных оценок приведен в табл. 33.
Таблица 32. Ключевые слова языка описания оценок.
Ключевое слово Краткое описание Answer Правильный ответ. Back Массив производных оценки по оцениваемым сигналам. Contents Начало блока описания состава оценки. Direv Признак необходимости вычисления производных. Est Заголовок описания частной оценки. Estim Переменная действительного типа, для возвращения вычисленной оценки. Estimation Заголовок раздела файла, содержащий описание оценки. Include Предшествует имени файла, целиком вставляемого в это место. Link Указывает интерпретатор ответа, связанный с оценкой. NumberOf Функция. Возвращает число интерпретируемых частным интерпретатором сигналов. Reliability Достоверность правильного ответа. Signals Имя, по которому адресуются интерпретируемые сигналы; начало блока описания сигналов. Weight Вес частной оценки. Weights Начало блока описания весов частных оценок.Таблица 33. Стандартные частные оценки.
Название Параметры Аргументы Описание Empty B — множитель C — смещение Оценивает один сигнал А, вычисляя расстояние до правильного ответа с учетом нормировки. Binary E — уровень надежности N — число сигналов. Кодирование номером канала. Соответствует знаковому интерпретатору. Major E — уровень надежности N — число сигналов. Кодирование номером канала. Соответствует максимальному интерпретатору. BynaryCoded E — уровень надежности N — число сигналов. Соответствует двоичному интерпретатору.БНФ языка описания оценок
Обозначения, принятые в данном расширении БНФ и описание ряда конструкций приведены в разделе «Описание языка описания компонентов».
<Описание оценки>::= <Заголовок> [<Описание функций>] <Описание частных оценок> <Описание состава> [<Связывание с интерпретаторами>] [<Установление параметров>] [<Описание весов>] [<Описание сигналов>] [<Описание распределения сигналов>] [<Описание распределения оценок>] <Конец описания оценки>
<Заголовок>::= Estimation<Имя оценки>
<Имя оценки>::= <Идентификатор>
<Описание частных оценок>::= <Описание частной оценки> [<Описание частных оценок>]
<Описание частной оценки>::= <Заголовок описания оценки> [<Описание статических переменных>] [<Описание переменных>] <Тело оценки>
<Заголовок описания оценки>::= Est <Имя частной оценки> (<Список формальных аргументов>)
<Имя частной оценки>::= <Идентификатор>
<Тело оценки>::= Begin <Составной оператор> End
<Описание состава>::= Contents <Список имен оценок>;
<Список имен оценок>::= <Имя оценки> [,<Список имен оценок >]
<Имя оценки>::= <Псевдоним>: {<Имя ранее описанной оценки> | <Имя стандартной оценки>} [( <Список фактических аргументов>)] [[ <Число экземпляров>]]
<Псевдоним>::= <Идентификатор>
<Число экземпляров >::= <Целое число>
<Имя ранее описанной оценки>::= <Идентификатор>
<Имя стандартной оценки>::= <Идентификатор>
<Установление параметров>::= <Установление параметров Частной оценки> [;<Установление параметров>]
<Связывание с интерпретаторами>::= <Псевдоним> [[ <Начальный номер> [..<Конечный номер> [:<Шаг>]]]] Link<Псевдоним интерпретатора> [[ <Начальный номер> [..<Конечный номер> [:<Шаг>]]]]
<Псевдоним интерпретатора>::= <Идентификатор>
<Описание весов>::= Weights<Список весов>;
<Список весов>::= <Вес> [,<Список весов>]
<Вес>::= <Действительное число>
<Описание сигналов>::= Signals <Константное выражение типаLong >
<Описание распределения сигналов>::= <Описание распределения Сигналов,Оценки, Частной оценки,Signals>
<Описание распределения ответов>::= <Описание распределения Ответов,Оценки, Частной оценки,Answer>
<Конец описания оценки>::= End Estimation
Описание языка описания оценок
Структура описания оценки имеет вид: заголовок, описание функций, описание частных оценок, описание состава, описание связей с интерпретаторами, описание сигналов, описание распределения сигналов, описание распределения ответов, конец описания оценки.
Заголовок состоит из ключевого слова Estimation и имени оценки и служит для обозначения начала описания оценки в файле, содержащем несколько компонент нейрокомпьютера.
Описание частной оценки — это описание процедуры, вычисляющей оценку и, при необходимости, массив производных оценки по выходным сигналам сети. Отметим, что при описании частной оценки его аргументом, как правило, является число оцениваемых сигналов. При выполнении частная оценка получает в качестве аргументов массив оцениваемых сигналов, признак необходимости вычисления производных, правильный ответ, достоверность правильного ответа, действительную переменную для возвращения вычисленной оценки и массив для возвращения производных. Формально, при исполнении частная оценка имеет описание следующего вида:
Pascal:
Procedure Estimation(Signals, Back: PRealArray; Direv: Logic; Answer,reliability: real; var estim: real);
C:
void Estimation(PRealArray Signals, PRealArray Back, Logic Direv, Real Answer,real reliability, real* estim);
Отметим одну важную особенность выполнения тела частной оценки. Оператор присваивания значения элементу массива производных, означает добавление этого значения к величине, ранее находившейся в этом массиве. Например, запись Back[I] = A, означает выполнение следующего оператора Back[I] = Back[I] + A. Это связано с тем, что один и тот же сигнал может быть задействован в нескольких частных оценках и производная общей функции оценки равна сумме производных частных оценок по этому сигналу.
В разделе описания состава перечисляются частные оценки, входящие в состав оценки. Признаком конца раздела служит символ «;».
В необязательном разделе установления параметров производится задание значений параметров частных оценок. После ключевого слова SetParameters следует список значений параметров в том порядке, в каком параметры (статические переменные) были объявлены при описании частной оценки (для стандартных оценок порядок параметров указан в табл. 33). При использовании одного оператора задания параметров для задания параметров нескольким экземплярам одной частной оценки после ключевого словаsetparameters указывается столько выражений, задающих значения параметров, сколько необходимо для одного экземпляра. Например, если в блоке описания состава содержится 10 экземпляров двоичной оценки на 15 оцениваемых сигналов — MyEst: BinaryCoded(15)[10], то после ключевого слова setparameters должно быть только одно выражение: