Е. Миркес - Учебное пособие по курсу «Нейроинформатика»
В запросах не указываются используемые сеть, оценка и интерпретатор ответа, поскольку компонент исполнитель всегда использует текущие сеть, оценку и интерпретатор ответа.
Позадачная обработка (TaskWork)
Описание запроса:
Pascal:
Function TaskWork(Instruct, Handle: Integer; Var Answers, Reliability: PRealArray; Var Estim: Real): Logic;
C:
Logic TaskWork(Integer Instruct, Integer Handle, PRealArray* Answers, PRealArray* Reliability; Real* Estim)
Описание аргументов:
Instruct — содержит инструкции о способе исполнения.
Handle — номер сеанса в задачнике.
Answers — указатель на массив вычисленных ответов.
Reliability — указатель на массив коэффициентов уверенности сети в ответах.
Estim — оценка решения примера.
Назначение — производит обработку одного примера.
Переменные, используемые при исполнении запроса
InArray, RelArray — адреса массивов для обменов с задачником.
Back — адрес массива для обменов с оценкой.
Описание исполнения.
Если в любой момент исполнения запроса возникает ошибка при исполнении запросов к другим компонентам, то исполнение запроса прекращается, возвращается значение ложь, ошибка компонента исполнитель не генерируется.
1. Если в аргументе Instruct установлен бит Gradient и не установлен бит Estimate, то выполнение запроса прекращается, и генерируется ошибка 001 — Некорректное сочетание флагов в аргументе Instruct.
2. Если в аргументе Instruct установлен бит Gradient, то генерируется запрос к сети NullGradient с аргументом Null.
3. Если в аргументе Instruct установлен бит NextExample, то генерируется запрос к задачнику Next с аргументом Handle. (Переход к следующему примеру)
4. Генерируется запрос к задачнику Last с аргументом Handle. (Проверка, существует ли пример)
5. Если запрос Last вернул значение истина, то
1. Если в аргументе Instruct установлен бит StopOnEnd, то исполнение запроса прекращается, возвращается значение ложь. (Примера нет, переход на начало не нужен)
2. Генерируется запрос к задачнику Home с аргументом Handle. (Переход на начало обучающего множества)
6. Переменной InArray присваивается значение Null и генерируется запрос к задачнику Get с аргументами Handle, InArray, tbPrepared (Получает от задачника предобработанные входные сигналы)
7. Генерируется запрос к сети Forw, с аргументами Null, InArray (выполняется прямое функционирование сети).
8. Освобождается массив InArray
9. Присваивает переменной Data значение Null и генерирует запрос к сети GetNetData с аргументами Null, OutSignals, Data (Получает от сети выходные сигналы).
10. Если в аргументе Instruct установлен бит Interpret, то
1. Генерируется запрос к интерпретатору ответа Interpretate с аргументами Data, Answers, Reliability. (Производит интерпретацию ответа)
2. Если в аргументе Instruct установлен бит PutAnswers, то генерируется запрос к задачнику Put с аргументами Handle, Answers, tbCalcAnswers (Передает задачнику вычисленные ответы)
3. Если в аргументе Instruct установлен бит PutReliability, то генерируется запрос к задачнику Put с аргументами Handle, Reliability, tbCalcReliability (Передает задачнику вычисленные коэффициенты уверенности в ответе)
11. Если в аргументе Instruct установлен бит Gradient, то создается массив Back того же размера, что и Data. В противном случае переменной Back присваивается значение Null.
12. Если в аргументе Instruct установлен бит Estimate, то
1. Переменной InArray присваивается значение Null и генерируется запрос к задачнику Get с аргументами Handle, InArray, tbAnswers (Получает от задачника правильные ответы)
2. Переменной RelArray присваивается значение Null и генерируется запрос к задачнику Get с аргументами Handle, RelArray, tbCalcReliability(Получает от задачника достоверности ответов)
3. Генерируется запрос к оценке Estimate с аргументами Data, Back, InArray, RelArray, Direv, Estim. Вместо Direv передается ноль, если в аргументе Instruct установлен бит Gradient, и 1 в противном случае. (Вычисляет оценку примера и, возможно, производные)
4. Если в аргументе Instruct установлен бит PutEstimations, то генерируется запрос к задачнику Put с аргументами Handle, Estim, tbEstimations (Передает задачнику оценку примера)
5. Освобождает массивы InArray и RelArray.
13. Если в аргументе Instruct установлен бит Gradient, то генерируется запрос к сети Back, с аргументами Null, Back. Освобождает массив Back. (Выполняется обратное функционирование сети)
14. Освобождается массив Data.
15. Если в аргументе Instruct установлен бит Contrast, то генерируется запрос к контрастеру ContrastExample с аргументом истина.
16. Завершает исполнение, возвращая значение истина
Обработка обучающего множества (TaskSetWork)
Описание запроса:
Pascal:
Function TaskSetWork(Instruct, Handle: Integer; Var Tasks: Integer; Var Correct: PRealArray; Var Estim: Real): Logic;
C:
Logic TaskSetWork(Integer Instruct, Integer Handle, Integer* Tasks, PRealArray* Correct, Real* Estim)
Описание аргументов:
Instruct — содержит инструкции о способе исполнения.
Handle — номер сеанса в задачнике.
Tasks — число примеров в обучающем множестве.
Correct — указатель на массив, первый элемент которого равен числу правильных ответов на первую подзадачу и т. д.
Estim — средняя оценка решения всех примеров обучающего множества.
Назначение — производит обработку всех примеров обучающего множества.
Переменные, используемые при исполнении запроса
InArray, AnsArray, RelArray — адреса массивов для обменов с задачником.
Answers — указатель на массив вычисленных ответов.
Reliability — указатель на массив коэффициентов уверенности сети в ответах.
Back — адрес массива для обменов с оценкой.
Work — рабочая переменная типа Real для подсчета суммарной оценки.
Weight — рабочая переменная типа Real для веса примера.
Описание исполнения.
Если в любой момент исполнения запроса возникает ошибка при исполнении запросов к другим компонентам, то исполнение запроса прекращается, освобождаются все созданные в нем массивы, возвращается значение ложь, ошибка компонента исполнитель не генерируется.
Значение бит NextExample и StopOnEnd в аргументе Instruct игнорируются.
1. Если в аргументе Instruct установлен бит Gradient и не установлен бит Estimate, то выполнение запроса прекращается, и генерируется ошибка 001 — Некорректное сочетание флагов в аргументе Instruct.
2. Если в аргументе Instruct установлен бит Interpret, то создаются массивы Answers и Reliability того же размера, что и Correct
3. Выполняется следующий фрагмент программы (Обнуление массива количеств правильных ответов)
1. For I = 1 To TLong(Correct[0]) Do
2. Correct[I] = 0
4. Обнуляем счетчик числа примеров: Tasks = 0
5. Обнуляем суммарную оценку: Work = 0
6. Переменной Back присваивается значение Null.
7. Присваивает переменной Data значение Null и генерирует запрос к сети GetNetData с аргументами Null, OutSignals, Data. (Получает от сети выходные сигналы, для выяснения размерности массива Data. Сами значения сигналов не нужны)
8. Если в аргументе Instruct установлен бит Gradient, то
1. Генерируется запрос к сети NullGradient с аргументом Null.
2. Создается массив Back того же размера, что и Data.
9. Генерируется запрос к задачнику Home с аргументом Handle. (Переход на начало обучающего множества)
10. Переменной InArray присваивается значение Null и генерируется запрос к задачнику Get с аргументами Handle, InArray, tbPrepared (Создаем массив InArray для получения от задачника предобработанных входных сигналов)
11. Переменной AnsArray присваивается значение Null и генерируется запрос к задачнику Get с аргументами Handle, AnsArray, tbAnswers (Создаем массив AnsArray для получения от задачника правильных ответов)
12. Если в аргументе Instruct установлен бит Estimate, то создается массив RelArray того же размера, что и AnsArray.
13. Генерируется запрос к задачнику Last с аргументом Handle. (Проверка, существует ли пример)
14. Если запрос Last вернул значение ложь, то
1. Tasks = Tasks + 1
2. Генерируется запрос к задачнику Get с аргументами Handle, InArray, tbPrepared (Получает от задачника предобработанные входные сигналы)
3. Генерируется запрос к сети Forw, с аргументами Null, InArray. (Выполняется прямое функционирование сети)
4. Генерирует запрос к сети GetNetData с аргументами Null, OutSignals, Data. (Получает от сети выходные сигналы)
5. Если в аргументе Instruct установлен бит Interpret, то
1. Генерируется запрос к интерпретатору ответа Interpretate с аргументами Data, Answers, Reliability. (Производит интерпретацию ответа)
2. Если в аргументе Instruct установлен бит PutAnswers, то генерируется запрос к задачнику Put с аргументами Handle, Answers, tbCalcAnswers (Передает задачнику вычисленные ответы)
3. Если в аргументе Instruct установлен бит PutReliability, то генерируется запрос к задачнику Put с аргументами Handle, Reliability, tbCalcReliability (Передает задачнику вычисленные коэффициенты уверенности в ответе)
4. Генерируется запрос к задачнику Get с аргументами Handle, AnsArray, tbAnswers (Получает от задачника правильные ответы)
5. Выполняется следующий фрагмент программы (Подсчитываются правильно полученные ответы)
1. For I = 1 To TLong(Correct[0]) Do