Книга: Учебное пособие по курсу «Нейроинформатика»

Обработка обучающего множества (TaskSetWork)

Обработка обучающего множества (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

   2. If Answers[I] = AnsArray[I] Then TLong(Correct[I]) = TLong(Correct[I]) + 1

 6. Если в аргументе Instruct установлен бит Estimate, то

  1. Если в аргументе Instruct не установлен бит Interpret, то генерируется запрос к задачнику Get с аргументами Handle, AnsArray, tbAnswers (Получает от задачника правильные ответы)

  2. Генерируется запрос к задачнику Get с аргументами Handle, RelArray, tbCalcReliability (Получает от задачника достоверности ответов)

  3. Генерируется запрос к оценке Estimate с аргументами Data, Back, AnsArray, RelArray, Direv, Estim. Вместо Direv передается ноль, если в аргументе Instruct установлен бит Gradient, и 1 в противном случае. (Вычисляет оценку примера и, возможно, производные)

  4. Генерируется запрос к задачнику Get с аргументами Handle, Weight, tbWeight (Получает от задачника вес примера)

  5. Work = Work + Estim * Weight (Подсчитываем суммарную оценку)

  6. Если в аргументе Instruct установлен бит PutEstimations, то генерируется запрос к задачнику Put с аргументами Handle, Estim, tbEstimations (Передает задачнику оценку примера)

 7. Если в аргументе Instruct установлен бит Gradient, то генерируется запрос к сети Back, с аргументами Null, Back. (Выполняется обратное функционирование сети)

 8. Если в аргументе Instruct установлен бит Contrast, то генерируется запрос к контрастеру ContrastExample с аргументом ложь.

 9. Генерируется запрос к задачнику Next с аргументом Handle. (Переход к следующему примеру)

 10. Переход к шагу 13 алгоритма.

15. Вычисляем среднюю оценку: If Tasks = 0 Then Estim = 0 Else Estim = Work / Task

16. Если в аргументе Instruct установлен бит Contrast, то генерируется запрос к контрастеру ContrastExample с аргументом истина.

17. Освобождаются массивы Data, AnsArray и InArray.

18. Если в аргументе Instruct установлен бит Estimate, то освобождается массив и RelArray.

19. Если в аргументе Instruct установлен бит Interpret, то освобождаются массивы Answers и Reliability.

20. Если Back <> Null освобождается массив Back.

21. Завершает исполнение, возвращая значение истина

Оглавление книги


Генерация: 1.465. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз