Как вы распространяете ошибки в нейронной сети?
Я строил нейронную сеть с нуля, чтобы классифицировать цифры из набора данных MNIST.До сих пор я построил многоуровневую сеть и применил сигмовидную функцию для активаций во время прямого распространения.Все веса были изначально инициализированы в диапазоне -1 <= weight <= 1. </p>
При обратном распространении ошибки с использованием градиентного спуска я вычислил производную сигмоида с использованием выходных активаций:
sigmoidDerivatives = outputActivations. * (1 - outputActivations)
Затем я вычислил мои выходные ошибки как:
outputError = (outputActivations-tags). *sigmoidDerivatives.
Правильно ли я рассчитываю ошибки вывода?Как и когда обновлять вес?Весовые коэффициенты обновляются с каждой новой итерацией (или новым изображением, вводимым в качестве тренировки)?Обновляются ли веса после того, как все итерации выполнены (одна эпоха) с использованием среднего значения по всем ошибкам?
Любая помощь будет принята с благодарностью.Проект завершается в Matlab.