Я пытаюсь получить простую двойную нейронную сеть XOR для работы, и у меня возникают проблемы с возвратом данных для обучения действительно простой нервной сети с прямой передачей. В основном я старался следовать этому руководству в получении нейронной сети, но в лучшем случае сделал программы, которые учатся очень медленно.
Как я понимаю нейронные сети:
- Значения вычисляются путем принятия результата сигмовидной функции из суммы всех входных данных в этот нейрон. Затем он подается на следующий слой с использованием веса для каждого нейрона
- В конце запуска вычисляется ошибка для выходных нейронов, затем с использованием весов ошибка возвращается обратно путем простого умножения значений и затем суммирования на каждом Neuron
- Когда все ошибки вычисляются, весы корректируются дельта = масса соединения * производная сигмоида (значение веса нейрона равно) * значение Нейрона, которое связано с * ошибкой нейрона * количество ошибка выхода нейрона, идущая в * бета (некоторая константа для скорости обучения)
Это моя текущая ошибка кода, который я пытаюсь получить. У меня есть много других попыток, несколько смешанных, но основная функция backpropagation, которую я пытаюсь получить, находится в строке 293 в Net.cpp