Учебное пособие по курсу «Нейроинформатика»
Шрифт:
Weight — рабочая переменная типа Real для веса примера.
Описание исполнения.
Если в любой момент исполнения запроса возникает ошибка при исполнении запросов к другим компонентам, то исполнение запроса прекращается, освобождаются все созданные в нем массивы, возвращается значение ложь, ошибка компонента исполнитель не генерируется.
Значение бит NextExample и StopOnEnd в аргументе Instruct игнорируются.
1. Если в аргументе Instruct установлен бит Gradient и не установлен бит Estimate, то выполнение
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, то генерируется
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. Завершает исполнение, возвращая значение истина