Если учитель работает с сетями любой архитектуры, то процедура опознания архитектуры сети не нужна.
Список стандартных функций
В этом разделе описаны стандартные функции, специфические для компонента учитель. Эти функции соответствуют макросам, использованным в главе «Учитель». Заголовки функций даны на языке описания учителя.
Установить объект обучения (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 ( a max– a min)– a minк случайной величине, распределенной на отрезке [ a min, a max]. Величины a minи a maxдля параметров сети определяются их типом (см. раздел «Описание элементов»). Для входных сигналов принимается a min=–1, a max=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 — ошибка при исполнении внешнего запроса, управление передается обработчику ошибок, функция возвращает значение ложь. В противном случае возвращается значение истина.
Читать дальше