Книга: Учебное пособие по курсу «Нейроинформатика»
Список стандартных функций
Разделы на этой странице:
- Установить объект обучения (SetInstructionObject)
- Создание массива (CreateArray)
- Освободить массив (EraseArray)
- Случайный массив (RandomArray)
- Модификация массива (Modify)
- Оптимизация шага (Optimize)
- Сохранить массив (SaveArray)
- Установить параметры (SetArray)
- Вычислить оценку (Estimate)
- Вычислить градиент (CalcGradient)
- Запустить запрос (GenerateQuest)
Список стандартных функций
В этом разделе описаны стандартные функции, специфические для компонента учитель. Эти функции соответствуют макросам, использованным в главе «Учитель». Заголовки функций даны на языке описания учителя.
Установить объект обучения (SetInstructionObject)
Заголовок функции:
Function SetInstructionObject (What: Integer; Net: PString): Logic;
Описание аргументов
What может принимать следующие значения (предопределенные константы, приведенные в табл. 11):
Parameters — для обучения параметров сети;
InSignals — для обучения входных сигналов.
Net — имя нейронной сети, которая будет обучаться.
Возможно обучение одного из двух объектов — параметров сети или входных сигналов. Объект обучения должен быть задан до начала собственно обучения. По умолчанию обучается первая сеть в списке нейронных сетей компонента сеть. При необходимости в качестве объекта обучения может быть задана часть сети (см. главу «Описание нейронных сетей»). При сохранении учителя в файле сети объект обучения хранится вместе с учителем. Функция возвращает значение истина, если ее выполнение завершено успешно. В противном случае (например, указанная сеть отсутствует в списке сетей компонента сеть) возвращается значение ложь.
Создание массива (CreateArray)
Заголовок функции:
Function CreateArray: PRealArray;
Аргументов нет.
Функция возвращает указатель на массив, пригодный для хранения массива обучаемых параметров (входных сигналов) сети. Если массив создать не удалось, то возвращается пустой указатель.
Освободить массив (EraseArray)
Заголовок функции:
Function EraseArray(Vec: PRealArray): Logic;
Описание аргументов
Vec — указатель на массив. При вызове содержит адрес освобождаемого массива.
После выполнения функции в аргументе Vec содержится пустой указатель. В случае невозможности освобождения памяти функция генерирует внутреннюю ошибку 604 — некорректная работа с памятью, передает управление обработчику ошибок, выполнение функции завершается, возвращается значение ложь. В противном случае возвращается значение истина.
Случайный массив (RandomArray)
Заголовок функции:
Function RandomArray(Vec: PRealArray): Logic;
Описание аргументов
Vec — указатель на массив. При входе в макрос содержит адрес существующего массива.
В ходе выполнения функции для каждого элемента массива параметров генерируется случайное значение. Для генерации используется генератор случайных чисел, равномерно распределенных на отрезке от нуля до единицы. После получения случайной величины a она преобразуется по формуле a? = a(amax–amin)–amin к случайной величине, распределенной на отрезке [amin, amax]. Величины amin и amax для параметров сети определяются их типом (см. раздел «Описание элементов»). Для входных сигналов принимается amin=–1, amax=1. Если обучаемым объектом являются параметры, то генерация случайного массива производится путем генерации запроса RandomDirection компонента сеть. Если при выполнении функции возникла ошибка, то генерируется внутренняя ошибка 605 — ошибка при исполнении внешнего запроса, управление передается обработчику ошибок, функция возвращает значение ложь. В противном случае возвращается значение истина.
Модификация массива (Modify)
Заголовок функции:
Function Modify(Direct: PRealArray; OldStep, NewStep: Real): Logic;
Описание аргументов
Direct — указатель на массив направления модификации сети.
OldStep — вес старого массива параметров в модифицированном.
NewStep — вес массива направления модификации в модифицированном массиве параметров.
Эта функция генерирует запрос на модификацию параметров сети (см. раздел «Провести обучение (Modify)»). Вызов запроса имеет вид:
Modify(Net, OldStep, NewStep, Tipe, Direct)
Аргументами запроса являются:
Net — указатель на пустую строку (используется сеть по умолчанию).
OldStep, NewStep — аргументы функции.
Tipe — значение аргумента What в запросе InstructionObject.
Direct — аргумент функции.
Аргумент функции Direct может быть пустым указателем. В этом случае для модификации используется массив градиента, хранящийся вместе с сетью. В случае возникновения ошибки в ходе модификации сети (запрос Modify возвращает значение ложь) генерируется внутренняя ошибка 605 — ошибка при исполнении внешнего запроса, управление передается обработчику ошибок, функция возвращает значение ложь. В противном случае возвращается значение истина.
Оптимизация шага (Optimize)
Заголовок функции:
Function Optimize (Direct: PRealArray; Step: Real): Real;
Описание аргументов
Direct — указатель на массив направления модификации сети.
Step — начальный шаг в направлении Direct.
Действия, выполняемые функцией Optimize, описаны в разделе «Подбор оптимального шага». В случае возникновения ошибки при выполнении функции она генерирует внутреннюю ошибку 605 — ошибка при исполнении внешнего запроса, передает управление обработчику ошибок, функция возвращает значение 0. В противном случае возвращается значение оценки при оптимальном шаге. Следует отметить, что после завершения выполнения функции, параметры сети соответствуют результату выполнения функции Modify(Direct, 1, Step), где Step — значение оптимального шага.
Сохранить массив (SaveArray)
Заголовок функции:
Function SaveArray(Vec: PRealArray): Logic;
Описание аргументов
Vec — указатель на массив.
Функция генерирует запрос nwGetData. После выполнения функции в массиве, на который указывает аргумент Vec, содержится текущий массив параметров. В случае возникновения ошибки в ходе выполнения функции генерируется внутренняя ошибка 605 — ошибка при исполнении внешнего запроса, управление передается обработчику ошибок, функция возвращает значение ложь. В противном случае возвращается значение истина.
Установить параметры (SetArray)
Заголовок функции:
Function SetArray(Vec: PRealArray): Logic;
Описание аргументов
Vec — указатель на массив, содержащий параметры, которые необходимо установить.
Функция генерирует запрос nwSetData.После выполнения функции параметры сети совпадают с параметрами, содержащимися в массиве, на который указывает аргумент Vec. В случае возникновения ошибки в ходе выполнения функции генерируется внутренняя ошибка 605 — ошибка при исполнении внешнего запроса, управление передается обработчику ошибок, функция возвращает значение ложь. В противном случае возвращается значение истина.
Вычислить оценку (Estimate)
Заголовок функции:
Function Estimate(Handle: Integer; All: Logic): Real;
Описание аргументов
Handle — номер сеанса задачника.
All — признак обучения по всему обучающему множеству.
Функция генерирует запрос к исполнителю на вычисление оценки. Если аргумент All содержит значение истина, то обучение производится по всему обучающему множеству, в противном случае — позадачно. В случае возникновения ошибки при выполнении функции он генерирует внутреннюю ошибку 605 — ошибка при исполнении внешнего запроса, передает управление обработчику ошибок, функция возвращает значение 0. В противном случае возвращается значение вычисленной оценки.
Вычислить градиент (CalcGradient)
Заголовок функции:
Function CalcGradient(Handle: Integer; All: Logic): Real;
Описание аргументов
Handle — номер сеанса задачника.
All — признак обучения по всему обучающему множеству.
Функция генерирует запрос к исполнителю на вычисление градиента. Если аргумент All содержит значение истина, то обучение производится по всему обучающему множеству, в противном случае — позадачно. В случае возникновения ошибки при выполнении функции он генерирует внутреннюю ошибку 605 — ошибка при исполнении внешнего запроса, передает управление обработчику ошибок, функция возвращает значение 0. В противном случае возвращается значение вычисленной оценки.
Запустить запрос (GenerateQuest)
Заголовок функции:
Function GenerateQuest(Name: PString; Arguments: PRealArray): Logic
Описание аргументов
Name — указатель на символьную строку, содержащую имя запроса.
Arguments — массив, содержащий адреса аргументов запроса.
Функция генерирует запрос к макрокомпоненту нейрокомпьютер на исполнение запроса, имя которого указано в аргументе Name, с аргументами, адреса которых указаны в аргументе Arguments. Действуют следующие ограничения. В строке, содержащей имя запроса должно содержаться только одно слово — имя запроса. Ведущие и хвостовые пробелы подавляются. В массиве Arguments должно содержаться ровно столько элементов, сколько аргументов у генерируемого запроса. В массив Arguments всегда складываются адреса аргументов, даже если в запрос данный аргумент передается по значению.
- Вызовы функций
- Список основных источников информации
- Список литературы
- 6.2. Создание и автоматическое заполнение бланков стандартных документов
- Список использованной литературы
- Список рекомендуемой литературы
- Пересмотр функций клиента
- Где просмотреть список программ, установленных на моем компьютере?
- 9.1.6.1. Использование функций POSIX: wait() и waitpid()
- 9.4.1. Список контроля доступа
- Листинг 9.1. Список acl-правил, описанных по умолчанию в конфигурационном файле
- Урок 6.4. Расчеты с использованием функций и имен ячеек